无法在Urban Airship中获得位置启用YES

时间:2015-07-28 10:17:39

标签: ios urbanairship.com

我需要获取位置服务以根据位置向设备发送推送。我正在使用段来设置位置和时间,但我在日志中看到的是:

[UALocationService reportCurrentLocation] [Line 358] Location service not authorized or not enabled.

我的应用程序的info.plist中有NSLocationAlwaysUsageDescriptionNSLocationWhenInUseUsageDescription个键。

我无法找到导致位置未启用的问题。任何帮助将不胜感激。谢谢。

代码:

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];

1 个答案:

答案 0 :(得分:1)

搜索之后,我发现我们不需要自己添加CLLocationManager。

  

而是利用功能   coreLocationWillPromptUserForPermissionToRun喜欢这样:

[UALocationService coreLocationWillPromptUserForPermissionToRun];

以下是我们需要调用以启用服务的函数:

   [UALocationService airshipLocationServiceEnabled];
   [UALocationService setAirshipLocationServiceEnabled:YES];
   [UALocationService locationServicesEnabled];
   [UALocationService locationServiceAuthorized];
   [UALocationService coreLocationWillPromptUserForPermissionToRun];