【问题标题】:Core Location Manager does not ask for authorization [closed]核心位置管理器不要求授权[关闭]
【发布时间】:2016-06-30 03:09:21
【问题描述】:

在一个简单的项目中,我实例化了一个 Core Location Manager:

- (void)viewDidLoad {
[super viewDidLoad];
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.desiredAccuracy =
kCLDistanceFilterNone;
self.locationManager.delegate = self;
if([CLLocationManager locationServicesEnabled]) {
    // Location Services Are Enabled
    switch([CLLocationManager authorizationStatus]) {
        case kCLAuthorizationStatusNotDetermined:
            NSLog(@"1");
            [self.locationManager requestWhenInUseAuthorization];
            NSLog(@"requested auth");
            break;
        case kCLAuthorizationStatusRestricted:
            NSLog(@"2");
            break;
        case kCLAuthorizationStatusDenied:
            NSLog(@"3");
            break;
        case kCLAuthorizationStatusAuthorized:
            NSLog(@"4");
            break;
    }
} else {
    // Location Services Disabled
}
[self.locationManager startUpdatingLocation];

}

我在 info.plist 中也有相应的键:

基于此代码的日志输出是:

[233:5927] 1
[233:5927] requested auth

但我没有收到授权请求...

没有错误,也没有位置更新(如果我实现了委托回调)

【问题讨论】:

  • 好的,所以第一个返回YES,第二个返回NO。如何更改第二个?
  • 抱歉,您必须更具体一些。我这样检索它:[CLLocationManager authorizationStatus]
  • 因此,状态为 kCLAuthorizationStatusNotDetermined。如何强制用户确定它?我多次尝试卸载并重新安装该应用程序...
  • edit您的帖子包含您对问题的任何其他信息。避免在 cmets 中添加它,因为它们更难阅读并且更容易删除。帖子的编辑按钮就在帖子标签的下方。
  • 只是一个小插曲:您的locationManager 同时被释放了吗?属性是如何定义的?

标签: ios objective-c ios9 core-location


【解决方案1】:

愚蠢的错误,在错误的 plist 文件中添加了密钥(测试文件而不是应用程序文件)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多