ios - 手机锁定后位置访问权限警报消失

标签 ios iphone core-location

我正在使用 CLLocationManager 来监视应用程序中的用户位置。下面列出了产​​生该问题的步骤:-

  1. 当我第一次调用 CLLocationmanager 的 requestwheninuseauthorization 方法时,它会显示位置访问权限警报,并且我不会选择允许或不允许按钮。

  2. 现在,如果手机因闲置一段时间或被电话中断而被锁定。

  3. 我解锁手机并查看已经在前台运行并带有位置访问权限对话框的应用程序,现在解锁手机后,我在应用程序的屏幕上找不到位置访问权限警报。尽管我既没有拒绝也不接受提供位置访问,但它就消失了。

这可能是什么原因以及我该如何解决这个问题,否则什么可能是解决方法,因为这似乎是 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/

相关文章:

ios - Xcode 项目中的两个 info.plist 文件如何工作?

iphone - 如何根据 iPhone 中的文本大小动态增加按钮宽度?

iphone - 是否可以反转 UIModalTransitionStyleCoverVertical?

ios - 允许用户从下拉列表或 map 中选择位置?

ios - 核心位置检测到的最低速度

ios - 如何获取用户所在楼层?

objective-c - 基于包含字典的 NSArray 创建新数组

ios - 编程的 UISlider 值未更改

iphone - iCloud 和 GEOResourceManifestServerRemoteProxy : Lost connection to geod warning

iphone - iPhone 内存管理的最佳解释在哪里?