【发布时间】:2018-06-18 13:17:50
【问题描述】:
我将 AltBeacon 与 iBeacon 的自定义解析器一起使用。我有一个实现BootstrapNotifier 并在初始化期间设置自定义解析器的服务:
const val IBEACON_LAYOUT = "m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"
val parser = BeaconParser().setBeaconLayout(IBEACON_LAYOUT)
BeaconManager.getInstanceForApplication(this).apply {
beaconParsers.clear()
beaconParsers.add(parser)
}
regionBootstrap = RegionBootstrap(this, monitoredRegions)
我这样添加一个要监控的区域:
fun addRegion(uuid: ByteArray, name: String) {
val region = Region(name, Identifier.fromBytes(uuid, 0, 16, false), null, null)
regionBootstrap?.addRegion(region)
Timber.d("Monitoring region $name")
}
我有 didEnterRegion 和 didExitRegion 的覆盖,如果应用程序位于前台或后台,一切正常。如果我通过从 Android 中的“正在运行的应用程序”屏幕向右滑动退出应用程序,则应用程序将重新启动并且信标检测继续 - 但仅适用于默认的 AltBeacon 类型,而不适用于 iBeacons。似乎自定义信标设置正在丢失,可能是因为该设置未同步到 AltBeacon 服务。我尝试在调用addRegion 时添加 iBeacon 解析器,但没有成功。唯一对我有用的是修改 AltBeacon 的本地副本,使其默认为 iBeacon。
应用重启后,任何人使用自定义解析器成功了吗?
【问题讨论】: