1. 在 App 的 Info.plist 檔案的 Required device capabilities 項目底下加入 location-services 及 gps
2. 同樣在該檔案的 Required background modes 底下加入 App registers for location updates
設定 Info.plist 檔案之 Required device capabilities 及 Required background modes
接下來的範例是開一個 empty iOS Application project 然後加入一些程式碼來測試 :
2. 在 AppDelegate.h 檔案增加 / 修改程式碼 :
4. 在 AppDelegate.cpp 檔案之函數 didFinishLaunchingWithOptions 內加入程式碼 :
#import <CoreLocation/CoreLocation.h> @interface AppDelegate : UIResponder <UIApplicationDelegate, CLLocationManagerDelegate>3. 在 AppDelegate.cpp 檔案增加程式碼 :
CLLocationManager* locationManager =nil; - (void)startStandardUpdates { if (nil == locationManager) locationManager = [[CLLocationManager alloc] init]; locationManager.delegate = self; locationManager.desiredAccuracy = kCLLocationAccuracyBest; locationManager.distanceFilter = kCLDistanceFilterNone; [locationManager startUpdatingLocation]; } -(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error { NSLog(@"update location err-\n%@", error); } // Delegate method from the CLLocationManagerDelegate protocol. - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { CLLocation* location = [locations lastObject]; NSString* pp =[NSString stringWithFormat:@"http://192.168.11.6:10001/?lat=%.3f&lon=%.3f", location.coordinate.latitude, location.coordinate.longitude]; NSURL* response =[NSURL URLWithString:pp]; NSString* response_str =[NSString stringWithContentsOfURL:response encoding:NSUTF8StringEncoding error:nil]; NSLog(@"%@, response of report=%@", pp, response_str); }函數 didUpdateLocations 在每次更新 GPS 回報的位置時使用 NSURL 以 http 方式向伺服器 192.168.11.6 以 GET 方式回報位置 (lat, lon)。
4. 在 AppDelegate.cpp 檔案之函數 didFinishLaunchingWithOptions 內加入程式碼 :
[self startStandardUpdates];在程式啟動時呼叫 startStandardUpdates 開始取得 GPS 回報的使用者位置。
0 意見 :
張貼留言