I am developing an Android application using iBeacons. The iBeacon detection is working for devices from API level 18+, with two different implementations for 18 < API < 20, and API 21+. So far I have tested on different devices, mostly Samsung (S4, S5,...).
While testing using the CAT B15Q (API level 19) rugged android smartphone, I experienced that even the check wether Bluetooth LE is returning true, and the iBeacon bluetooth device is discovered during the bluetooth scan, the bytes received as scanResult do not describe a valid Beacon device. It is definitely a problem with the CAT smartphone, as the implementation for API level 19 is working on a Samsung GT-N5100.
The data is returned as parameter "scanRecord" by the callback
public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord)
An expected result (e.g. on the Samsung GT-N5100) would be like this:
212611-176096013-64-88964000000000000000000000000000000000000000000000000
or
21626-1760221-9-126109-9079-9478-104-12836-6891113-32-119623-243-22-77897511111011697107116210-12102213-487611665725055100000000000
The CAT B15Q device gives
897511111011697107000000000000000000000000000000000000000000000000000000
or
21000000000000000000000000000000000000000000000000000000000000
The described behavior can be observed using estimate and kontakt.io iBeacons.
Has one of you observed a similar behavior on other android devices, or is this a bug in the CAT B15Qs bluetooth device ? Does anyone know a method to make beacon proximity detection work on the the CAT B15Q ?