我有以下问题: 在我的手机蓝牙开启之前打开耳机时,它将无法连接到我的手机。当手机蓝牙开启且耳机开启时,它只会连接到我的手机。我发现当蓝牙打开第二个(1. case)时,我仍然可以连接到我的耳机,进入我的配对设备列出的机器人蓝牙菜单并选择我的耳机(虽然我的耳机被列为'连接') 。这也将连接我的耳机和手机。
我现在要做的是执行第二种连接耳机的方式,当我的手机蓝牙以编程方式第二次转动时。我想使用Android版本2.0(API级别5),所以我尝试BluetoothDevice.createRfcommSocketToServiceRecord
并在我的套接字上调用connect()
。但我总是得到一个例外“拒绝连接”或“服务发现失败”。我使用了许多UUID,我认为它可能是正确的,并且与耳机有任何关系。
答案 0 :(得分:3)
您无法拨打RFCOMM api连接耳机。它旨在连接到SPP配置文件,耳机将使用HS / HFP配置文件。在RFCOMM apis上使用不同的UUID也无法解决问题。
基本上,此耳机级别配置文件连接由Android内部完成(并且没有应用程序级别访问权限来建立连接)应用程序只能获取连接的状态 - 请参阅BluetoothHeadset类
当前行为是正确的建议行为,即耳机应连接到手机,因此手机应在耳机开启前打开。建议这样做是为了获得良好的用户体验和可预测性,如果两个设备都试图随机连接,则它们将无法连接。