2016-11-28 68 views
0

我在Android 6.0.1(Nexus 5)上測試信標並通過Altbeacon庫2.9.1進行監控,並在靠近信標的地方測試設備(幾個房間離開)我得到多個進入/退出回調。信標基於Raspberry Pi 3的默認設置(作爲iBeacon傳輸)。altbeacon參考應用程序和多個退出/進入調用

但是,我在日誌輸出中使用Altbeacon參考應用程序,每隔5-6分鐘就會看到一次入口事件消息(didEnterRegion),從而產生通知。在此期間,Nexus 5固定在桌面上。

唯一的源代碼修改是添加一個特定的區域來監視,但這是關於它。

關於爲什麼這種行爲是這種方式的任何想法?

回答

0

最可能的解釋是來自信標的傳輸只是間歇性地被您的Android設備接收到。

使用默認設置時,如果在10秒內未檢測到與該區域匹配的信標,Android Beacon庫會將該區域視爲已退出。 Linux信標發射器默認每秒發送一次廣告。 如果連續錯過了其中的10個傳輸,您將收到一個區域退出,然後在下一次收到區域條目時收到區域條目。瞭解即使在理想條件下,由於無線電噪音和其他問題,並不是所有的信標傳輸都會收到。一旦你接近信標發射機範圍的邊緣,這種間歇性的出/入事件將會越來越頻繁地發生。

爲了解決這個問題,你可以做很多事情:

  • 增加您的信標發射機頻率從1 Hz至10 Hz。這將使得在10秒鐘內沒有收到信標數據包的可能性降低。

  • 如果可能加大發射功率(儘管這可能是無法實現的樹莓PI)

  • 移動信標接近的Android接收機

  • 增加來自區域出口超時設置爲20秒10秒通過致電BeaconManager.setRegionExitPeriod(20000l);

0

如何每天只檢測一個條目。用戶多次進入餐廳,但即使下次檢測到信標,我也想每天通知一次。