Hi everyone, we’ve got a number of questions about what changed in terms of beacon detection with the introduction of Android 7 Nougat, and 8 (Oreo).
Some of you noted that the scan results are less frequent, or that you’re having trouble maintaining your app’s activity.
We’ve decided to put what we know in one place, to make it easier for you to follow and share our next steps.
Starting with Android 6, but especially 7, Android began introducing more and more restrictions on power-intensive usage, such as BLE scanning. The solution we’ve used previously — starting and stopping scans at will — is now restricted, and can’t be used more frequently than every six seconds, i.e. if your app starts and stops scanning more than once within 6 seconds, the OS may kill it.
On the other hand, If your app starts a scan, and maintain it for long periods (e.g. over 6 seconds), you’re risking the users will uninstall the app because of power consumption.
We’ve been adopting Android’s new mechanisms, and we keep iterating on further improvements to scanning on Android 6, 7, and 8.
Our Android’s team highest priority right now is updating our stack to take full advantage of the new batch job architecture. We’re expecting the results will be both more power-efficient, and more responsive on newer devices. We’ve been getting really good results so far.
Our current estimations are that the updated SDK will be ready this fall.
We’re here for any questions you have about this.
Cheers!