4

如何判断蓝牙设备何时连接到手机,是否为 A2DP?

本教程提供了一个非常易于理解的蓝牙连接监听指南。

我想用它来确定任何连接的蓝牙设备是否是 A2DP 类型。

AudioManager有一个方法isBluetoothA2dpOn(),但我不认为这会立即返回真实,(甚至完全肯定),因为仅仅因为连接了 A2DP 设备,这并不意味着音频正在通过它路由?

我原以为连接的设备类型的信息会在收到的意图中提供(参见上面的教程),但我找不到任何文档?

我可以BluetoothClass通过以下代码获得:

BluetoothClass btClass = intent.getParcelableExtra(BluetoothDevice.EXTRA_CLASS);

但这并不能帮助我确定它是否是A2DP个人资料,因为BluetoothClass文档说:

BluetoothClass 可用作粗略描述设备的提示(例如在 UI 中显示图标),但不能可靠地描述设备实际支持的蓝牙配置文件或服务。准确的服务发现是通过 SDP 请求完成的,这些请求在使用 createRfcommSocketToServiceRecord(UUID) 和 listenUsingRfcommWithServiceRecord(String, UUID) 创建 RFCOMM 套接字时自动执行

...这对我来说毫无意义。

4

0 回答 0