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

How can we make our own BLE accessory device auto re-connectable in iOS /Android?

I'm wondering whether or not we can make a specific BLE peripheral device with having this ability to be supported by client iOS/Android device for automatic scanning/reconnecting, i.e without using any extra app.

I think some standard BLE accessory devices (like Heart sensor) are already known by smartphones, so after first-time pairing, the smartphone's OS itself will scan for finding them again automatically for re-connecting each time when the connection gets lost.

I want to ask OS to handle the connection part completely, and then inside the app just open a handle to it (if it is already connected).

  • This looks kind of against both iOS and Android BLE API architectures but I guess your biggest problem is in second paragraph: you put some assumptions but no real clue. Why you "think that some standard BLE accessory (like HRM) are already known by smartphones"? Any indication of HRM app being part of the Android core or at least it's GATT UUIDs being somehow privileged? I don't see anything like that...

  • Thanks for your response. You are right. I checked it by running ble_app_hrs_rtx example on nrf51422 and I had no automatic re-connection.

  • What do you think about Bluetooth Low Energy HID Service? Using ble_app_hids_keyboard now I have auto re-connection. Can I now inside my application get access to this connected device?

  • I don't know but you need to understand that Human Interface Device (HID) is pretty specific profile which has native implementation inside any modern OS (like Windows, iOS, MacOS, Android, Linux...) because you want users to connect input devices like keyboards and mice flawlessly. I suppose you could access device which is connected over BLE and exposes HID GAP profile (and GATT Services) but it wil be OS specific (because BLE as well as HID integration is OS specific). So you need to research among your devices. In my opinion it should be still responsibility of your application to say to the OS that it wants to be connected to certain device(s) when they appear in range, I don't understand what is so beneficial on letting OS doing it automatically (when anyway your application must be running to be able to use it...)

Related