我們可以連接多個設備嗎?誰可以分享我的代碼!這個問題困擾了我很長一段時間!謝謝!Android藍牙API連接到多個設備
回答
是的,您可以設置多個藍牙連接(至少是RFCOMM連接)。只需使用其他線程的給你連接,它會正常工作(我猜) 參見:http://developer.android.com/resources/samples/BluetoothChat/index.html
編輯,評論佈局是不可讀: 在connectThread功能,更改:
tmp = device.createRfcommSocketToServiceRecord(MY_UUID);
到:
Method m = device.getClass().getMethod("createRfcommSocket", new Class[] {int.class});
tmp = (BluetoothSocket) m.invoke(device, 1);
像巴里說的,你可以連接到多個設備。只需爲每個連接創建一個新線程。你需要列出你正在跟蹤的'ConnectThread'和'ConnectedThread'。所以你只需要適應多線程(當然,實現選擇多個設備的能力)。 我已經這樣做了,並不太難。
如果你想連接到一個設備,然後連接到另一個(使用原始菜單一個接一個),那麼你可能還有更多的工作要做。
爲了建立一個多連接,你必須爲你想連接的每一個設備製作單獨的線程。每個線程都有分開的方法來讀取和寫入數據到遠程設備。
看到此鏈接
我要說的是,代碼是沒有問題的。正確的實施方式是管理每個連接的線程,但是我發現您可以同時連接的設備數量基於手機的藍牙實施而受到限制。藍牙規格狀態7個設備可以連接,但是我發現Android手機只能處理1個藍牙連接,而其他人可以處理6個。如果Android開發團隊的成員可以在這裏深入瞭解,它將確實有助於藍牙開發社區。
我只是浪費了很多時間才發現Nexus 7只能連接1個BT設備,但Nexus 10可以連接多個同步設備。 – BitBank 2012-12-18 07:03:25
嚴重的是,我在Nexus 7上做了這樣的工作也浪費了時間...... – 2014-07-24 08:14:07
@SalmanKhakwani,你是怎麼知道有多少BT設備可以連接到Nexus 7的? – ymerdrengene 2018-02-07 15:56:05
是在藍牙服務器套接字連接多個設備在可以試試這個lib
- 1. Android藍牙API同時連接到多個設備
- 2. Android。連接藍牙設備
- 3. 連接到藍牙設備?
- 4. 通過藍牙將多個設備連接到一個設備
- 5. Android藍牙連接另一個藍牙設備
- 6. 藍牙智能:Android連接問題到多個從屬設備
- 7. Android 4.3:如何連接到多個藍牙低功耗設備
- 8. 在Android中將多個設備連接到藍牙
- 9. Android - 連接到多個藍牙設備無需配對
- 10. Android - 藍牙設備連接廣播
- 11. Android藍牙獲取連接的設備
- 12. Android藍牙連接與串口設備
- 13. Android程序連接藍牙設備
- 14. 使用藍牙連接Android設備?
- 15. 無法連接2設備藍牙android
- 16. Android上的藍牙 - 可以同時連接多個藍牙設備嗎?
- 17. 試圖通過藍牙LE連接多個設備到Android設備
- 18. 從Android設備連接到嵌入式藍牙設備
- 19. Iphone藍牙連接到非IOS設備
- 20. IPhone藍牙連接到非IOS設備
- 21. 如何連接到藍牙a2dp設備?
- 22. java.io.IOException:連接到藍牙設備時[JSR82]
- 23. 無法連接到藍牙設備
- 24. 列出並連接到藍牙設備
- 25. 藍牙連接兩個設備(流)
- 26. 連接到具有藍牙地址的藍牙設備
- 27. 無法使用C++的窗口藍牙API連接到藍牙設備
- 28. Google Glass可以同時連接到多個藍牙設備嗎?
- 29. 連接到Xcode中的多個藍牙LE設備
- 30. Android上的藍牙 - 如何連接到正確的藍牙設備?
這個樣品不能連接多個設備,當我嘗試連接的第三裝置,它將打印IO異常:服務discoery – user545755 2010-12-17 12:57:07
嗯,和當您嘗試更改時: tmp = device.createRfcommSocketToServiceRecord(MY_UUID); 收件人: 方法m = device.getClass()。getMethod(「createRfcommSocket」,new Class [] {int.class}); tmp =(BluetoothSocket)m.invoke(device,1); (使用正確的嘗試/捕獲) 你還會得到那個錯誤嗎? (請參閱答案的可讀代碼..) – Barryvdh 2010-12-17 13:33:16
感謝您的幫助,但它會打印此異常: – user545755 2010-12-17 16:04:03