Android AltBeacon库中BLE背景扫描的间隔限制?

问题描述

我一直在使用Android AltBeacon库。我一直注意到一个奇怪的现象,设备随机停止扫描,间隔为5秒或10秒。我有两个彼此相邻的设备A和B,这些设备都是使用AltBeacon库以iBeacon格式进行广告和扫描。

/**
 * The default duration in milliseconds of the Bluetooth scan cycle
 */
public static final long DEFAULT_FOREGROUND_SCAN_PERIOD = 1100;
/**
 * The default duration in milliseconds spent not scanning between each Bluetooth scan cycle
 */
public static final long DEFAULT_FOREGROUND_BETWEEN_SCAN_PERIOD = 0;
/**
 * The default duration in milliseconds of the Bluetooth scan cycle when no ranging/monitoring clients are in the foreground
 */
public static final long DEFAULT_BACKGROUND_SCAN_PERIOD = 10000;
/**
 * The default duration in milliseconds spent not scanning between each Bluetooth scan cycle when no ranging/monitoring clients are in the foreground
 */
public static final long DEFAULT_BACKGROUND_BETWEEN_SCAN_PERIOD = 5 * 60 * 1000;

这些是我在创建扫描仪时使用的参数。

因此,我很好奇为什么它会停止以不同的时间间隔进行检测。我认为这与广告无关,因为我让LocateBeacon应用程序在第三台设备上运行只是为了检查广告是否在其他两个设备中的任何一个上停止。

因此,此问题是由于Android OS限制或与AltBeacon库相关的问题所致。我到底该如何解决?由于这个问题,我得到了不必要的didExitRegion(..)回调,弄乱了用例。

广告设备:Oppo Android版本:v8.1.0 PPS:2.2

扫描设备:OnePlus Android版本:v10

编辑

以下是我为我的发射功率和发射模式设置的值:

private int mAdvertiseMode = AdvertiseSettings.ADVERTISE_MODE_BALANCED;
private int mAdvertiseTxPowerLevel = AdvertiseSettings.ADVERTISE_TX_POWER_LOW;

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...