我正在使用 CLLocationManager 来监视应用程序中的用户位置。下面列出了产生该问题的步骤:-
当我第一次调用 CLLocationmanager 的 requestwheninuseauthorization 方法时,它会显示位置访问权限警报,并且我不会选择允许或不允许按钮。
现在,如果手机因闲置一段时间或被电话中断而被锁定。
我解锁手机并查看已经在前台运行并带有位置访问权限对话框的应用程序,现在解锁手机后,我在应用程序的屏幕上找不到位置访问权限警报。尽管我既没有拒绝也不接受提供位置访问,但它就消失了。
这可能是什么原因以及我该如何解决这个问题,否则什么可能是解决方法,因为这似乎是 iOS 的问题。根据我的要求,用户必须在使用我的应用程序之前提供位置访问权限。
最佳答案
正如 Sandeep 所暗示的,我通过在 View Controller 的 viewDidLoad: 方法中使用以下代码添加了 UIApplicationDidBecomeActiveNotification 的观察者。
[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(didBecomeActive)
name:UIApplicationDidBecomeActiveNotification
object:nil];
现在我再次在 viewcontroller 的 didBecomeActive 方法中呈现位置授权对话框。
- (void)didBecomeActive {
// Here put your conditions to check that user hasn't already authorised or rejected the location access permissions.
[self.locationManager requestWhenInUseAuthorization];
}
因此,现在每当用户解锁设备时,由于上述实现,授权对话框始终存在。
关于ios - 手机锁定后位置访问权限警报消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37742998/