无论是蓝牙耳机还是手机?
如何在Android代码中区分蓝牙耳机和支持蓝牙的Android设备。
我正在开发一个小应用程序,因为我有通过蓝牙阻止数据传输的功能,但它需要允许通过蓝牙耳机进行通信。
我参考了他们建议我的例子和代码 配对/取消配对蓝牙设备。 Android: How to pair bluetooth devices programmatically?
or else
获取所有连接的设备。 In Android, how to get the profile of a connected bluetooth device?
我是否可以在与类型相关的设备中获取任何广播消息 设备连接?
请帮我解决这个问题,将连接的蓝牙设备区分为耳机/安卓设备(手机)。等等。
提前谢谢。
答案 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。