我正在開發一個應用程序,它應該通過藍牙自動連接2個Android設備。假設他們已經配對。這有可能實現嗎?如何編程連接2個Android設備與藍牙?
10
A
回答
18
當然這是可能的。我將在文檔中做一個簡短的教程:
從BluetoothAdapter開始 - 它是您的藍牙管理器。
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
如果bluetoothAdapter
爲null,則意味着此Android設備不支持藍牙(它沒有藍牙無線電。雖然我認爲這是難得遇到這些設備......)
接下來,確保藍牙開啓:
如果不是,我們開始要求用戶啓用它的活動。我們假設用戶確實啓用了(我想你應該檢查他是否執行了,在onActivityResult
方法中執行)。我們可以查詢配對設備:
Set<BluetoothDevice> pairedDevices = bluetoothAdapter.getBoundedDevices();
然後遍歷它們:for(BluetoothDevice device : pairedDevices)
,找到你要連接到一個。
一旦你找到了一個設備,創建一個套接字連接它:
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(YOUR_UUID);
YOUR_UUID是包含您的應用程序的特殊ID的UUID對象。閱讀關於它here。
現在,嘗試連接(設備你試圖連接到必須在監聽模式具有相同UUID創建的套接字):
socket.connect();
連接()塊你的線程,直到建立連接或者發生錯誤 - 在這種情況下將引發異常。所以你應該在一個單獨的線程上調用connect
。
還有!您已連接到其他設備。現在得到輸入和輸出流:
InputStream is = socket.getInputStream();
OutputStream os = socket.getOutputStream();
並且您可以開始發送/接收數據。請記住,這兩個操作(發送和接收)都是阻止,所以你應該從不同的線程調用這些。
瞭解更多關於這一點,並找出如何創建在Bluetooth documentation.
相關問題
- 1. 無法連接2設備藍牙android
- 2. Android。連接藍牙設備
- 3. Android藍牙連接與串口設備
- 4. Android程序連接藍牙設備
- 5. 以編程方式使用藍牙連接兩個Android設備
- 6. 通過藍牙以編程方式連接兩個Android設備
- 7. Android藍牙連接另一個藍牙設備
- 8. 連接到藍牙設備?
- 9. 如何獲取Android設備的藍牙設備連接狀態
- 10. Android - 藍牙設備連接廣播
- 11. Android藍牙獲取連接的設備
- 12. 使用藍牙連接Android設備?
- 13. 如何連接到藍牙a2dp設備?
- 14. Android +以編程方式通過藍牙連接設備
- 15. 無法與遠程設備進行藍牙連接。 android 6.0
- 16. Android 4.3:如何連接到多個藍牙低功耗設備
- 17. 藍牙連接兩個設備(流)
- 18. iOS藍牙通知應用程序藍牙設備連接時
- 19. 可以同時連接2個設備連接Android中的藍牙嗎?
- 20. Android藍牙接受()/連接()與已配對的設備
- 21. 如何防止android在藍牙設備連接時選擇藍牙A2DP路由
- 22. Android上的藍牙 - 如何連接到正確的藍牙設備?
- 23. 與Android的藍牙連接
- 24. 如何在android中以編程方式自動連接到藍牙設備?
- 25. 如何以編程方式檢查Android中藍牙設備的連接狀態?
- 26. Android上的藍牙 - 可以同時連接多個藍牙設備嗎?
- 27. 從Android設備連接到嵌入式藍牙設備
- 28. 編程的兩個設備之間的Android藍牙連接失敗
- 29. 如何在Android中連接藍牙設備?
- 30. Android:如何找出連接的藍牙設備的名稱?
這是可能的服務器(在這裏,我們已經創建了一個客戶端),在看看:http://developer.android.com /guide/topics/wireless/bluetooth.html –
缺點是,這樣的應用程序,例如即不斷尋呼來建立連接,會對電池的使用壽命產生不利影響。不是一個好主意。 –