如何判断蓝牙设备何时连接到手机,是否为 A2DP?
本教程提供了一个非常易于理解的蓝牙连接监听指南。
我想用它来确定任何连接的蓝牙设备是否是 A2DP 类型。
AudioManager
有一个方法isBluetoothA2dpOn()
,但我不认为这会立即返回真实,(甚至完全肯定),因为仅仅因为连接了 A2DP 设备,这并不意味着音频正在通过它路由?
我原以为连接的设备类型的信息会在收到的意图中提供(参见上面的教程),但我找不到任何文档?
我可以BluetoothClass
通过以下代码获得:
BluetoothClass btClass = intent.getParcelableExtra(BluetoothDevice.EXTRA_CLASS);
但这并不能帮助我确定它是否是A2DP
个人资料,因为BluetoothClass
文档说:
BluetoothClass 可用作粗略描述设备的提示(例如在 UI 中显示图标),但不能可靠地描述设备实际支持的蓝牙配置文件或服务。准确的服务发现是通过 SDP 请求完成的,这些请求在使用 createRfcommSocketToServiceRecord(UUID) 和 listenUsingRfcommWithServiceRecord(String, UUID) 创建 RFCOMM 套接字时自动执行
...这对我来说毫无意义。