【问题标题】:Beacon scanner does not scan one beacon signal for more than 10 seconds信标扫描仪不扫描一个信标信号超过 10 秒
【发布时间】:2018-11-16 11:02:32
【问题描述】:

你好,我的英语很差。 我使用 Android 信标库

实现'org.altbeacon:android-beacon-library:2.15.2'

我的 Android 应用程序 gradle 信息

compileSdkVersion 28

minSdkVersion 21

targetSdkVersion 28

我的 Beacon 管理员信息

beaconManager.getBeaconParsers().add(new BeaconParser().setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24 "));

beaconManager.setForegroundScanPeriod(1100L);

beaconManager.setBackgroundScanPeriod(1100L);

beaconManager.setForegroundBetweenScanPeriod(0);

beaconManager.setBackgroundBetweenScanPeriod(0);

beaconManager.enableForegroundServiceScanning(notificationcompatBuilder_Scannging.build(),456);

beaconManager.setEnableScheduledScanJobs(false);

BeaconManager.setDebug(true);

regionBootstrap = new RegionBootstrap(this, myBeaconRegion);

错误

我想开发全天信标扫描应用程序。

所以我使用 regionBootstrap 在后台进行扫描。

看起来它正在工作。

然而时间过去了,Exit Event 突然发生,Enter Event 又在不久之后发生。

我认为扫描在几秒钟内不起作用,我对此进行了测试。

错误测试 1

  • 一个智能手机,两个信标
  • Error1
  • 在检测到另一个信标信号时,超过 10 秒未检测到一个信标信号。
  • 所以我认为扫描效果很好,这是信标的问题。

错误测试 2

  • 两个智能手机,两个信标
  • 智能手机 1 enter image description here
  • 智能手机2 enter image description here
  • 在智能手机 1 Logcat 中,在检测到另一个信标信号时,超过 10 秒未检测到一个信标信号。
  • 在智能手机 2 Logcat 中,同时扫描未扫描的信标。
  • 所以信标没有问题,我找不到原因。

错误测试 3

  • 添加了测试
  • 两个智能手机
  • 我的信标大约每三秒发送一次信号。
  • 在智能手机 1 中,下载其他具有信标信号传输且以 1Hz 传输的信标应用程序。
  • 在智能手机 2 中,通过使用我的应用程序,观察信号。 enter image description here
  • 智能手机1的信标信号明显增加,但同样的问题出现了。

有人知道这件事吗? 我需要帮助... 请

【问题讨论】:

  • 我不明白这句话:“在智能手机 2 Logcat 中,同时正在扫描未扫描的信标。”
  • Sorry...在智能手机2的logcat中,智能手机1中没有扫描到的信标信号被同时扫描(32sec~43sec)

标签: android beacon altbeacon ibeacon-android


【解决方案1】:

我怀疑您用于测试的信标传输频率不够高。制造商经常降低传输速率以节省电池。当传输速率低于 1Hz 时,这可能会导致问题,因为不是 100% 传输的信标数据包被任何电话接收。无线电噪声经常导致数据包丢失。如果一个设备连续丢失几个数据包(有时会发生),则会导致区域退出事件。

解决方案是增加信标传输的频率。对于某些制造商,这是可配置的。对于其他人,它不是。如果不可配置,您可能需要购买不同的信标

您可以通过在其中一台设备上使用 Android 信标模拟器应用来测试这是否是问题所在。试试我的BeaconScope app,默认情况下会以 10Hz 做广告。

【讨论】:

  • 感谢您的回答。我的信标大约每三秒发送一次信号。我下载了你的应用程序并通过 1 Hz 信标信号进行了测试。但也有一个问题。 10:16:34.808 ~ 10:16:47.215 之间没有信号。而且由于信标的电池,我无法将赫兹提高到 1 赫兹以上。你能给我其他的建议吗?请..帮帮我....
【解决方案2】:

此库仅在触发特定事件时返回结果,而不是针对扫描的所有信标。如果您需要这个,我建议您使用标准的 android 标准信标库,如果您想了解更多信息以及如何实现评论这篇文章,我会用实现来编辑它

【讨论】:

  • 感谢您的回答。我的信标大约每三秒发送一次信号,如果十秒内没有信号,则触发退出事件。但是这个库的调试模式给了我所有信标信号的日志,比如“检测到信标:id1:2f234454-cf6d-4a0f-adf2-f4911ba9ffa6 id2:1 id3:1”“检测到信标:id1:c01a269d-d9b8-3b36-a2b2 -cf99e719f573 id2:62497 id3:54769"。但我想知道你说的图书馆。请帮帮我...
  • 好吧,我帮你
猜你喜欢
  • 1970-01-01
  • 2013-09-24
  • 2019-05-28
  • 2011-01-31
  • 2019-01-04
  • 2019-08-24
  • 2020-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多