Search code examples
androidandroid-bluetoothpairing

Pre-pairing bluetooth devices


I would like to be able to pre-pair bluetooth devices, to save the step of user confusion when using the app. I have discovered that there is a patent for System, method and apparatus for pre-pairing bluetooth enabled devices.

I am looking at pairing an array of android devices with an array of embedded devices, so when the android device is set up, I can pre-pair it with the devices it needs to communicate with. I have considered maintaining a list of MAC-addresses that can be downloaded and updated by the app.

Is there a way to pair two devices without having to bring them into contact?


Solution

  • My memory is not exact, it's a while ago I poked around in the Bluetooth stack, however, I don't think this is possible.

    Basically there is a white list (text file pretty much) which is kept by the system with devices that may connect to your phone, in order to access that white list outside of the Bluetooth api you need to be platform manufacturer. The Bluetooth Api is strongly guarded (by the specification), if you don't fulfill it you can't say your device supports Bluetooth. Pairing is an important part of the Bluetooth security model, I doubt even an oem would be allowed to do this.

    One thing you could look into are Bluetooth low energy devices, those don't require pairing prior to connection (you should be able to connect if you have the MAC address), only Bluetooth classic requires pairing.

    More info: https://developer.android.com/guide/topics/connectivity/bluetooth-le.html