技术解析

iOS 系统中使用地理围栏(geofence)来实现基于位置的提醒,是否需要定位“始终”允许权限?
0
2021-06-01 13:29:47
idczone
我使用滴答清单的位置提醒功能,定位权限给了“使用 App 期间”,但是总是提示我给“始终”允许权限,实现这个功能必须要始终定位权限么?对电量消耗影国外服务器响有多大?
必须给,电量消耗大
不给这个权限他没法后台运行的。

话说,地理围栏难道不是避免有限地需要位置的应用后台运行消耗电量的吗?
(不是所有应用都是逐向导航)

应该是不用的。地理围栏 App 可以通过注册一个地点给系统,系统通知 App,并不需要 App 自己来处理地理围栏。
看这里: https://juejin.cn/post/6844903449604292616iOS 耗电量快就是这些 App 的骚操作导致的。

到目前 iOS14,App 常驻后台的方式仅剩后台音频播放和始终获取地理位置两种途径,其他的都有限制。

是的,必须给,不给拿不到具体的定位信息,被这个坑过,后来改成提示用户开启始终允许了

不需要。
差别是如果你给了始终, 那么你退到桌面后,顶部不会有一个蓝条提醒你有 APP 在后台使用你的位置。注册了后台位置更新的 APP,只要有定位权限,都可以在位置发送改变时收到回调或者唤醒一定时间处理自己的逻辑。

明确的答案,不需要。只要符合相关的条件,比如已授权,硬件自身支持,开启后台刷新,开启系统定位等等,系统会唤醒你的 App 。
你想想,如果需要始终的话,那么注册地理围栏的意义是什么?自己监听就好了。

不需要
楼上那些说得头头是道什么不给没法激活地理围栏云云的, 要么蠢要么坏.
要了始终允许, 能搞的事情多了去了.

更正下,是我傻逼了,不是必须给始终定位,是必须给精确定位。

不过如果系统是 13.0 以下的,不开启始终定位,地理围栏不给位置信息,不信可以试下。

就滴答清单位置提醒而言,不给始终权限的话,该功能用不了。

但是不给始终允许权限,相关功能确实无法正常工作,不知道是程序员有意为之还是技术实现不了

不给始终允许权限,功能无法工作

滴答没用地理围栏吧,亲测滴答的提醒要比系统的快捷指令自动化稳

不清楚有没有用地理围栏,但是信息提示确实挺及时的

the user's choice grants When In Use authorization to your app, your app can start any location service and is eligible to receive the results while it's in use.
https://developer.apple.com/documentation/corelocation/monitoring_the_user_s_proximity_to_geographic_regions
In iOS, regions are monitored by the system, which wakes up your app as needed when the user crosses a defined region boundary.
简单来说, 他如果有“到 X 位置提醒”之类的功能但是没有用系统的地理围栏功能 (不管是故意的还是不会), 那么他就必须要求“总是允许”定位. 同时他能在获得授权后在后台持续保活并干某些事情.

给相关开发者补充一下: iOS 的 region boundary 需要启用 “background modes” 里面的 “location updates”
https://developer.apple.com/documentation/corelocation/getting_the_user_s_location/handling_location_events_in_the_background

地址围栏一点都不准, 我设置当我离开公司告诉家人我下班了, 等我到家了都没触发.

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服