iBeacon传输似乎不稳定,Altbeacon安卓Kotlin



当我试图创建iBeacon,然后检测某个区域的信标时,范围通知程序在很短的时间内不会通知培根,因为它再次开始出现,但有一秒钟的下降,信标消失,再次开始出现。

我预计当信标发射时,测距通知程序应该始终返回信标,但有时它会变为0计数,然后再次返回信标。

**val beacon = Beacon.Builder()
.setId1("f7826da6-4fa2-4e98-8024-bc5b71e0893e")
.setId2("1")
.setId3("2")
.setManufacturer(0x004c)
.setTxPower("-59")
.build()**
**beaconTransmitter = BeaconTransmitter (this, BeaconParser()
.setBeaconLayout ("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24");
beaconTransmitter?.startAdvertising(beacon)
mBeaconManager = BeaconManager.getInstanceForApplication(applicationContext)
mBeaconManager?.beaconParsers?.add(BeaconParser().setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"))**
**private val mRangeNotifier = RangeNotifier { beacons, region ->
//Here I receive zero beacon some time, mostly it works but form very small interval of time beacon count is zero
}**
There should be proper detection of beacon so no inconsistency occurs, at least I could always track the beacons.
I have tested it on -
One plus 5 with Android version 9
One plus 6 Plus with Android version 9
Poco F1 with Android version 8
Library version - 2.16.4

这里有很多变量可能存在问题:

  1. 显示的代码(或问题中未显示的支持代码(
  2. 发送电话的硬件问题
  3. 接收电话的硬件问题

因为您使用的是三种不同的手机,所以可能的故障源组合会随着手机组合而增加。

为了追踪这一点,您必须简化您的测试用例:

  1. 使用最可靠的参考信标发射机进行测试。选择一个硬件信标(最好(或基于笔记本电脑的信标发射机程序(更好(,如果你有一个可用的。如果你别无选择,选择其中一部手机作为发射器,然后选择你认为最可靠的一部
  2. 使用基于相同库的现成信标检测器程序,如信标范围,并测试信标的检测。使用现成的程序可以消除检测软件中的任何编码错误
  3. 在您的每部手机上测试现成的检测功能。如果不能可靠地检测,这将告诉你哪些(如果有的话(存在硬件故障
  4. 一旦你有了一个可靠的发射器,知道哪些手机是可靠的探测器,就回到你的程序中,使用最可靠的发射器使其与你在Beacon Scope中看到的一样可靠

最新更新