读书人

检测ios的用户是不是拒绝开启默认位置

发布时间: 2013-02-17 10:44:46 作者: rapoo

检测ios的用户是否拒绝开启默认位置的实现

原问题来自于CSDN问答频道,更多解决方案见:http://ask.csdn.net/questions/1295

原问题描述:

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

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

解决方案:

假设你使用LocationManager,那么在delegate中有个方法是

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error


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

enum {kCLErrorLocationUnknown  = 0,         // location is currently unknown, but CL will keep tryingkCLErrorDenied,                       // CL access has been denied (eg, user declined location use)kCLErrorNetwork,                      // general, network-related errorkCLErrorHeadingFailure,               // heading could not be determinedkCLErrorRegionMonitoringDenied,       // Location region monitoring has been denied by the userkCLErrorRegionMonitoringFailure,      // A registered region cannot be monitoredkCLErrorRegionMonitoringSetupDelayed, // CL could not immediately initialize region monitoringkCLErrorRegionMonitoringResponseDelayed, // While events for this fence will be delivered, delivery will not occur immediatelykCLErrorGeocodeFoundNoResult,         // A geocode request yielded no resultkCLErrorGeocodeFoundPartialResult,    // A geocode request yielded a partial resultkCLErrorGeocodeCanceled,              // A geocode request was cancelledkCLErrorDeferredFailed,               // Deferred mode failedkCLErrorDeferredNotUpdatingLocation,  // Deferred mode failed because location updates disabled or pausedkCLErrorDeferredAccuracyTooLow,       // Deferred mode not supported for the requested accuracykCLErrorDeferredDistanceFiltered,     // Deferred mode does not support distance filterskCLErrorDeferredCanceled,             // Deferred mode request canceled a previous request};typedef NSInteger CLError;

读书人网 >操作系统

热点推荐