Q:
|
Once a new configuration is set, does the shuffling feature require an application using Kontakt.io SDK to be in proximity of the device? For example, if device's UUID has to be rolled every day, does it require an app with the Kontakt.io SDK to be in proximity of a device every day?
|
A:
|
Actually, no.
Once the device has shuffling turned on it generates the new Major, Minor, and MAC address values itself using a simple algorithm. The algorithm is modified with a simple seed value that is known only to the device and the API. With the algorithm and the seed value, you will always generate the values for Major, Minor, and MAC address in the same order. This means that we don’t need to maintain a connection between the device and the API - we just need to know which “iteration” of the devices’s shuffled value the device is currently on.
For security purposes, we don’t pass the algorithm or seed on to a mobile application because then someone could reverse engineer all possible values for a device. Instead, we allow you to cache a set number of shuffled device Major, Minor, and MAC address values on your Android or iOS application (so that you don’t have to update your app’s storage every day) and then also let you check it live at any time.
The device, since it knows its algorithm and seed value, will continue to step through the shuffled values on its own for as long as the battery lasts. Once the battery dies or is removed, the current shuffled value is stored and will be what the device broadcasts once it is connected to power again. Even if it’s been long enough that the SDK doesn’t have the value stored in memory, the API will still recognize the device.
|