首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >刷新iBeacon状态

刷新iBeacon状态
EN

Stack Overflow用户
提问于 2016-09-15 22:01:25
回答 1查看 56关注 0票数 0

我是iBeacon的新手,需要一些帮助。已经从其他主题中找到了一些有用的信息,但仍在搜索答案。

有没有办法在关闭应用程序或打开蓝牙后立即接收有关我的状态的通知?现在我只有在状态改变后才会收到通知。

例如:当我到达'A‘点时,我需要有通知。但我到了那里,意识到我的蓝牙关闭了。我打开了蓝牙,但什么也没收到,因为iBeacon从一开始就认为我在“里面”。当应用程序不是前台时就会发生这种情况(但不是100%的时候,有时iBeacon会“重新扫描”并再次发送他的状态)。

我需要以某种方式手动刷新iBeacon状态,并让didDetermineState或didRangeBeacons方法正常工作。我试图在app被杀后停止并开始监控,以强制通知,但似乎不起作用。我知道有一种方法可以在打开显示后获得这种“刷新”,但在其他需要的情况下也可以做到这一点。

EN

回答 1

Stack Overflow用户

发布于 2016-09-15 22:35:33

大量的位置和信标事件可以唤醒在后台运行的应用程序,但相对较少的事件被发送到通过任务切换器被杀死或自启动以来从未启动的应用程序。

唯一能够启动非运行应用程序的蓝牙事件是:

  • didEnterRegion (用于CLBeaconRegions)
  • didExitRegion (用于CLBeaconRegions)

其他仅由前台/后台运行的应用程序接收的事件:

  • didDetermineStateForRegion
  • CoreBluetooth device discovery
  • CoreBluetooth电源状态更改

最后一个是你关心的事件,但它不会被发送到没有运行的应用程序。一种替代方案可能是依赖于其他位置事件,如重大位置更改,当用户“显著”移动(例如移动到下一个信号塔)时,它会启动一个未运行的应用程序。您可以注册这些事件,并在那时检查蓝牙状态。这可能是你能做的最好的事情了。

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

https://stackoverflow.com/questions/39513096

复制
相关文章

相似问题

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