ios CoreLocation獲取定位信息

第1步:準(zhǔn)備操作

  • 導(dǎo)入CoreLocation.h框架頭文件
  • 遵守CLLocationManagerDelegate協(xié)議
  • 定義一個(gè)成員屬性保存定位管理者對(duì)象
#import <CoreLocation/CoreLocation.h>

@interface ViewController ()<CLLocationManagerDelegate>

/** 定位管理者對(duì)象屬性 */
@property (nonatomic, strong) CLLocationManager * manger;

@end

第2步:懶加載創(chuàng)建定位管理者對(duì)象并設(shè)置相關(guān)屬性

-(CLLocationManager *)manger
{
    if (_manger == nil)
    {
        //創(chuàng)建位置管理者對(duì)象
        _manger = [[CLLocationManager alloc] init];
        
        //設(shè)置位置管理者對(duì)象的代理
        _manger.delegate = self;
        
        //設(shè)置定位精度(精度越高越耗電肖油,定位時(shí)間越長(zhǎng))
        _manger.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;
        
        //設(shè)置定位間隔(每移動(dòng)多遠(yuǎn)獲取一次定位信息)
        // _manger.distanceFilter = 10;
        
        //設(shè)置定位授權(quán)
        //[_manger requestAlwaysAuthorization];             //永久獲取定位的權(quán)限
        [_manger requestWhenInUseAuthorization];            //使用時(shí)獲取定位的權(quán)限
        
        
    }
    return _manger;
}

注意:
1、在設(shè)置定位授權(quán)的時(shí)候?qū)崿F(xiàn)了方法也無(wú)法獲取權(quán)限,還需要在Info.plist里面添加下面內(nèi)容(永久定位權(quán)限:NSLocationAlwaysUsageDescription App運(yùn)行時(shí)時(shí)定位權(quán)限:NSLocationWhenInUseUsageDescription)

Snip20160712_2.png

2腥光、如果ios9之后汉匙,獲取到的是app運(yùn)行期間定位權(quán)限澳泵,那么當(dāng)app在后臺(tái)時(shí)也可以獲取位置信息赂鲤,需要進(jìn)行如下設(shè)置:
Snip20160712_3.png

然后在[_manger requestWhenInUseAuthorization]這個(gè)方法后面添加如下代碼(如果添加下面代碼苦掘,必須按上面步驟開(kāi)啟可以后臺(tái)獲取位置信息八拱,否則程序會(huì)崩):

if ([[UIDevice currentDevice].systemVersion floatValue] >= 9.0)
{
     _manger.allowsBackgroundLocationUpdates = YES;
}

第3步:調(diào)用方法開(kāi)始定位

//開(kāi)始定位
[self.manger startUpdatingLocation];

//停止定位
//[self.manger stopUpdatingLocation];

第4步:實(shí)現(xiàn)CLLocationManager代理方法

  • 1阵赠、獲取到位置信息時(shí)調(diào)用這個(gè)方法
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations
{
    NSLog(@"獲取到定位信息!");
}
  • 2肌稻、當(dāng)定位權(quán)限的授權(quán)狀態(tài)發(fā)生改變時(shí)調(diào)用該方法
