I am student at university and I have to make a prototype app which may be used in the future at a museum.
The requirements for the app is that as a user visiting a museum he should get content relevant to the exhibit he is closer. Lets say that each exhibit has its own beacon which is broadcasting eddystone protocol.
I am a bit confused about what eddystone can or can’t do compared to iBeacon.
I have some questions like if I had to declare a Region ,depend only on beacon’s signal strength in order to know if I 'm closer to that beacon etc. I would be grateful if you could tell me the steps needed to develop an app like this.
Eddystone is pretty much the same as iBeacon in terms of what you can do with it. And when it comes to how to detect Eddystone beacons instead of iBeacons with Estimote SDKs, here’s a short “quick start” guide:
So for example, on Android, you’d simply start scanning for Eddystones with beaconManager.startEddystoneScanning(), and then your EddystoneListener will keep getting a list of Eddystone objects that represent the discovered devices. You can take their identifier, cross-reference it with your system (e.g., Eddystone with instance “0BDB87539B67” == “Mona Lisa”), plus use the rssi or Utils.computeAccuracy(eddystone) to find the closest beacon.
For a deeper dive, check out the Android SDK reference, e.g., this description of the Eddystone class:
Sure! There’s nothing really beacon-specific here—just store a timestamp when the user enters the range of a beacon, and when they exit the range, compare that timestamp to current time to calculate how much time the user has spent in range.
For example:
// on enter
this.timestampOnEntered = System.currentTimeMillis();
// on exit
long difference = System.currentTimeMillis() - this.timestampOnEntered;
long differenceInMinutes = difference / 1000 / 60;
// 1000 milliseconds in a second, 60 seconds in a minute