For my project I came up with an architecture in which all beacon information is contained in a backend. This means the Android device has to scan for any Estimote beacon without looking specified (U)UID. Is this possible? Because in the tutorials I see always a UUID being defined for which the manager has to scan.
I found the solution I just need to create a Region object with the UUID Major and Minor set as null. Only problem I am currently having is I can change the interval to check for when to trigger the didExitEvent by using: beaconManager.setBackgroundScanPeriod(20000,5000);
beaconManager.setRegionExitExpiration(5000);
But it only seems have made the time to notice the exit of a region longer instead of shorter.
The default scan periods and exit expiration we use are there for a reason, because we found them the best/most sensible across many, many Android devices (:
I found out why it took so long to detect. Apparently beaconManager.setRegionExitExpiration(5000); doubles the time you have inserted. I am currently using beaconManager.setRegionExitExpiration(10000); and the exit period is 20 seconds.
I tested on a samsung galaxy s7 running Android 6.01 and a motorola moto g 2013 running android 4.4.4. I tested using the log of Android Studio and comparing the log timestamps. As soon i turned a beacon upside I would log the beaconID and then immediately turned the beacon back upside down and log when the exit event was triggered. 9/10 times it was 20 seconds the other time it was few seconds less or more. The only difference between the devices I tested with was the speed it detected a beacon.