Nearable packet frequency

Hello Estimote community,

I am building a simple android app that collects nearable packets from stickers and stores them on the phones memory then does stuff with that data.
The android phones that I am testing on seem to be registering nearable packets at different time intervals.

My initial test/dev phone, a Nexus5 running android 6.0.1 works great and constantly picks up a packet roughly every second.
A yuntab5 phone does not seem compatible with nearable packets as I could not detect any on my app and on the official Estimote app.
A ZTE phone running android 7.1.1 registers one packet roughly every 30 seconds.
And a UMIDIGI phone running android 8.1.0 also registers one packet roughly every 30 seconds.
and sometimes on this and the ZTE it seems to freeze up or stop listening for packets altogether.

Here is the relevant code I am using:

onCreate() {
...
beaconManager = new BeaconManager(this);
			beaconManager.setNearableListener(new BeaconManager.NearableListener() {
				@Override
				public void onNearablesDiscovered(List<Nearable> nearables) {
					for (Nearable item : nearables) {
                                          // Store item data 
                                }}}
}
...
then 
@Override
	protected void onStart() {
		super.onStart();
		beaconManager.connect(new BeaconManager.ServiceReadyCallback() {
			@Override
			public void onServiceReady() {
				beaconManager.startNearableDiscovery();
			}
		});
	} // END onStart()

My question is, are these issues stemming from the phones themselves or am I using NearableListener() and startNearableDiscovery() incorrectly?

Thanks in advance.

Oh boy, welcome to the world of Android and Bluetooth :upside_down_face:

Basically, there are (sometimes pretty drastic) hardware differences between Bluetooth controllers in different Android devices. And (sometimes pretty drastic) software differences between the Bluetooth stack implementations in different Android devices. (Android device manufacturers like to make their own closed-source modifications to the open-source Android project.)

Sometimes it’s possible to find workarounds for these kinds of issues, but sometimes it’s not.

You could try reduce the advertising interval in your stickers—this often helps, but not always, and it will shorten the battery life of the stickers.

If this is for some asset tracking project where you get some say about what devices to use, I’d recommend to exercise that power. Or if these Android devices are meant to be gateways between the stickers and the Internet, maybe try our LTE Beacon—since we’re in full control of the Bluetooth stack in our own hardware, the Bluetooth-scanning feature in the LTE Beacon is pretty reliable :wink:

Thank you Piotr.
I am in fact using the phones as a sort of base station to the internet. We chose the stickers because their small form factor, the individual items we are tracking are fairly small.

I will try adjusting the advertising interval as well as trying out a few other phones. I may also try installing a stock android rom as well.

Thanks for the help.

Such a great and knowledgeable information you provide, which is helpful for all of us. Thank you for sharing this information.