有沒有辦法在Android中ping通藍牙設備?藍牙設備未在Android中連接或配對,但我事先知道設備的MAC地址和PIN。我試圖實現的是ping一個MAC地址列表,看是否有任何設備在範圍內。Ping Android中的藍牙設備
1
A
回答
3
已解決:我所做的是查詢設備上可用的服務(可用的UUID)。如果收到UUID,則設備處於範圍內。
所以步驟是:
註冊爲UUID行動
String action = "android.bluetooth.device.action.UUID"; IntentFilter filter = new IntentFilter(action); registerReceiver(mReceiver, filter);
創建基於遠程地址藍牙設備並獲取它的UUID
BluetoothDevice bd = bluetoothAdapter.getRemoteDevice(address); bd.fetchUuidsWithSdp();
接收到廣播
創建一個廣播接收器,它攜帶的設備E地址,能告訴我,那
private final BroadcastReceiver mReceiver = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { //deviceExtra is our in range device deviceExtra = intent.getParcelableExtra("android.bluetooth.device.extra.DEVICE"); Parcelable[] uuidExtra = intent.getParcelableArrayExtra("android.bluetooth.device.extra.UUID"); }}};
+1
我試過這個,但即使對於不在線但已配對的設備,我也會獲得uuids – Calvin
+1
正如Calvin注意到的,這不起作用。如果連接失敗,緩存的uuids將與意圖一起發送。 http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#fetchUuidsWithSdp() –
相關問題
- 1. 從Android設備ping一個藍牙設備
- 2. 將設備地址發送到Android中的ConnectThread(藍牙設備設備) - 藍牙
- 3. Android藍牙設備緩存
- 4. 查詢藍牙設備android
- 5. Android。連接藍牙設備
- 6. UUID藍牙和Android設備
- 7. Android藍牙喚醒設備
- 8. Android藍牙設備UUID
- 9. Android搜索藍牙設備
- 10. 在android中識別android藍牙設備
- 11. Android中的藍牙設備發現 - startDiscovery()
- 12. 在Android Lollipop中列出藍牙設備
- 13. 在Android Studio中配對藍牙設備
- 14. 藍牙Ping延遲
- 15. Android藍牙 - 用於記錄附近藍牙設備的服務
- 16. Android SPP藍牙到非Android設備
- 17. Android的 - 藍牙設備發現錯誤
- 18. Android的藍牙獲取綁定設備
- 19. Android - 獲取此設備的藍牙UUID
- 20. Android上的虛擬藍牙設備?
- 21. Android藍牙獲取連接的設備
- 22. Android:獲取uuid的藍牙設備
- 23. 如何使用Android藍牙設備選取器檢索藍牙設備信息?
- 24. 從Android藍牙設備選取器獲取藍牙設備信息
- 25. Android藍牙連接另一個藍牙設備
- 26. Android:發現藍牙設備時出錯
- 27. Android - 藍牙設備連接廣播
- 28. Android與藍牙LE設備配對
- 29. Android ADK藍牙設備兼容性
- 30. 在Android上訪問藍牙設備?
我不認爲MAC地址是適用於藍牙。一般的硬件地址似乎是。我現在只是想大聲點。 – keyser
你描述的內容聽起來很像藍牙發現。當您收到有關可發現設備的信息時,會得到名稱和MAC地址。如果您提前知道MAC地址,則可嘗試連接到該地址,但每個設備都會有延遲。 – BitBank
我正在考慮比連接它更快的方式,就像一個簡單的ping。 – alexb