Search code examples
androidbluetoothbroadcastreceiver

Broadcast if a bluetooth device is connecting/disconnecting?


I want start a service, when a specific bluetoothdevice is connected and stop this service when it's disconnected. Obviously I don't want to have a background service that is always checking if a BT device is connected, so I want to achieve this with a Receiver.

Is this actually possible? android.bluetooth.device.action.ACL_CONNECTED is mentioned here, but apparently it didn't work.

Thanks!


Solution

  • <intent-filter>
        <action android:name="android.bluetooth.device.action.ACL_CONNECTED" />
        <action android:name="android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED" />
        <action android:name="android.bluetooth.device.action.ACL_DISCONNECTED" />
    </intent-filter>
    

    These are the filters you have to add with your broadcast receiver.

    ACL_CONNECTED signals when bluetooth is connected and ACL_DISCONNECTED signals bluetooth disconnection

    For specific device you have to check intents/context in broadcast receiver

    The two permission you have to add are:

    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.BLUETOOTH" />
    

    I think this should solve your problem.