ios開發(fā) 獲取設(shè)備GPS信息

1、在Info.plist文件中添加如下配置:

(1)NSLocationAlwaysUsageDescription (value 就是你要顯示的提示用戶獲取gps)

(2)NSLocationWhenInUseUsageDescription?(value 就是你要顯示的提示用戶獲取gps)

2.引入CoreLocation.framework

#import < CoreLocation/CoreLocation.h >

讓APPcontroller 繼承接口 CLLocationManagerDelegate?

AppController :NSObject <?UIAccelerometerDelegate,UIAlertViewDelegate,UITextFieldDelegate,UIApplicationDelegate,WXApiDelegate,CLLocationManagerDelegate >


3.添加全局變量?

@property(nonatomic,strong)CLLocationManager*locationManager;

4.在didFinishLaunchingWithOptions方法中調(diào)用initGPS, 然后就可以在回調(diào)中獲取到信息了(獲取失敗則會(huì)調(diào)用失敗回調(diào));

值得注意的是 在iOS8 以后必須加上:

[locationmanager requestWhenInUseAuthorization];(在使用時(shí)獲取gps)

或者[locationmanager requestAlwaysAuthorization];(無論是否在使用都獲取gps)

- (void) initGps{

locationmanager= [[CLLocationManageralloc]init];

//設(shè)置精度

/*

kCLLocationAccuracyBest

kCLLocationAccuracyNearestTenMeters

kCLLocationAccuracyHundredMeters

kCLLocationAccuracyHundredMeters

kCLLocationAccuracyKilometer

kCLLocationAccuracyThreeKilometers

*/

//設(shè)置定位的精度

[locationmanager setDesiredAccuracy:kCLLocationAccuracyBest];

//實(shí)現(xiàn)協(xié)議

locationmanager.delegate=self;

[locationmanager requestWhenInUseAuthorization];

NSLog(@"開始定位");

//開始定位

[locationmanager startUpdatingLocation];

}

//獲取定位成功回調(diào)

- (void)locationManager:(CLLocationManager*)manager

didUpdateToLocation:(CLLocation*)newLocation

fromLocation:(CLLocation*)oldLocation

{

NSLog(@"hello");

//打印出精度和緯度

CLLocationCoordinate2Dcoordinate = newLocation.coordinate;

NSLog(@"輸出當(dāng)前的精度和緯度");

NSLog(@"精度:%f 緯度:%f",coordinate.latitude,coordinate.longitude);

//停止定位

//[locationmanager stopUpdatingLocation];

//計(jì)算兩個(gè)位置的距離

floatdistance = [newLocationdistanceFromLocation:oldLocation];

NSLog(@" 距離 %f",distance);

}

//獲取gps失敗回調(diào)

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

{

NSLog(@"獲取GPS失敗!");

if([errorcode] ==kCLErrorDenied)

{

//訪問被拒絕

}

if([errorcode] ==kCLErrorLocationUnknown) {

//無法獲取位置信息

}

}

//停止獲取GPS

- (void)stopUpdateGPS

{

[locationmanagerstopUpdatingLocation];

}

有時(shí)候上面的都設(shè)置好了,但是還沒有回調(diào),有可能是因?yàn)椴皇窃谥骶€程里調(diào)用的,不能在靜態(tài)方法里直接調(diào)用,因?yàn)橛锌赡苡珠_了一個(gè)線程來調(diào)用這個(gè)方法,那這樣主線程就收不到回調(diào)了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 出自http://my.oschina.net/are1OfBlog/blog/420034 摘要 現(xiàn)在很多社交、...
    JJO閱讀 4,320評(píng)論 4 19
  • http://www.cnblogs.com/kenshincui/p/4125570.html 摘要: 現(xiàn)在很多...
    大崔老師閱讀 3,469評(píng)論 1 2
  • 簡(jiǎn)介 在移動(dòng)互聯(lián)網(wǎng)時(shí)代,移動(dòng)app能解決用戶的很多生活瑣事,比如 周邊:找餐館、找KTV、找電影院等等 導(dǎo)航:根據(jù)...
    JonesCxy閱讀 1,536評(píng)論 1 1
  • iOS 自帶定位服務(wù)(原創(chuàng)) ps:本文粘貼自別處,只為學(xué)習(xí)記錄~ 定位服務(wù) iOS 7 提供了4種不同的途徑進(jìn)行...
    西門淋雨閱讀 6,103評(píng)論 0 3
  • 卷土重來 把我裹進(jìn)你身體 旋轉(zhuǎn),升騰 你無處不在 給我留下處處美麗 你是三十九度的風(fēng) 即刻飛去 抽走我的心 剝離我...
    森旺閱讀 211評(píng)論 0 1

友情鏈接更多精彩內(nèi)容