我正在使用半径网络 iBeacon Api。我每秒钟在后台模式下扫描信标。我有两个信标。有时扫描信标并不一致。我该如何解决这个问题?
假设有两个信标
最初的间隔扫描
发现信标 1、信标 2
在第二次间隔扫描
只有 Beacon 1 或 Beacon 2 来了
第三次间隔扫描
找到信标 1 和信标 2
在第四个区间
再次单灯塔来了..
像这样我得到
我正在使用半径网络 iBeacon Api。我每秒钟在后台模式下扫描信标。我有两个信标。有时扫描信标并不一致。我该如何解决这个问题?
假设有两个信标
最初的间隔扫描
发现信标 1、信标 2
在第二次间隔扫描
只有 Beacon 1 或 Beacon 2 来了
第三次间隔扫描
找到信标 1 和信标 2
在第四个区间
再次单灯塔来了..
像这样我得到
最可能的解释是您使用的信标传输频率不够高。为了获得最佳性能,信标应每秒至少发送 10 次广告。充当 iBeacon 的 iOS 设备每秒发送 30 次广告。
在对信标进行测距时,Android iBeacon 库默认每 1100 毫秒发送一次更新,其中包含在此期间发现的每个信标的列表。如果在此间隔中没有检测到特定信标的传输,则该信标将不会包含在该扫描间隔的列表中。
无需更改硬件来解决信标间歇性地不包含在回调中的情况。只需在最后五秒左右看到的信标软件中维护一个列表。
或者,您也可以简单地延长扫描周期,但这会降低您 gat 回调的频率:
iBeaconManager.setBackgroundScanPeriod(5000l); // 5 secs
iBeaconManager.setForegroundScanPeriod(5000l); // 5 secs
iBeaconManager.updateScanIntervals();
这是正常情况。
由于多径效应,信标间隔不一致。
每个无线信号都具有多径效应。
请参考以下链接:
因此,无法估计信号到达智能手机的时间。
如果你想监控你的信标信号,这个应用程序对你很有用。
使用此应用程序查看信标的图表视图。
这是了解您的信标如何运作的最快方式。