Hello,
We have a question regarding reading Bluetooth advertising data with iOS.
In our application, we use the Bluetooth SIG group URI with "data" field as described in bluetooth.com/specifications/assigned-numbers/uri-scheme-name-string-mapping/ for our custom data. With Android phones and Windows, we can decode the data according to specification just fine. However, for our application in iOS, we cannot see such data.
Using an Android phone and app I captured the raw advertisement data. It contains types 0x01, 0x02, 0x08 and 0x24.
In iOS the following types are decoded in advertisement keys, when the central manager discovers my peripheral: Type 0x02 (Service Class UUIDs) is decoded in advertisement key CBAdvertisementDataServiceUUIDsKey
Type 0x08 (short local name) is decoded in advertisement key CBAdvertisementDataLocalNameKey
In iOS the following types are NOT decoded in advertisement keys: Type 0x01 (flags), this is no problem.
Type 0x24 (URI), this is the problem I have.
For more insight, I followed these instructions to use a BLE packet logger: bluetooth.com/blog/a-new-way-to-debug-iosbluetooth-applications/
When I then scan for my BLE beacons, I get output which shows iOS can read the URI information on a lower level. It just does not present it to the application layer where I could process it as advertisement data, maybe because iOS framework CoreBluetooth does not have advertisement keys defined for Generic Access Profile 0x24 (URI)?
So my question is have you had any experience with this before, or have you faced the same issue? And is there a solution for this?
Kind regards,
Ton van Nuland.
iOS Software Engineer
ECCT.com