2014-11-05 67 views
0

我正在爲我們的團隊的android BLE庫工作,該庫是用4.3本機框架開發的,我嘗試保留找到的BLE設備的表,並發現一個通知,當我發現一個新的BLE設備誰不在我的發現設備表中,而不是通知每次發現設備時(默認行爲由android BLE框架),問題是我無法檢測到設備是考慮到我不想與它建立BLE連接。 任何人都可以幫助我?我猜想有一些方法可以做到這一點,比如iOS框架,當設備不連接到設備時,可以通知你。如何檢測BLE設備已經沒有連接到它在Android

回答

2

「未發現」設備的基本策略是跟蹤上次發現設備的時間,以及每隔一秒鐘左右遍歷設備列表。如果當前時間減去設備發現的最後時間大於某個時間增量(我使用12.5秒),則認爲設備未被發現並將其從列表中刪除。

的一些陷阱與此:

  • 才能undiscover設備的最短時間爲12.5秒,這是相當長的,如果你坐下來算出來。您可以嘗試使用較低的時間增量閾值,但我發現使用某些手機會導致大量虛假未發現,因爲發現之間的合理時間可能需要一段時間。
  • 你不應該連續掃描,而是至多在5-10秒的脈衝中進行掃描,並在兩者之間進行小幅度的中斷。

我也聽說過使用RSSI的人。低RSSI意味着你沒有發現它,但我也經歷了很多這種方法的誤報。

+0

感謝您的建議,我終於找到了一個解決方案,顯然RSSI不能用於估計設備是否「消失」,我的解決方案可能並不完美,但在我的情況下工作。 – FrogInNightCap 2014-11-20 15:12:18

+0

我管理一個「找到的設備」列表,爲每個設備,一個時間戳與關聯,每次leScan發現設備,時間戳將被更新,我也創建一個計時器循環每秒鐘,檢查時間戳最大超時時間。值大於此值的設備將從「找到的設備」列表中刪除。 – FrogInNightCap 2014-11-20 15:18:24

+0

很酷,你的問題得到解答? – 2014-11-20 19:55:14

相關問題