我正在尝试提高我的Beacon App的更新率。目前 Beacons本身设置为"我在这里!" -rate为500ms。
我读到 Android Beacon Library 的默认刷新率设置为1100毫秒,似乎就是这种情况。
但似乎我无法改变此刷新率(Android信标库)。我试过了:
@Override
public void onBeaconServiceConnect() {
// create the necessary region for the Beacon App and give it the Sensorberg UUIDs or parse "null" if it doesn't matter
final Region region = new Region("myBeacons", null, null, null);
beaconManager.setForegroundScanPeriod(200l); // 200ms
beaconManager.setForegroundBetweenScanPeriod(0l); // 0ms
try {
beaconManager.updateScanPeriods();
} catch (RemoteException e) {
Log.e(TAG, "Cannot talk to service" + (e));
}
OnCreate方法首先创建Manager的实例 beaconManager = BeaconManager.getInstanceForApplication(this);
然后用 BeaconManager.setRssiFilterImplClass(ArmaRssiFilter.class); 设置距离检测模式。
之后我用 beaconManager.getBeaconParsers()设置信标数据布局.add(new BeaconParser() .setBeaconLayout(" M:2-3 = 0215,I:4-19,I:20-21,I:22-23,P:24-24,d:25-25&#34));
现在我通过 beaconManager.bind(this); 启动管理器 然后OnCreate方法关闭。
后来我的onBeaconServiceConnect方法我尝试加快刷新率(上面发布的代码),但是在运行应用程序时似乎没有做任何改变。它仍然超过1秒。也没有"不能打电话给服务"在我的logCat中。
有人可以帮我更频繁地设置Android Beacon Library扫描的刷新率吗?谢谢! :)
更新:我调试了我的应用,这是logCat日志:
https://www.dropbox.com/s/p2bajo7bp5c1j8j/BeaconLog.txt?dl=0
这是一个包含所有日志的文本文件。
**更新2:**正如@davidgyoung提供的答案一样,更新速率正确地更改为200毫秒。每次在 setRangeNotifier 中检测到信标时,我都会在 onBeaconServiceConnect 方法中执行控制台日志,您可以通过时间戳明确告知此控制台日志太慢(大约一秒钟)。它应该至少每500毫秒(因为这是信标设置)。那么什么原因可能会减缓这个过程呢?我有一个Galaxy S5 neo应该还不错,应用程序很小。
控制台检查代码:
// check for available data from the Beacons
beaconManager.setRangeNotifier(new RangeNotifier() {
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
// for each Beacon print the data and do the following functions
for(final Beacon oneBeacon : beacons) {
Log.d(TAG, "distance: " + oneBeacon.getDistance() + "id: " + oneBeacon.getId1() + "/" + oneBeacon.getId2() + "/" + oneBeacon.getId3());
此代码的日志输出:
06-18 14:19:27.101 19937-20235 / de.mediatoni.beaconProto3 D / BeaconService:检测到信标:id1:73676723-7400-0000-ffff-0000ffff0001 id2:3788 id3: 2001年 06-18 14:19:27.891 19937-20275 / de.mediatoni.beaconProto3 D / BeaconService:检测到信标:id1:73676723-7400-0000-ffff-0000ffff0000 id2:3788 id3:2000 06-18 14:19:28.111 19937-20300 / de.mediatoni.beaconProto3 D / BeaconService:检测到信标:id1:73676723-7400-0000-ffff-0000ffff0002 id2:3788 id3:2002 06-18 14:19:28.701 19937-20302 / de.mediatoni.beaconProto3 D / BeaconService:检测到信标:id1:73676723-7400-0000-ffff-0000ffff0000 id2:3788 id3:2000 06-18 14:19:28.811 19937-20337 / de.mediatoni.beaconProto3 D / BeaconService:检测到信标:id1:73676723-7400-0000-ffff-0000ffff0001 id2:3788 id3:2001 06-18 14:19:28.821 19937-20338 / de.mediatoni.beaconProto3 D / BeaconService:检测到信标:id1:73676723-7400-0000-ffff-0000ffff0002 id2:3788 id3:2002
答案 0 :(得分:0)
根据发布的日志,看起来扫描周期已成功更改为200毫秒。我怀疑这是有效的,更高层次的其他事情是让更新不会超过一秒钟。
varchar