gpt4 book ai didi

iphone - iPhone 上的位置数据

转载 作者:行者123 更新时间:2023-11-29 04:24:18 25 4
gpt4 key购买 nike

我正在尝试在我的应用中获取 iPhone 的位置数据,但由于某种原因,我一直在 switch block 中点击 kclAuthorizationStatusNotDetermined

我知道模拟器上启用了位置服务,并且我的 CLLocationManager 在我的头文件中声明,所以我知道它存在。

我的代码如下:

if ([CLLocationManager locationServicesEnabled])
{
//check if this app is allowed to access geolocation
switch ([CLLocationManager authorizationStatus])
{
case kCLAuthorizationStatusNotDetermined:
// do something
NSLog(@"Status not determined");
break;

case kCLAuthorizationStatusDenied:
//do something
NSLog(@"Status denied");
break;

case kCLAuthorizationStatusRestricted:
//do something
NSLog(@"Status restricted");
break;

case kCLAuthorizationStatusAuthorized:
[manager startUpdatingLocation];
CLLocation *currentCoords = [manager location];
NSString *location = [currentCoords description];
UIAlertView *gps = [[UIAlertView alloc]
initWithTitle:@"Current Location" message:location delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
[gps show];
//getHails or getDetails();
break;
}
}

我错过了什么吗?感谢您提前的帮助

最佳答案

Apple's Doc , kCLAuthorizationStatusNotDetermined意思是“用户尚未选择该应用程序是否可以使用定位服务。”我见过其他消息来源,声称当位置服务存在另一个障碍时,例如为应用程序启用了位置服务但未在设备上打开位置服务时,就会发生这种情况。

如果位置服务已关闭或尚未为应用程序启用,iOS 通常会提示用户。此外,如果用户之前拒绝了应用程序的位置服务,但您无论如何都以编程方式启动位置服务,我认为系统会提示用户打开它们。您是否看到了这种行为或其他不同的行为?

需要澄清的是,当您说位置服务已打开时,您检查了位置服务是否已在全局范围内打开,并且是否已针对您的特定应用程序启用,对吗?

在模拟器中运行应用程序时,在重新安装之前从模拟器中完全删除该应用程序可能会有所帮助,这样设置包就会被删除。这应该会重新初始化您的应用的位置服务的应用级授权的所有已保存状态。

编辑:

如果您没有看到弹出窗口提示您启用位置服务,那么听起来您确实没有调用 [<your location manager instance> startUpdatingLocation] .您确定有人会调用它吗?

关于iphone - iPhone 上的位置数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12572252/

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