2017-05-08 45 views
0

我最近正在做一個基於BLE信標的室內定位項目。可以在Android設備上掃描多少個信標?

我曾嘗試在我的Android應用中包含Estimote或Android Beacon庫,但我的設備(Zenfone3,HTC X9)只能掃描約10-20個信標,我們已部署了約100個信標壁。

與我們應用的iOS版本相比,它可以每秒鐘掃描大約50-80個信標。我想知道可以在Android設備上掃描多少個信標?那麼有沒有什麼方法可以接收更多的燈塔廣告?它在Android或全球藍牙芯片組的藍牙API上真的有門檻嗎?


更新(2017年5月8日16:17):

我保證所有的信標功能。我使用Radius Network的「Locate」來掃描附近的信標,並確保我的空間中真的有50多個信標。


更新(2017年5月10日10:00):

親愛的周華健,感謝你爲您真誠的答覆。以下是我的解決方法。 我測試了3個案例。在一個500m左右×100米的空間,我部署不同數量的信標:

殼體1(100信標): 從在每一個第二約16不同的設備接收廣告。

情況2(50個信標): 每秒接收來自約15個不同設備的廣告。

情況3(20個信標): 每秒接收來自約14個不同設備的廣告。

我想要實現的是我希望每秒都能接收來自所有設備的廣告。請您提供任何方法來滿足我的需求?

以下是日誌我得到每當我收到一個廣告從ScanResult從BluetoothAdapter.getBluetoothLeScanner()startScan(ScanCallback)

05-04 12:42:24.460 C4:BE:7B:5B:60:74 -87 
05-04 12:42:25.055 C4:BE:C8:F6:DD:28 -84 
05-04 12:42:25.066 C4:BE:C8:F6:DD:28 -84 
05-04 12:42:25.075 C4:BE:5F:55:74:AE -90 
05-04 12:42:25.084 C4:BE:5F:55:74:AE -90 
05-04 12:42:25.090 C4:BE:14:70:C7:F1 -91 
05-04 12:42:25.100 C4:BE:14:70:C7:F1 -91 
05-04 12:42:25.134 C4:BE:BB:AD:8A:B3 -91 
05-04 12:42:25.163 C4:BE:BB:AD:8A:B3 -91 
05-04 12:42:25.169 C4:BE:D7:80:E1:34 -89 
05-04 12:42:25.174 C4:BE:D7:80:E1:34 -89 
05-04 12:42:25.536 C4:BE:5D:90:5C:86 -79 
05-04 12:42:25.543 C4:BE:5D:90:5C:86 -79 
05-04 12:42:25.559 C4:BE:20:20:C9:69 -88 
05-04 12:42:25.564 C4:BE:20:20:C9:69 -88 
05-04 12:42:25.986 C4:BE:C1:D9:CB:5E -86 
05-04 12:42:25.999 C4:BE:C1:D9:CB:5E -86 
05-04 12:42:26.007 C4:BE:CD:AA:AE:DD -94 
05-04 12:42:26.016 C4:BE:CD:AA:AE:DD -94 
05-04 12:42:26.038 C4:BE:E7:F1:88:EE -89 
05-04 12:42:26.044 C4:BE:E7:F1:88:EE -89 
05-04 12:42:26.051 C4:BE:E9:AE:45:03 -83 
05-04 12:42:26.056 C4:BE:E9:AE:45:03 -83 
05-04 12:42:26.063 C4:BE:97:5D:B7:50 -95 
05-04 12:42:26.071 C4:BE:97:5D:B7:50 -95 
05-04 12:42:26.076 C4:BE:EF:15:EB:C3 -77 
05-04 12:42:26.082 C4:BE:EF:15:EB:C3 -77 
05-04 12:42:26.086 C4:BE:35:94:B2:3D -70 
05-04 12:42:26.092 C4:BE:35:94:B2:3D -70 
05-04 12:42:26.644 C4:BE:5F:55:74:AE -92 
05-04 12:42:26.667 C4:BE:5F:55:74:AE -92 
05-04 12:42:26.693 C4:BE:7B:5B:60:74 -86 
05-04 12:42:26.702 C4:BE:7B:5B:60:74 -86 
05-04 12:42:26.708 C4:BE:D7:80:E1:34 -82 
05-04 12:42:26.717 C4:BE:D7:80:E1:34 -82 
05-04 12:42:26.720 C4:BE:3B:29:8A:42 -93 
05-04 12:42:26.724 C4:BE:3B:29:8A:42 -93 
05-04 12:42:26.731 C4:BE:4F:21:CF:81 -94 
05-04 12:42:26.734 C4:BE:4F:21:CF:81 -94 
05-04 12:42:26.738 C4:BE:86:4F:C2:8D -87 
05-04 12:42:26.742 C4:BE:86:4F:C2:8D -87 
05-04 12:42:26.746 C4:BE:E7:F1:88:EE -88 
05-04 12:42:26.750 C4:BE:E7:F1:88:EE -88 
05-04 12:42:26.753 C4:BE:20:20:C9:69 -86 
05-04 12:42:26.757 C4:BE:20:20:C9:69 -86 
05-04 12:42:26.760 C4:BE:BB:AD:8A:B3 -88 
05-04 12:42:26.763 C4:BE:5D:90:5C:86 -79 
05-04 12:42:26.767 C4:BE:BB:AD:8A:B3 -88 
05-04 12:42:26.770 C4:BE:5D:90:5C:86 -79 
05-04 12:42:27.113 C4:BE:6F:53:2A:B3 -73 
05-04 12:42:27.133 C4:BE:6F:53:2A:B3 -73 
05-04 12:42:27.151 C4:BE:62:C4:68:38 -82 
05-04 12:42:27.160 C4:BE:62:C4:68:38 -82 
05-04 12:42:27.166 C4:BE:F2:A7:4F:4E -88 
05-04 12:42:27.170 C4:BE:F2:A7:4F:4E -88 
+0

