2017-05-24 73 views
3

我正在構建BLE Android。 我的應用程序使用SCAN_MODE_LOW_POWER作爲設置掃描具有後臺服務24/7的BLE設備(這對我的應用程序至關重要)。 當我找到與我的應用程序相關的設備時,我切換到SCAN_MODE_LOW_LATENCY,因爲此時每隔1秒就會爲我的應用程序計數。 隨着SCAN_MODE_LOW_LATENCY我收到ScanCallback集中,但在某些時候,如設備在睡眠模式時,我收到像10-11回調密集,然後暫停3-4s然後再次回調。Android BLE ScanCallback LOW LATENCY

這3-4個延遲/暫停根本沒有幫助我的應用程序。

即使設備處於睡眠或打盹模式,是否可以進行密集的ScanCallback?

謝謝。

登錄時,屏幕上顯示:

九月五日至25日:26:27.121 14564-14564 /? I/TAG_BLE:BLE onScanResult - isScreenOn:true

05-25 09:26:27.161 14564-14564 /? I/TAG_BLE:BLE onScanResult - isScreenOn :true

05-25 09:26:27.211 14564-14564 /? I/TAG_BLE:BLE onScanResult - isScreenOn:true

05-25 09:26:27.251 14564-14564 /? I/TAG_BLE:BLE onScanResult - isScreenOn:true

05-25 09:26:27.301 14564-14564 /? I/TAG_BLE:BLE onScanResult - isScreenOn:真

...密集ScanCallback

9月5日至25日:26:41.101 14564-14564 /? I/TAG_BLE:BLE onScanResult - isScreenOn:true

05-25 09:26:41.151 14564-14564 /? I/TAG_BLE:BLE onScanResult - isScreenOn:true

05-25 09:26:41.201 14564-14564 /? I/TAG_BLE:BLE onScanResult - isScreenOn:true

05-25 09:26:41.251 14564-14564 /? I/TAG_BLE:BLE onScanResult - isScreenOn:true

05-25 09:26:41.291 14564-14564 /? I/TAG_BLE:BLE onScanResult - isScreenOn:true

05-25 09:26:41.341 14564-14564 /? I/TAG_BLE:BLE onScanResult - isScreenOn:true

05-25 09:26:41.391 14564-14564 /? I/TAG_BLE:BLE onScanResult - isScreenOn:真

登錄時關閉屏幕:

9月5日至25日:26:50.141 14564-14564 /? I/TAG_BLE:BLE onScanResult - isScreenOn:false

05-25 09:26:50.191 14564-14564 /? I/TAG_BLE:BLE onScanResult - isScreenOn:false

05-25 09:26:50.221 14564-14564 /? I/TAG_BLE:BLE onScanResult - isScreenOn:false

05-25 09:26:50.271 14564-14564 /?I/TAG_B允許:BLE onScanResult - isScreenOn:假

9月5日至25日:26:50301 14564至14564 /? I/TAG_B允許:BLE onScanResult - isScreenOn:假

9月5日至25日:26:50351 14564至14564 /? I/TAG_B允許:BLE onScanResult - isScreenOn:假

9月5日至25日:26:50.401,從14564到14564 /? I/TAG_B允許:BLE onScanResult - isScreenOn:假

9月5日至25日:26:50441 14564至14564 /? I/TAG_B允許:BLE onScanResult - isScreenOn:假

9月5日至25日26:50,501 14564至14564 /? I/TAG_B允許:BLE onScanResult - isScreenOn:假

9月5日至25日:26:50531 14564至14564 /? I/TAG_B允許:BLE onScanResult - isScreenOn:假

9月5日至25日:26:50581 14564至14564 /? I/TAG_B允許:BLE onScanResult - isScreenOn:假

9月5日至25日:26:50631 14564至14564 /? I/TAG_B允許:BLE onScanResult - isScreenOn:假

--->無回調5S

九月五日至25日:26:55151 14564-14564 /? I/TAG_B允許:BLE onScanResult - isScreenOn:假

9月5日至25日:26:55201 14564至14564 /? I/TAG_B允許:BLE onScanResult - isScreenOn:假

九月五日至25日:26:55251 14564至14564 /? I/TAG_B允許:BLE onScanResult - isScreenOn:假

9月5日至25日:26:55301 14564至14564 /? I/TAG_B允許:BLE onScanResult - isScreenOn:假

九月五日至25日:26:55341 14564至14564 /? I/TAG_B允許:BLE onScanResult - isScreenOn:假

九月五日至25日:26:55381 14564至14564 /? I/TAG_B允許:BLE onScanResult - isScreenOn:假

九月五日至25日:26:55421 14564至14564 /? I/TAG_B允許:BLE onScanResult - isScreenOn:假

九月五日至25日:26:55481 14564至14564 /? I/TAG_B允許:BLE onScanResult - isScreenOn:假

九月五日至25日:26:55521 14564至14564 /? I/TAG_B允許:BLE onScanResult - isScreenOn:假

九月五日至25日:26:55571 14564至14564 /? I/TAG_B允許:BLE onScanResult - isScreenOn:假

九月五日至25日:26:55611 14564至14564 /? I/TAG_B允許:BLE onScanResult - isScreenOn:假

+0

相關https://developer.android.com/training/monitoring-device-state/doze-standby.html#understand_app_standby和https://developer.android.com/training/monitoring-device-state/doze- standby.html#support_for_other_use_cases –

+0

你有前景的服務在您的應用程序運行?如果你沒有,你應該有一個,如果你需要兩個在後臺掃描BLE;否則這是一個機會,應用進行了一段時間後終止。 – Emil

+0

不,我沒有前景服務,我正在使用STICKY後臺服務。問題不在於我的服務沒有被殺死(我保證服務不會被殺死)。我總是接收ScanCallback回調,但有些時候沒有我想要的那麼多。例如,當屏幕解鎖時,我是接收密集的ScanCallback,一旦它被鎖定,我仍然收到回叫,但是之間有3-4秒的停頓。 –

回答

0

不同的製造商使用不同的藍牙芯片。該因此,諸如此類的行爲是很有可能的。您是否嘗試過重新啓動掃描每一秒左右?剛開始和停止它。

+0

我試過了,但有些時候我沒有得到回調,當重新開始scan.As結果我有3-4s無回調也。 –