iOS位置服務權限相關

整個iOS系統(tǒng)的定位服務是否開啟

#import <CoreLocation/CoreLocation.h>

[CLLocationManager locationServicesEnabled];

當前應用定位服務授權

  • iOS8以前
@interface RootViewController () <CLLocationManagerDelegate>

@property (nonatomic,strong) CLLocationManager * manager;

@end
_manager = [[CLLocationManager alloc] init];
_manager.delegate = self;
[_manager startUpdatingLocation];
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{

    NSString *errorString;
    NSLog(@"定位失敗原因: %@",[error localizedDescription]);
    switch([error code]) {
        case kCLErrorLocationUnknown:
            // do something...
            break;
        case kCLErrorDenied:
            // do something...
            break;
        
         ......

    }
}

定位的錯誤信息

typedef NS_ENUM(NSInteger, CLError) {
    // 目前位置是未知的,但CL將繼續(xù)努力
    kCLErrorLocationUnknown  = 0,         // location is currently unknown, but CL will keep trying
    // 獲取用戶位置或范圍被拒絕
    kCLErrorDenied,                       // Access to location or ranging has been denied by the user
    // 一般情況下,網(wǎng)絡相關的錯誤
    kCLErrorNetwork,                      // general, network-related error
    // 標題不能確定
    kCLErrorHeadingFailure,               // heading could not be determined
    // 位置區(qū)域監(jiān)測被用戶拒絕
    kCLErrorRegionMonitoringDenied,       // Location region monitoring has been denied by the user
    // 注冊區(qū)域不能監(jiān)控
    kCLErrorRegionMonitoringFailure,      // A registered region cannot be monitored
    // CL不能立即初始化區(qū)域監(jiān)控
    kCLErrorRegionMonitoringSetupDelayed, // CL could not immediately initialize region monitoring
    // 如果這個防護事件被提交,提交將不會出現(xiàn)
    kCLErrorRegionMonitoringResponseDelayed, // While events for this fence will be delivered, delivery will not occur immediately
    // 地理編碼沒有結果
    kCLErrorGeocodeFoundNoResult,         // A geocode request yielded no result
    // 地理編碼產(chǎn)生一部分結果
    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
    // 測距桿不能執(zhí)行
    kCLErrorRangingUnavailable,           // Ranging cannot be performed
    // 測距失敗
    kCLErrorRangingFailure,               // General ranging failure
};
  • iOS8以后
    iOS8以后位置服務權限需要應用主動向系統(tǒng)注冊授權

1杜耙,在Info.plist添加配置 (可根據(jù)情況任選其一,也可以兩者都添加)



2蚌卤,向系統(tǒng)注冊權限(可根據(jù)情況任選其一,也可以兩者都添加奥秆,與Info.plist中添加的配置對應)

[_manager requestWhenInUseAuthorization];
[_manager requestAlwaysAuthorization];

3逊彭,當應用啟動時,系統(tǒng)會根據(jù)應用的注冊授權彈出提示框請求用戶授權
(彈框的描述信息與Info.plist中配置的描述信息是一直的)


4构订,當我們點擊允許的時候侮叮,定位服務開始生效。
此時持續(xù)調用代理函數(shù)

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations{
    NSLog(@"定位中....");
}

當點擊不允許的使用悼瘾,分別調用代理函數(shù)

- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status{
    NSLog(@"授權狀態(tài)改變");
}
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{
    NSString *errorString;
    NSLog(@"定位失敗原因: %@",[error localizedDescription]);
}

5囊榜,我們再來看看手機設置中的界面


版權聲明:出自MajorLMJ技術博客的原創(chuàng)作品 ,轉載時必須注明出處及相應鏈接亥宿!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末卸勺,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子烫扼,更是在濱河造成了極大的恐慌曙求,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異圆到,居然都是意外死亡怎抛,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門芽淡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人豆赏,你說我怎么就攤上這事挣菲。” “怎么了掷邦?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵白胀,是天一觀的道長。 經(jīng)常有香客問我抚岗,道長或杠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任宣蔚,我火速辦了婚禮向抢,結果婚禮上,老公的妹妹穿的比我還像新娘胚委。我一直安慰自己挟鸠,他們只是感情好,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布亩冬。 她就那樣靜靜地躺著艘希,像睡著了一般。 火紅的嫁衣襯著肌膚如雪硅急。 梳的紋絲不亂的頭發(fā)上覆享,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天,我揣著相機與錄音营袜,去河邊找鬼撒顿。 笑死,一個胖子當著我的面吹牛连茧,可吹牛的內容都是我干的核蘸。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼啸驯,長吁一口氣:“原來是場噩夢啊……” “哼客扎!你這毒婦竟也來了?” 一聲冷哼從身側響起罚斗,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤徙鱼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體袱吆,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡厌衙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了绞绒。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片婶希。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蓬衡,靈堂內的尸體忽然破棺而出喻杈,到底是詐尸還是另有隱情,我是刑警寧澤狰晚,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布筒饰,位于F島的核電站,受9級特大地震影響壁晒,放射性物質發(fā)生泄漏瓷们。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一秒咐、第九天 我趴在偏房一處隱蔽的房頂上張望谬晕。 院中可真熱鬧,春花似錦反镇、人聲如沸固蚤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽夕玩。三九已至,卻和暖如春惊豺,著一層夾襖步出監(jiān)牢的瞬間燎孟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工尸昧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留揩页,地道東北人。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓烹俗,卻偏偏與公主長得像爆侣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子幢妄,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理兔仰,服務發(fā)現(xiàn),斷路器蕉鸳,智...
    卡卡羅2017閱讀 134,629評論 18 139
  • 簡介 在移動互聯(lián)網(wǎng)時代乎赴,移動app能解決用戶的很多生活瑣事忍法,比如 周邊:找餐館、找KTV榕吼、找電影院等等 導航:根據(jù)...
    JonesCxy閱讀 1,188評論 1 1
  • 發(fā)生在身上的許許多多的美好的事情怎樣才能堅持下來呢饿序,比如說發(fā)自心底的想寫作,突發(fā)奇想的想畫畫羹蚣,為了身體健康而想鍛煉...
    Dflower閱讀 297評論 0 2
  • 今天是二零一六年的十二月一日 是今年的最后一個月 是今年的最后一個月的第一天 有那么一瞬間我有很多感慨 又有那么一...
    Shmilyu閱讀 295評論 0 0
  • 一 清晨原探,我從夢魘中驚醒。 母親輕拉開窗簾度宦,陽光照進來踢匣,散落在我身上,很柔軟戈抄,很溫暖。 我小心地擦拭著白色行李箱上...
    清楓浦閱讀 268評論 0 1