我在使用不安全的RFCOMM连接连接到WML-C46 AH Bluetooth Chip时遇到问题。我用相关的代码写了一个android应用程序来向你展示我的问题。Android滞后/不稳定的蓝牙连接
应用程序
该应用程序只有一个按钮。如果你点击这个按钮,就开始蓝牙设备发现。发现完成后,应用程序连接到蓝牙设备(我只使用一个蓝牙设备进行测试,因此无法找到任何其他设备)。然后打开一个输入流来读取这个设备的数据。如果连接中断(引发ioexception)或再次单击该按钮,则关闭连接(关闭所有线程,套接字和流)。如果你点击一次按钮新的设备发现启动等等......
的问题
连接不能正常工作。数据输入流似乎有点滞后,有时连接断开而没有任何可观察的原因(IOException:软件导致连接中止或IOException:请再试一次)。这几乎是Android蓝牙聊天示例的简化版本,它使用设备发现而不是配对的设备,仅使用一项活动。
守则
public class MainActivity extends Activity implements View.OnClickListener {
BluetoothDevice btDevice;
BluetoothSocket btSocket;
InputStream inStream;
OutputStream outStream;
Object lock = new Object();
boolean connected = false;
boolean canceled = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main)