1

我正在使用背景掃描的應用程序無法啓動。見Using AltBeacon: start and stop scanning from app settingsAltBeacon在停止藍牙後繼續掃描

我觀察到一個奇怪的行爲。當我停止從設備設置的藍牙,應用程序不斷掃描並調用didEnterRegion和didExitRegion。通知欄中的藍牙符號消失了。 我還可以在logcat中看到D/BluetoothLeScanner:onScanResult() ... entrys。

這怎麼可能?

+0

它在這些條件下是否檢測到信標? – davidgyoung

+0

是的,但它很奇怪。它交替地調用didEnterRegion和didExitRegion。 我會再次檢查並報告。 – egmontr

+0

我再次測試,是的,它在這些條件下檢測信標。 – egmontr

回答

1

我們在某些設備上收到了有關此行爲的其他一些報告。確切的原因是未知的,但我懷疑有些設備不能準確反映Android設置UI中的藍牙狀態。即使用戶禁用了藍牙功能,如果某些應用程序已經在使用藍牙功能,那麼即使設置界面顯示,它仍然保持亮着。

編輯:根據評論中的反饋,這聽起來像是一些三星S3型號保留了應用程序特定的藍牙訪問權限,如果它是在應用程序激活之前或期間啓用的。即使您在系統用戶界面中關閉了藍牙功能,它仍會保留所有正在運行的應用程序,儘管用戶界面顯示的內容如此。關閉藍牙功能後啓動的其他應用程序表現得好像確實關閉了一樣。

確認此問題的一種方法是將您的設備置於此狀態,然後重新啓動Locate app for Android。此應用程序會向用戶顯示一個對話框,告訴他們在應用程序啓動時關閉藍牙功能。此測試將獨立確認藍牙是否確實關閉,無論設置UI是如何報告的。

除了評論上述測試的結果之外,瞭解設備的型號,Android版本和內部版本號將非常有用,所有這些都可以在設置 - >關於手機下找到。

完全披露:我是Android Beacon Library項目的首席開發人員。

+0

是的,Locate應用程序要求打開藍牙。 我測試的設備是三星S4,Android 5.0.1,內部編號爲LRX22C.I9505XXUHOJ2。 – egmontr

+0

我與Galaxy S5有同樣的問題。在啓動測距信標後,Android未能關閉藍牙(UI說它已關閉)。據我所知,在我將Android從KitKat升級爲棒棒糖後引發了這個問題。另外,在測試相同的應用程序時,我沒有與LG G2和G3相同的問題。所以,這個問題可能與三星固件或驅動程序有關。 –