1

我有以下问题:当我的耳机在我的手机蓝牙打开之前打开,它不会连接到我的手机。只有当手机蓝牙打开并且我的耳机第二次打开时,它才会连接到我的手机。我发现当蓝牙第二次打开时我仍然可以连接到我的耳机(1.案例),方法是进入列出我的配对设备的 androids 蓝牙菜单并选择我的耳机(尽管我的耳机被列为“已连接”) . 这也将连接我的耳机和手机。

我现在要做的是执行第二种连接耳机的方式,当我的手机蓝牙第二次打开时,以编程方式。我想使用 android 版本 2.0(API 级别 5),所以我尝试BluetoothDevice.createRfcommSocketToServiceRecord并调用connect()了我的套接字。但我总是收到异常“连接被拒绝”或“服务发现失败”。我使用了许多 UUID,我认为它们可能是正确的,并且与耳机有任何关系。

4

1 回答 1

3

您不能调用 RFCOMM api 来连接耳机。它旨在连接到 SPP 配置文件,耳机将使用 HS/HFP 配置文件。在 RFCOMM api 上使用不同的 UUID 也不能解决问题。

基本上这个耳机级别的配置文件连接是由 Android 内部完成的(并且没有应用程序级别的访问来建立连接)应用程序只能获取连接状态 - 请参阅BluetoothHeadset

当前行为是正确的推荐行为,即耳机应连接到电话,因此电话应在耳机打开之前打开。建议这样做是为了获得良好的用户体验和可预测性,如果两个设备都尝试随机连接,它将无法连接。

于 2011-04-19T04:52:04.190 回答