我最近正致力于基于BLE信标的室内定位项目。
我曾尝试将Estimote或Android Beacon Library包含在我的Android应用程序中,但我的设备(Zenfone3,HTC X9)只扫描了我们在墙上部署了大约100个信标的空间中的大约10-20个信标
与我们的应用程序的iOS版本相比,它可以每秒扫描大约50-80个信标。我想知道在Android设备上可以扫描多少个信标?是否有任何方法可以获得更多的信标广告?在Android或蓝牙芯片组的蓝牙API上真的有一个门槛吗?
<小时/> 更新(2017/05/08 16:17):
我确保所有信标都正常运作。我使用了#34;定位&#34;从Radius Network扫描附近的信标,确保我的空间中有50多个信标。
<小时/> 更新(2017/05/10 10:00):亲爱的埃米尔,谢谢你的诚挚答复。以下是我的解决方法。 我测试了3个案例。在大约500米x 100米的空间中,我部署了不同数量的信标:
案例1(100个信标): 每秒钟接收来自大约16种不同设备的广告。
案例2(50个信标): 每秒钟接收来自大约15种不同设备的广告。
案例3(20个信标): 每秒钟接收来自大约14种不同设备的广告。
我想要实现的是我希望每秒钟都能收到来自所有设备的广告。请您提供满足我需求的方法吗?
以下是我从 BluetoothAdapter.getBluetoothLeScanner()收到来自ScanResult的广告后得到的日志.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 :(得分:0)
不应有任何限制。 Android的蓝牙堆栈只是转发广告并扫描对应用程序的响应。我们有数百种广告设备,但仍然可以正常使用。
是否有特定设备的广告完全不起作用,可能是由于数据包格式或其他原因?
答案 1 :(得分:0)
如果您有100个广告设备,广告间隔为100毫秒,则无法接收100%的广告包。首先,Android设备不会真正扫描100%的时间,即使你使用100%占空扫描间隔,因为它在某些时间点必须使用天线做其他事情,如wifi或安排其他设备&#39;连接事件。如果您说您只在第39频道做广告,您将丢失大约三分之一的数据包,因为扫描程序在广告渠道之间循环。您也很可能会在空中发生碰撞广告,因为发送数据包需要几百微秒。接收器很可能在发生这种情况时就会收到垃圾。