I my use case the mobile device will send the detected beacons IDs to a web server and this one will return the appropriate result. When the secure ID option is enabled, how can I decrypt the ID in the Java Web Server ? Is there any API or java SDK ?
Decryption happens automatically in our iOS and Android SDK. So if you’re, e.g., writing an Android app, you don’t need to send the encrypted IDs anywhere yourself, we wrote all that code already for you (: Just use “SecureRegion” instead of “Region”, and make sure you initialize the SDK with your App ID and App Token (which you can generate here).
It means that the mobile app should be connected to the internet ? There is no way to do the decryption on the server side with the API so my users won’t need to have internet to use the app ?
Yes, the app needs to have Internet connection, since the SDK needs to transfer the encrypted identifier to the server—doesn’t matter if it’s directly to Estimote Cloud, or first to your own server, and then to Estimote Cloud.
We’re working on a new security mechanism for Location Beacons, which will allow your app to pre-fetch the decrypted identifiers for the next few hours. You can e.g. do that before the customer descends into a subway station, and have your app still able to detect secured beacons without Internet connection, at least until it runs out of the pre-fetched identifiers. We’ll be rolling this feature out in the near future.
Thank you for the answer.
It could be a local server, so no need for internet in the client app.
Decryption keys are stored in Estimote Cloud, so unfortunately a local server won’t work.