我的地区是:
Region region = new Region("backgroundRegion", Identifier.parse("24DDF411-8CF1-440C87CD-E368DAF9C93E"), null, null);
当我启动程序时,我收到此消息:
06-26 18:03:21.061 7394-7394/? D/BeaconReferenceApp: setting up background monitoring for beacons and power saving
但它没有输入任何didEnterRegion
函数
所以,我删除了这一行:backgroundPowerSaver = new BackgroundPowerSaver(this);
并改变扫描时间,如下所示:
beaconManager.setBackgroundScanPeriod(1100l);
beaconManager.setBackgroundBetweenScanPeriod(10000l-1100l);
我检查了我的Beacon UUID,他们是24DDF411-8CF1-440C87CD-E368DAF9C93E
那有什么不对?为什么应用没有转到didEnterRegion
功能?
我已经开始使用AltBeacons以外的其他工作......(测距功能正常!)
我的最终目标是获取发现信标的当前时间......
答案 0 :(得分:0)
一些可能性:
如果您已经已经在信标区域,您将无法获得第二次回调,直到信标消失(将其关闭30秒左右,然后将其关闭在应用程序运行时运行。)或者,您可以查找在应用程序启动时始终调用的调用didDetermineStateForRegion
,并带有一个标志,告诉您是在内部还是外部。
确保您已向位置授予运行时权限。
确保在设置中为手机启用了位置。
确保信标使用定位应用https://play.google.com/store/apps/details?id=com.radiusnetworks.locate&hl=en
确保配置了正确的BeaconParser。问题标记为Eddystone,但显示iBeacon或AltBeacon样式的UUID作为第一个标识符。您是否配置了自定义信标解析器?你试图检测什么样的信标类型?