//當(dāng)定位權(quán)限的授權(quán)狀態(tài)發(fā)生改變時(shí)調(diào)用該方法
-(void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
{
    switch (status)
    {
        //1清蚀、尚未確定是否授權(quán)
        case kCLAuthorizationStatusNotDetermined:
            
            NSLog(@"用戶(hù)尚未確定是否授權(quán)!");
            
            break;
            
        //2爹谭、訪(fǎng)問(wèn)權(quán)限受限
        case kCLAuthorizationStatusRestricted:
            
            NSLog(@"獲取定位權(quán)限授權(quán)狀態(tài)受限枷邪!");
            
            break;
            
        //3、獲取定位權(quán)限被拒絕
        case kCLAuthorizationStatusDenied:
            
            // 定位服務(wù)是否可用(用戶(hù)是否開(kāi)啟了手機(jī)上的定位開(kāi)關(guān))
            if([CLLocationManager locationServicesEnabled])
            {
                NSLog(@"手機(jī)定位功能開(kāi)啟诺凡,但被拒絕");
            }
            
            else
            {
                NSLog(@"手機(jī)定位功能關(guān)閉东揣,不可用");
            }
            
            break;
            
        //4药薯、獲取前臺(tái)定位權(quán)限
        case kCLAuthorizationStatusAuthorizedWhenInUse:
            
            NSLog(@"獲取了前臺(tái)定位權(quán)限!");
            
            break;
            
        //5救斑、獲取后臺(tái)定位權(quán)限
        case kCLAuthorizationStatusAuthorizedAlways:
            
            NSLog(@"獲取了后臺(tái)定位權(quán)限童本!");
            
            break;
       
    }
}

注意: 如果用戶(hù)手機(jī)根本沒(méi)有打開(kāi)定位服務(wù),那么在獲取定位權(quán)限狀態(tài)的時(shí)候是kCLAuthorizationStatusDenied(拒絕)脸候,不是kCLAuthorizationStatusRestricted(訪(fǎng)問(wèn)受限)穷娱。所以要在拒絕狀態(tài)再判斷一下到底是用戶(hù)手機(jī)沒(méi)有打開(kāi)定位服務(wù)還是真的被拒絕了

  • 3、獲取位置信息失敗時(shí)調(diào)用這個(gè)方法
-(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
    NSLog(@"獲取位置信息失斣寺佟泵额!");
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市携添,隨后出現(xiàn)的幾起案子嫁盲,更是在濱河造成了極大的恐慌,老刑警劉巖烈掠,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件羞秤,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡左敌,警方通過(guò)查閱死者的電腦和手機(jī)瘾蛋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)矫限,“玉大人哺哼,你說(shuō)我怎么就攤上這事〉鸱纾” “怎么了取董?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)无宿。 經(jīng)常有香客問(wèn)我茵汰,道長(zhǎng),這世上最難降的妖魔是什么懈贺? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任经窖,我火速辦了婚禮坡垫,結(jié)果婚禮上梭灿,老公的妹妹穿的比我還像新娘。我一直安慰自己冰悠,他們只是感情好堡妒,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著溉卓,像睡著了一般皮迟。 火紅的嫁衣襯著肌膚如雪搬泥。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,730評(píng)論 1 289
  • 那天伏尼,我揣著相機(jī)與錄音忿檩,去河邊找鬼。 笑死爆阶,一個(gè)胖子當(dāng)著我的面吹牛燥透,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播辨图,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼班套,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了故河?” 一聲冷哼從身側(cè)響起吱韭,我...
    開(kāi)封第一講書(shū)人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鱼的,沒(méi)想到半個(gè)月后理盆,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡凑阶,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年熏挎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晌砾。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡坎拐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出养匈,到底是詐尸還是另有隱情哼勇,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布呕乎,位于F島的核電站积担,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏猬仁。R本人自食惡果不足惜帝璧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望湿刽。 院中可真熱鬧的烁,春花似錦、人聲如沸诈闺。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至襟雷,卻和暖如春刃滓,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背耸弄。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工咧虎, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人计呈。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓老客,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親震叮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子胧砰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,729評(píng)論 25 707
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)苇瓣,斷路器尉间,智...
    卡卡羅2017閱讀 134,626評(píng)論 18 139
  • 因?yàn)橐Y(jié)局swift3.0中引用snapKit的問(wèn)題,看到一篇介紹Xcode8,swift3變化的文章,覺(jué)得很詳細(xì)...
    uniapp閱讀 4,403評(píng)論 0 12
  • error: unsatisfiable vapor中主線(xiàn)程是不允許使用的,當(dāng)在vapor中使用Alamofire...
    AgoniNemo閱讀 466評(píng)論 0 0
  • 我想和你每天都見(jiàn)面眠副。 我想和你三餐一起吃。 我想和你手牽手散步竣稽。 我想和邇一起傻傻笑囱怕。 我想和你一起擠公交。 我想...
    顧?quán)?/span>閱讀 392評(píng)論 4 10