[問題] 藍芽掃描問題

作者: gn00618777 (非常念舊)   2017-10-21 14:30:31
午安
假日比較有時間來看工作上比較不緊急的問題
我測試環境是偏僻的鄉下,手邊裝置是 Sony Xperia X Compact,Android 7.0
自己寫的APK,當開起我的APK掃描藍芽時,因為在鄉下,所以周遭只會出現
我手邊的BLE裝置。
ScanSettings 的 setScanMode 參數設 LOW LATENCY
當掃個五次,總會有兩~三次永遠掃不到。
測試的APK: 自己的APK、nRF Connect(nordic的) 一樣如此。
在掃到裝置的 callback 當中,塞進log,還真的沒有到有裝置掃到。
我又測試了系統 設定那邊的藍芽,點進去他總是可以掃到,不過是有看到他右上角
有一直在轉動,不確定他是不是關掉掃描又開啟掃描,這樣才不會像我上面掃不到的問題
不知道有沒有人注意到這問題呢?
我ScanSetting 參數 和 Filter 參數都試過了情況也一樣。
最差的備案就是以後我就將掃到的,就直接綁定。讓她永遠出現在我的UI清單內
點下去直接連線,因為我這邊的裝置是可連接的,雖然廣播有時看不到
但應該可以直接連線。
想知道前輩們的想法@@?
謝謝。
https://goo.gl/x2XRW5 這是 github code
我試的參數有
MATCH_MODE_AGGRESSIVE
MATCH_MODE_STICKY
SCAN_MODE_LOW_LATENCY
也改了每五秒掃,然後stopscan,再延遲一秒,再startScan
發現使用者體驗更不好XD,我自動重新scan後,也是會常掃不到。
github分享的是,掃描很長的時間,會掃到就會馬上列出來,但是當掃不到時就是
掃不到不會列出來 onScanResult()加上log也發現此callback完全沒有掃到
,除非手動關掉,再開啟重新掃描,也就是大概五次 會有兩到三次
會掃不到
作者: gn00618777 (非常念舊)   2017-10-21 14:48:00
看起來 google play 的 BLE Scanner apk也可以找到..
作者: roy870075 (Roy)   2017-10-21 14:52:00
永遠 掃不到的話要確定裝置沒有被其他手機連走,如果用第三方app也找不到的話,建議用ios也試試看有沒有掃到裝置,如果都不是的話也有可能是裝置有問題,不一定是app
作者: gn00618777 (非常念舊)   2017-10-21 15:11:00
我確定APK掃不到,然後同支手機的BLE Scanner 可以掃我家滿鄉下的,也沒人在使用BLE裝置,這點可以排除..因為頻率滿固定的 總是有幾次永遠掃不到,應該沒有人都剛好那時候把我的裝置連走@@
作者: roy870075 (Roy)   2017-10-21 16:21:00
你有發起連線嗎還是純粹掃描他就會掃不到,另外永遠掃不到時,你如何讓他可以在此掃到?還有scansettings你是只改mode嗎還是還有改其他參數也可以試試看用SCAN_MODE_BALANCED看有無變化如果還是不行建議可以把code分享出來比較方便大家幫你找問題
作者: gn00618777 (非常念舊)   2017-10-21 17:31:00
純粹掃描就會常有掃不到的問題我看到 logcat | grep "gatt" 出現E/BtGatt.GattService: App 'xxxxx' is scanning toofrequently看樣子,安卓從七開始加了30秒內只能掃5次的限制
作者: a1275647 (iphone 10)   2017-10-27 03:38:00
我建議直接抓手機配對過的藍芽不必再做搜尋藍芽動作這樣百分百解決掃描問題
作者: gn00618777 (非常念舊)   2017-12-15 16:06:00
了解,我會參考謝謝。

Links booklink

Contact Us: admin [ a t ] ucptt.com