我需要获取位置服务以根据位置向设备发送推送。我正在使用段来设置位置和时间,但我在日志中看到的是:
[UALocationService reportCurrentLocation] [Line 358] Location service not authorized or not enabled.
我的应用程序的info.plist中有NSLocationAlwaysUsageDescription
和NSLocationWhenInUseUsageDescription
个键。
我无法找到导致位置未启用的问题。任何帮助将不胜感激。谢谢。
代码:
self.locationManager = [[CLLocationManager alloc] init];
if ([self.locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) {
[self.locationManager requestWhenInUseAuthorization];
}
[self.locationManager startUpdatingLocation];
[UALocationService locationServicesEnabled];
[UALocationService locationServiceAuthorized];
[UALocationService airshipLocationServiceEnabled];
UALocationService *locationService = [UAirship shared].locationService;
[locationService reportCurrentLocation];
[locationService startReportingSignificantLocationChanges];
答案 0 :(得分:1)
搜索之后,我发现我们不需要自己添加CLLocationManager。
而是利用功能
coreLocationWillPromptUserForPermissionToRun
喜欢这样:
[UALocationService coreLocationWillPromptUserForPermissionToRun];
以下是我们需要调用以启用服务的函数:
[UALocationService airshipLocationServiceEnabled];
[UALocationService setAirshipLocationServiceEnabled:YES];
[UALocationService locationServicesEnabled];
[UALocationService locationServiceAuthorized];
[UALocationService coreLocationWillPromptUserForPermissionToRun];