2016-03-11 140 views
3

我正在研究需要連接到藍牙低功耗設備的Android應用程序。僅掃描一次Android藍牙設備

該應用程序在大多數設備上都能正常工作,但使用BluetoothAdapter.startLeScan()時遇到了一些設備問題(One plus One與Cyanogene Android 4.4.4和Sony C5303與Android 4.3)。

使用One plus,問題似乎與本文中的相關問題相同:Android 4.3: BLE: Filtering behaviour of startLeScan()藍牙設備僅掃描一次。如果我連接,然後斷開設備,它不會再掃描一次。

經過一些測試,我嘗試使用:BluetoothAdapter.startDiscovery()除了BluetoothAdapter.startLeScan()

看來我的設備現在已經正確掃描多次,並且我的LeScanCallback被正確調用。然後我可以連接/斷開我的BLE設備。

問題是: BluetoothAdapter.startDiscovery()如何與BluetoothAdapter.startLeScan()交互以允許多次檢測到我的設備?

感謝您的幫助!

+0

您是否找到解決方案? – abh22ishek

+0

如果我沒有記錯,我沒有正確調用'stopLeScan()'。 添加stopLeScan後,我的設備被正確檢測到。 – Azartys

+0

它與我一樣發生 – abh22ishek

回答

1

您應該正確調用'stopLeScan()'。添加stopLeScan後,您的設備應該被正確檢測。