Home » Android » How to differentiate the connected bluetooth device in android programmatically?

How to differentiate the connected bluetooth device in android programmatically?

Posted by: admin June 16, 2020 Leave a comment

Questions:

Whether it is a bluetooth headset or mobile phones?

how to differentiate the bluetooth headset and bluetooth enabled android device in android code.

I am developing a small application,in that I have a feature of blocking the data transfer via bluetooth but it need to allow communication via bluetooth headset.

Please help me on this to differentiate the connected bluetooth device as headset /android devices(mobile phone).etc.,

Thank you in advance.

How to&Answers:

Once you scan and find a BluetoothDevice call the method BluetoothDevice.getBluetoothClass(). This will return a BluetoothClass object and the documentation states the following:

Represents a Bluetooth class, which describes general characteristics
and capabilities of a device. For example, a Bluetooth class will
specify the general device type such as a phone, a computer, or
headset, and whether it’s capable of services such as audio or
telephony.

So before you allow the user to select the device to connect to, or to filter the list of BluetoothDevices shown, try seeing if the BluetoothClass has the correct device type.

BluetoothClass bluetoothClass = bluetoothDevice.getBluetoothClass();
if(bluetoothClass.getDeviceClass() == BluetoothClass.Device.AUDIO_VIDEO_HEADPHONES) {
    // allow user to select this device. I'm not sure exactly which type
    // headphones will be but this is a good guess. You can connect to
    // your Bluetooth headset to find out for sure.
}

The different device class constants can be found here in case you want to differentiate by device class further.