Estimote ranging on some Android devices return rssi=0 or -1 for all nearby beacons


We are building solution that use locations beacons to recognise certain parking spot based on rssi strength.
During test we find out that on some devices (Samsung J7 (android 7.0) , Samsung A5 (android 7.0) the same code return rssi=0 or rssi = -1 for all devices e.g.:

[{“uuid”: “b9407f30-f5f8-466e-aff9-25556b57fe6d”,“minor”: 65170,“major”: 52924,“rssi”: 0}, {“uuid”: “b9407f30-f5f8-466e-aff9-25556b57fe6d”,“minor”: 3718,“major”: 58720,“rssi”: -1}, {“uuid”: “b9407f30-f5f8-466e-aff9-25556b57fe6d”,“minor”: 22406,“major”: 64204,“rssi”: -1}]

While using another devices in the same environment we got proper result with various rssi values. eg.

[{“uuid”: “b9407f30-f5f8-466e-aff9-25556b57fe6d”,“minor”: 65170,“major”: 52924,“rssi”: -56}, {“uuid”: “b9407f30-f5f8-466e-aff9-25556b57fe6d”,“minor”: 3718,“major”: 58720,“rssi”: -70}, {“uuid”: “b9407f30-f5f8-466e-aff9-25556b57fe6d”,“minor”: 22406,“major”: 64204,“rssi”: -75}]


  1. Is it any special meaning for rssi = -1 ?
  2. What can be the reason for such behoviour on some Samsung Devices - there was similar issue reported 2 years ago on github :

We are using latest proximity beacons and Estimote Android SDK

Looking forward for any suggestion/help.

Maybe you could test using Android’s own BluetoothLeScanner, and see if it also returns 0/-1 on these devices. This would mean that the 0/-1 is coming directly from the Bluetooth stack.

And do note that it seems you’re using the deprecated ranging/monitoring APIs. Consider migrating to: