2

每当我尝试将 android 设备连接到启用蓝牙的设备时,我都会遇到异常,它正在连接,并且在一分钟内它就会出现异常。要使用 BLuettoth 设备(Spp 配置文件)进行连接,我正在使用

Method m;
m = mmDevice.getClass().getMethod("createRfcommSocket",
new Class[] { int.class });

tmp = (BluetoothSocket) m.invoke(mmDevice, 1); 

使用此代码,我可以连接到设备。但是在这一行 bytes = mmInStream.read(buffer) 处,我在几分钟内就遇到了异常。我可以用

if(mmInStream.available() > 0) {
bytes = mmInStream.read(buffer);
} 

但是如果我把条件放在这里,它无法理解设备是否仍然与其他设备连接。因为不会发生异常。我找不到解决方案并尝试了 2 天。但我找不到解决方案。

你能帮我么?

提前致谢

4

1 回答 1

0

我在蓝牙广播后启动的服务器遇到了同样的问题。解决方案是在服务器通过 BluetoothServerSocket.accept() 建立连接后发送一个字节。客户端在 BluetoothSocket.connect() 之后读取一个字节。所以两端是同步的。

于 2013-03-27T15:35:17.977 回答