我創建從我的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