我正在使用 CLLocationManager 来监控我的应用中的用户位置。下面列出了产生问题的步骤:-
当我第一次调用 CLLocationmanager 的 requestwheninuseauthorization 方法时,它会显示位置访问权限警报,并且我没有选择允许或不允许按钮。
现在如果手机由于闲置一段时间或被电话打断而被锁定。
我解锁手机并查看我的应用程序,该应用程序已经在前台运行并带有位置访问权限对话框,现在解锁手机后,我在我的应用程序的屏幕上找不到位置访问权限警报。它只是消失了,尽管我既没有拒绝也没有接受提供位置访问。
这可能是什么原因以及我该如何解决这个问题,否则可能是一种解决方法,因为它似乎是 iOS 的问题。根据我的要求,用户必须在使用我的应用之前提供位置访问权限。
Best Answer-推荐答案 strong>
正如 Sandeep 所暗示的,我通过在 viewDidLoad: 方法的 viewcontroller 方法中使用以下代码添加了 UIApplicationDidBecomeActiveNotification 的观察者。
[NSNotificationCenter defaultCenter] addObserver:self
selectorselector(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/
|