Search code examples
androidbluetoothbluetooth-sco

How to get bluetooth connected devices using BluetoothHeadset API


I want to get list of bluetooth connected devices...not just paired devices.

I found BluetoothHeadset API in API level 11 which provides method getConnectedDevices() to get list of connected bluetooth devices.

How to get list of bluetooth connected devices using this API ?


Solution

  • Finally got the solution. Below are a few code snippets for getting Bluetooth audio connected devices using BluetoothHeadset API.

    BluetoothHeadset mBluetoothHeadset;
    
    // Get the default adapter
    BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    
    // Establish connection to the proxy.
    mBluetoothAdapter.getProfileProxy(context, mProfileListener, BluetoothProfile.HEADSET);
    


    // Define Service Listener of BluetoothProfile
    private BluetoothProfile.ServiceListener mProfileListener = new BluetoothProfile.ServiceListener() {
        public void onServiceConnected(int profile, BluetoothProfile proxy) {
            if (profile == BluetoothProfile.HEADSET) {
                mBluetoothHeadset = (BluetoothHeadset) proxy;
            }
        }
        public void onServiceDisconnected(int profile) {
            if (profile == BluetoothProfile.HEADSET) {
                mBluetoothHeadset = null;
            }
        }
    };
    


    // call functions on mBluetoothHeadset to check if Bluetooth SCO audio is connected.
    List<BluetoothDevice> devices = mBluetoothHeadset.getConnectedDevices();                        
    for ( final BluetoothDevice dev : devices ) {           
         return mBluetoothHeadset.isAudioConnected(dev);
    }
    


    // finally Close proxy connection after use.
    mBluetoothAdapter.closeProfileProxy(BluetoothProfile.HEADSET, mBluetoothHeadset);