如何以编程方式区分android中连接的蓝牙设备?

时间:2016-03-31 08:57:04

标签: android bluetooth android-bluetooth android-broadcast

无论是蓝牙耳机还是手机?

如何在Android代码中区分蓝牙耳机和支持蓝牙的Android设备。

我正在开发一个小应用程序,因为我有通过蓝牙阻止数据传输的功能,但它需要允许通过蓝牙耳机进行通信。

请帮我解决这个问题,将连接的蓝牙设备区分为耳机/安卓设备(手机)。等等。

提前谢谢。

1 个答案:

答案 0 :(得分:8)

扫描并找到BluetoothDevice后调用方法BluetoothDevice.getBluetoothClass()。这将返回BluetoothClass个对象,documentation表示以下内容:

  

表示蓝牙类,它描述了一般特征   和设备的功能。例如,蓝牙类将   指定常规设备类型,例如电话,计算机或   耳机,以及它是否能够提供音频或音频等服务   电话。

因此,在您允许用户选择要连接的设备或过滤显示的BluetoothDevice列表之前,请尝试查看BluetoothClass是否具有正确的设备类型。

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.
}

如果您想进一步区分设备类,可以找到不同的设备类常量here