android - altBeacon: didEnterRegion
问题描述
我正在编写一个利用 AltBeacon 的 Android-Beacon-Library 的 Android App 自定义类。但是当第一次启动时,如果我在信标区域,didEnterRegion() 将不起作用。我想立即创建一个活动。我找不到任何其他解决方案。请,任何帮助表示赞赏!这是我的代码▼</p>
beaconManager.addMonitorNotifier(new MonitorNotifier() {
@Override
public void didEnterRegion(Region region) {
//Log.i(TAG, "I just saw an beacon for the first time!");
sendData(dataStart);
mHandler.post(new Runnable() {
@Override
public void run() {
tv_beacon_.setText("work");
}
});
}
@Override
public void didExitRegion(Region region) {
//Log.i(TAG, "I no longer see an beacon");
sendData(dataEnd);
mHandler.post(new Runnable() {
@Override
public void run() {
tv_beacon_.setText("not work");
}
});
}
@Override
public void didDetermineStateForRegion(int state, Region region) {
Log.i(TAG, "I have just switched from seeing/not seeing beacons: "+state);
}
解决方案
这种行为是意料之中的,因为didEnterRegion
回调仅在您不在该区域时才会触发。你可以在这里了解更多信息:https ://altbeacon.github.io/android-beacon-library/detection-trouble.html
你可以做的就是打电话
beaconManager.setRegionStatePeristenceEnabled(false)
这将didEnterRegion
在应用程序重新启动后触发回调,即使手机已经在信标区域。
如果您这样做,请记住,当后台应用程序被 Android 操作系统暂时终止时,回调可能会触发多次。
推荐阅读
- html - 使用 z-index 将前景元素移动到背景中的网格之前
- javascript - 有没有办法编辑 WebComponent 的 CSS/JS?
- laravel - 如何在我的 laravel 代码中链接 2 个现有模型?
- spss - 从 SPSS 的调查中删除“IDK”以进行基本分析是否更合理?
- php - 每次在 PHP 中调用函数时,如何返回一个构建新表行的字符串?
- json - Type '_' has no member 'id' SwiftUI
- javascript - 如何从每种类型的单独数组切换到具有所有值的单个数组?
- bash - 尝试在 BASH 脚本中指定发件人地址 - 遇到 mailx: 非法选项 - r 错误
- symmetricds - 主数据库是否需要位于运行 symmetricds 的同一主机中?
- nosql - 有没有办法在 FaunaDB + GraphQL 上设置字段级授权?