gpt4 book ai didi

iOS 区域监控,设备重启后位置不会发生重大变化

转载 作者:行者123 更新时间:2023-11-30 12:16:27 25 4
gpt4 key购买 nike

我正在尝试实现它需要检测设备是否位于目标区域(地理围栏)内部的功能。如果它在区域内,则无论在前台还是后台,都应该执行某些任务。

我能够弄清楚大部分部分并实现。

然而,挑战是用户在该区域内重新启动设备并且没有进行任何重大位置更改的情况。

在这种情况下,iOS 似乎无法检测它是内部还是外部。因此,我的应用程序不执行任何操作,而是执行任务。

那么,iOS 有没有办法在重新启动后自动检测是否在地理围栏内,而无需进行重大位置更改?

最佳答案

首先,您需要在要咨询的区域上调用 requestState(for:) ,请注意,这将进行异步咨询,然后回复将被 locationManager(_:didDetermineState: for:) ( locationManager(_:didEnterRegion:)locationManager(_:didExitRegion:)) 因此,如果您正在咨询一系列区域,请采用该方法考虑在内。

var locationManager = CLLocationManager()
// Do all proper setting for locationManager
...
// Here you make the asynchronous request for the state of a region
locationManager.requestState(for: CLRegion()) // Your region

func locationManager(_ manager: CLLocationManager, didDetermineState state: CLRegionState, forRegion region: CLRegion) {
switch state {
case .inside:
// It's inside the region
case .outside:
// It's outside
default:
// It's unknown
}
}

总之,requestState(for:) 相当于在不移动设备的情况下强制进行重大更改,因此所有其他委托(delegate)也将被调用,但您感兴趣的是 locationManager (_:didDetermineState:for:)

来源:https://developer.apple.com/documentation/corelocation/cllocationmanager/1423804-requeststate

关于iOS 区域监控,设备重启后位置不会发生重大变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45382603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com