摘要:之前运行的应用程序无法运行geode代码和反向geode代码。反向geode代码失败,因为geode代码无法提供位置。然后,我使用了苹果自己的LocateMe示例代码,并在隐私下启用了位置服务。我还启用了定位服务下的"Allow Location Access“,但在运行苹果的LocateMe或我自己的应用程序后,这个设置本身就变成了空。
重现步骤:似乎位置服务SDK获取位置的步骤被破坏了。之前在iPhone 5上运行的软件在升级到iOS8后停止工作。步骤1.加载示例LocateMe苹果的示例核心位置示例项目;步骤2.在系统设置下启用定位服务,同时将应用程序的“允许定位服务”更改为始终。
Get-Location失败,"always“设置被删除。
预期结果:获取位置和位置更新。
实际结果:参见上文。
版本: IOS 8.0.0和8.0.2
备注:
配置: iPhone 5和iPhone 6 Plus
添加这个也无济于事: self.locationManager requestAlwaysAuthorization;
发布于 2014-09-29 23:24:57
使用
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) \
([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8")) {
CLLocationManager *manager = [[LocationManager sharedInstance] clLocationManager];
[manager requestWhenInUseAuthorization];
[manager startUpdatingLocation]; // or what ever location function you need.
} else {
// The usual way for iOS <= 7
// (Do what you did before)
}除了以上内容之外,您还必须为info.plist文件中的密钥NSLocationWhenInUseUsageDescription添加一个字符串值。该值是当iOS询问用户是否授予应用程序的位置访问权限时,在变量中显示的字符串。为了向后兼容,您可能还想添加密钥NSLocationUsageDescription。
https://stackoverflow.com/questions/26078408
复制相似问题