Android与另一部手机之间的蓝牙连接(基于免提模式)

12
我正在尝试将我的Android手机用作免提套件(就像汽车上的一样),以便连接到另一个电话(任何电话)并执行一些免提功能,例如(回答来电、拒接等),这可以使用免提配置文件的AT命令完成。 为此,我正在使用著名的蓝牙聊天应用程序和反射方法,以便与任何设备建立连接:

Method m = device.getClass().getMethod("createRfcommSocket", new Class[] {int.class}); tmp = (BluetoothSocket) m.invoke(device,1);

但是,为了实现免提功能并理解我发送的AT命令,所连接的电话需要使用使用UUID:"0000111f-0000-1000-8000-00805F9B34FB"的免提配置文件。

因此,是否有方法可以实现到免提配置文件的连接?

谢谢!


我使用Bluecove库“http://bluecove.org/”建立了HF蓝牙连接,现在可以使用AT命令控制和管理已连接手机的呼叫。此外,为实现完整的免提功能,已连接手机将语音路由到Android,但由于没有Sink角色,因此无法接收。我知道Android中实现了SCO通道,但只有源角色(仅用于向耳机发送语音)。因此,是否有任何方法在Android中实现Sink角色? Android的BlueZ堆栈是否支持该功能? - mjabdelhadi
这正是我想要做的。您在此方面取得了成功吗? - Majid Yaghouti
1个回答

3

当你没有其他选择时,才可以使用此代码。这里的1是RFCOMM端口。每个服务都有自己的RFCOMM端口。该端口通常在1到31之间随机分配。你需要知道你想要连接的设备上所使用的服务(这里是handsfree profile)所使用的端口。你需要使用BluetoothDevice对象中的createRfcommSocketToServiceRecord方法来实现:

try {   clientSocket = bluetoothDevice.createRfcommSocketToServiceRecord( serviceUUID ); }
catch (IOException e) 
{
  // handle error
} 

这段代码是正确使用蓝牙的方式,应该替换你正在使用的那个。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接