設備的廣告時間間隔是多少? – Emil

+0

我們的設備是BLE信標,在39頻道上的傳輸間隔爲100ms。 –

回答

0

如果您有100個廣告設備,且廣告時間間隔爲100毫秒,則無法接收100%的廣告數據包。首先,即使您使用100%佔空比掃描間隔,Android設備也不會真正掃描100%的時間,因爲它在某些時間點必須將天線用於其他設備,如WiFi或安排其他設備的連接事件。如果你說你只在39頻道上播放廣告,你將失去大約三分之一的數據包,因爲掃描器在廣告頻道之間循環播放。您也很有可能在廣播中發生衝突,因爲發送數據包需要幾百微妙的時間。發生這種情況時,接收器很可能會收到垃圾。

+0

請您分享結果以及在您的環境中收集藍牙廣告的經驗嗎?像信標的數量,信標傳輸間隔或類似的東西?我很感激。 –

+0

我想大多數設備的廣告間隔爲1秒左右。我不確定你想要什麼信息。沒有太多有趣的事實可以說明我的猜測。由於我們沒有將廣告數據用於設備以外的其他設備,因此丟棄某些數據包並不重要。只需做一些基本計算,事實是廣告數據包以1 MBit/s的速度發送,並且在廣告數據+地址上的開銷爲80位,您將根據廣告時間間隔計算出碰撞的可能性。 – Emil

0

不應該有任何限制。 Android的藍牙堆棧只是轉發廣告並掃描應用程序的響應。我們有數百個廣告設備,並且仍然可以正常工作。

是否有特定設備的廣告根本無法工作,可能是由於數據包格式或其他原因?

+0

親愛的Emil,非常感謝您的真誠回覆。我面臨的挑戰是,我希望每** **的每個設備**的每個廣告**都能**。 –

+0

請參閱我的更新。 –

相關問題