首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓pre-8应用重启后AltBeacon未检测到iBeacon

安卓pre-8应用重启后AltBeacon未检测到iBeacon
EN

Stack Overflow用户
提问于 2018-06-18 21:17:51
回答 1查看 162关注 0票数 1

我正在使用带有iBeacons的自定义解析器的AltBeacon。我有一个实现BootstrapNotifier并在初始化期间设置自定义解析器的服务:

代码语言:javascript
复制
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)

我添加了一个监控区域,如下所示:

代码语言:javascript
复制
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")
}

我有didEnterRegiondidExitRegion的覆盖,如果应用程序在前台或后台,一切都可以正常工作。如果我从安卓系统的“运行中的应用程序”屏幕上滑动退出应用程序,那么应用程序就会重新启动,信标检测也会继续--但只针对默认的AltBeacon类型,而不是iBeacons。自定义信标设置似乎正在丢失,可能是因为该设置未同步到AltBeacon服务。我尝试在调用addRegion时添加iBeacon解析器,但没有成功。对我来说唯一有效的方法是修改AltBeacon的本地副本,使其缺省为iBeacon。

有没有人在应用重启后成功地使用了自定义解析器?

EN

回答 1

Stack Overflow用户

发布于 2018-06-18 21:41:42

问题很可能是在杀死应用程序后启动service.never,因此,当库唤醒使用JobScheduler进行扫描时,BeaconParser永远不会被设置。

简单的解决方案是在自定义应用程序类的onCreate方法中设置BeaconParser。这总是在应用程序启动时执行,即使启动只是基于JobScheduler进行扫描。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50910448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档