Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
连接到android中的蓝牙耳机_Android_Bluetooth_Uuid_Headset - Fatal编程技术网

连接到android中的蓝牙耳机

连接到android中的蓝牙耳机,android,bluetooth,uuid,headset,Android,Bluetooth,Uuid,Headset,我有以下问题: 当我的耳机在手机蓝牙开启之前开启时,它将无法连接到手机。它只会在手机蓝牙已打开且耳机已打开的情况下连接到手机。我发现,当蓝牙第二次打开时(1.case),我仍然可以连接到我的耳机,方法是进入列出配对设备的androids bluetooth菜单并选择我的耳机(尽管我的耳机列为“已连接”)。这将连接我的耳机和手机 我现在想做的是,当我的手机蓝牙以编程方式第二次打开时,执行第二种连接耳机的方式。我想使用android版本2.0(API级别5),所以我尝试了BluetoothDevic

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


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

您不能调用RFCOMM api来连接耳机。如果要连接到SPP模式,耳机将使用HS/HFP模式。在RFCOMM API上使用不同的UUID并不能解决问题


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


当前行为是正确的建议行为,即耳机应连接到手机,因此在打开耳机之前手机应处于开机状态。建议这样做,以获得良好的用户体验和可预测性,如果两台设备尝试随机连接,则不会连接。

基本上,此耳机级配置文件连接由Android内部完成(并且没有应用程序级访问来建立连接)。但在我的例子中,当我在sip呼叫中,gsm呼叫应答并结束,当我说startbtsco()时平台无法重新连接。从adb日志中,我看到蓝牙套接字异常。任何sol?解释得很好,谢谢。虽然我不同意这种实现的行为在总体上是正确的。上述评论中给出了一个原因,另一个原因是,你可以拥有一个HFP车载套件(随车通电),你可以离开BT范围回到范围内-Android和车载套件都不会重新连接。我认为Android的实现过于理论化。。。