开发者社区 问答 正文

检测用户是否拒绝使用默认位置

请问一下,检测ios的用户是否拒绝开启默认位置,能实现么?

我需要在实现检测结果,然后根据他们的选择显示不同的视图控制器。

展开
收起
爵霸 2016-03-26 08:20:56 2128 分享 版权
1 条回答
写回答
取消 提交回答
  • 假设你使用LocationManager,那么在delegate中有个方法是
    - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error

    你来检测这个error.code是什么,具体参见apple官方文档Core Location Constants ReferenceCLError部分

    enum {
    kCLErrorLocationUnknown  = 0,         // location is currently unknown, but CL will keep trying
    kCLErrorDenied,                       // CL access has been denied (eg, user declined location use)
    kCLErrorNetwork,                      // general, network-related error
    kCLErrorHeadingFailure,               // heading could not be determined
    kCLErrorRegionMonitoringDenied,       // Location region monitoring has been denied by the user
    kCLErrorRegionMonitoringFailure,      // A registered region cannot be monitored
    kCLErrorRegionMonitoringSetupDelayed, // CL could not immediately initialize region monitoring
    kCLErrorRegionMonitoringResponseDelayed, // While events for this fence will be delivered, delivery will not occur immediately
    kCLErrorGeocodeFoundNoResult,         // A geocode request yielded no result
    kCLErrorGeocodeFoundPartialResult,    // A geocode request yielded a partial result
    kCLErrorGeocodeCanceled,              // A geocode request was cancelled
    kCLErrorDeferredFailed,               // Deferred mode failed
    kCLErrorDeferredNotUpdatingLocation,  // Deferred mode failed because location updates disabled or paused
    kCLErrorDeferredAccuracyTooLow,       // Deferred mode not supported for the requested accuracy
    kCLErrorDeferredDistanceFiltered,     // Deferred mode does not support distance filters
    kCLErrorDeferredCanceled,             // Deferred mode request canceled a previous request
    
    
    };
     typedef NSInteger CLError;
    2019-07-17 19:15:03
    赞同 展开评论
问答分类:
问答地址: