为什么信标会自动断开连接?
Why beacon got disconnected automatically?
我正在使用 android 信标库来检测 beacons.I 已经创建了一个实现 Bootstrap 通知程序的服务,它有两种方法:
@Override
public void didEnterRegion(Region arg0) {
Log.i(TAG, "A beacon has enter the region .........");
}
@Override
public void didExitRegion(Region arg0) {
Log.i(TAG, "A beacon has exit the region .........");
}
还有:
mAllBeaconsRegion = new Region("all beacons", Identifier.parse(UUID),null, null);
mBeaconManager = BeaconManager.getInstanceForApplication(this);
new BackgroundPowerSaver(this);
bootstrap = new RegionBootstrap(this, mAllBeaconsRegion);
mBeaconManager.setBackgroundScanPeriod(1000l);
mBeaconManager.setBackgroundBetweenScanPeriod(1000l);
我的问题是,在某些设备中,beacon 会自动退出该区域并调用 didExitRegion,然后重新进入该区域,didEnterRegion called.It 会再次自动断开连接。
这是循环发生的。我正在用 Lollipop 测试它。
我怎样才能摆脱这个?
请帮忙
了解导致区域退出的原因很重要。当在 10 秒内未检测到来自与区域对象匹配的信标的广告数据包时,将触发区域出口。有很多事情会导致这种情况:
硬件信标的广告频率不够。为获得最佳性能,信标应以 10 赫兹或更高的频率进行广告。一些制造商降低广告速率以节省电池,使信标每 5 秒左右才广告一次。如果某些数据包由于无线电噪声或其他问题而被接收器错过,这可能会导致区域退出。要解决此问题,将您的信标配置为每秒至少广播一次(1 Hz。)
信标位于移动设备无线电范围的边缘。蓝牙信标的范围从 2 到 50 米不等,具体取决于制造商、设置、位置和接收移动设备上的天线。如果信号非常微弱,则检测是间歇性的,如果在 10 秒内没有看到任何数据包,则会导致退出。要解决此问题,增加信标的发射器功率,或添加软件过滤器以忽略间歇性退出事件。
某些移动设备(例如 Moto X、Moto G、Nexus 4、Nexus 7)存在 硬件缺陷,即蓝牙和 WiFi 无法同时工作。这可能会导致您描述的症状,因为它会使信标检测间歇性。要解决此问题,在其中一台设备上寻找信标时禁用 WiFi。
我正在使用 android 信标库来检测 beacons.I 已经创建了一个实现 Bootstrap 通知程序的服务,它有两种方法:
@Override
public void didEnterRegion(Region arg0) {
Log.i(TAG, "A beacon has enter the region .........");
}
@Override
public void didExitRegion(Region arg0) {
Log.i(TAG, "A beacon has exit the region .........");
}
还有:
mAllBeaconsRegion = new Region("all beacons", Identifier.parse(UUID),null, null);
mBeaconManager = BeaconManager.getInstanceForApplication(this);
new BackgroundPowerSaver(this);
bootstrap = new RegionBootstrap(this, mAllBeaconsRegion);
mBeaconManager.setBackgroundScanPeriod(1000l);
mBeaconManager.setBackgroundBetweenScanPeriod(1000l);
我的问题是,在某些设备中,beacon 会自动退出该区域并调用 didExitRegion,然后重新进入该区域,didEnterRegion called.It 会再次自动断开连接。
这是循环发生的。我正在用 Lollipop 测试它。
我怎样才能摆脱这个? 请帮忙
了解导致区域退出的原因很重要。当在 10 秒内未检测到来自与区域对象匹配的信标的广告数据包时,将触发区域出口。有很多事情会导致这种情况:
硬件信标的广告频率不够。为获得最佳性能,信标应以 10 赫兹或更高的频率进行广告。一些制造商降低广告速率以节省电池,使信标每 5 秒左右才广告一次。如果某些数据包由于无线电噪声或其他问题而被接收器错过,这可能会导致区域退出。要解决此问题,将您的信标配置为每秒至少广播一次(1 Hz。)
信标位于移动设备无线电范围的边缘。蓝牙信标的范围从 2 到 50 米不等,具体取决于制造商、设置、位置和接收移动设备上的天线。如果信号非常微弱,则检测是间歇性的,如果在 10 秒内没有看到任何数据包,则会导致退出。要解决此问题,增加信标的发射器功率,或添加软件过滤器以忽略间歇性退出事件。
某些移动设备(例如 Moto X、Moto G、Nexus 4、Nexus 7)存在 硬件缺陷,即蓝牙和 WiFi 无法同时工作。这可能会导致您描述的症状,因为它会使信标检测间歇性。要解决此问题,在其中一台设备上寻找信标时禁用 WiFi。