This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Device discovery fails on Android 4.3 with nrf8001

I have been trying to connect a nrf8001 device to a Android 4.3 device and it is discovered ok but fails when it tries to do a service discovery. After some deep digging I have found the reason. It seems that the nrf8001 responds to the first Read By Group Type Request:

07 00 04 00 10 01 00 FF FF 00 28

with the response:

0E 00 04 00 11 06 01 00 07 00 00 08 00 00 08 00 01 18

Now there are some problems with this response:

First the handle 00 00 is reserved according to the ble spec and this is what makes android puke. Android considers this an invalid handle and cancels the discovery process.

Second even if you use 00 00 as a handle it should not be returned since it is outside the search range 0x0001 to 0xffff

So my question is: is there a way to control the handle numbering via the setup commands? Do you have any other suggestions for workarounds for this issue?

Regards Erik Rosen

Btw. On iOS it works fine.

Parents Reply Children
No Data
Related