我创建从我的HTC One X到SENA蓝牙不安全RFCOMM连接使用此代码ESD110系列模块:Android的蓝牙连接RFCOMM太慢
BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(addr);
BluetoothSocket socket = null;
try{
socket = device.createInsecureRfcommSocketToServiceRecord(UUID.fromString(SERVICE_UUID));
mBluetoothAdapter.cancelDiscovery();
socket.connect();
sendMessage(socket,"working!");
socket.close();
这里的关键是连接到具有自动配对模块, ,它都可以工作,但建立连接需要大约15秒。
调试仍然是:
socket.connect();
15秒和之后仅使连接和传送字符串到模块(需要1秒,这一点)。
在连接到MAC地址之前,手机是否可能正在处理其他一些数据(服务发现和更多),以及如何让它连接更快? 或者它可能是宏达硬件问题?
嗨ligi,我用相同的'设备'与我的手机的mac地址做了两次连接 - 没有扫描,第一次连接花了15s,第二次花了15s ..我想手机是'扫描'的蓝牙模块的可用服务,它花了太长时间,但我已经给了手机服务uuid我需要... – itai
嗨,感谢您的帮助,我编辑的代码,但我有一些错误使用reflaction:'BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(“00:01:95:13:5C:4F”);方法m = device.getClass()。getMethod(“createInsecureRfcommSocket”,new Class [] {int.class}); 的BluetoothSocket插座=(的BluetoothSocket)m.invoke(设备,Integer.valueOf(1));',但我得到:\t IllegalAccessException \t - 未处理的异常型 \t的InvocationTargetException – itai
createInsecureRfcommSocket/createRfcommSocket/createInsecureRfcommSocketToServiceRecord/createeRfcommSocketToServiceRecord - 所有反光标识该函数返回那个错误..... – itai