我們有一個完全依賴於不斷位置更新的應用程序,發現手機沒有獲得GPS時,即使設備連接到無線網絡,也不會調用didUpdateToLocation。爲了進一步測試,我在第四代iPod Touch上加載了相同的結果。CLLocationManager沒有更新Wifi上的位置
爲了說明,當GPS可用時,應用程序可以在iPhone 4上完美運行。我們沒有注意到這個問題,直到客戶在他的辦公室裏測試了他的iPhone 4,他知道他沒有獲得gps。
我認爲位置管理者應該支持wifi作爲確定位置的方法,但這似乎並不是這種情況。
這裏是我的代碼:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if (locationManager==nil) {
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.distanceFilter = kCLDistanceFilterNone;
NSLog(@"Accuracy best: %f distance filter none: %f", kCLLocationAccuracyBestForNavigation, kCLLocationAccuracyNearestTenMeters);
}
[locationManager startUpdatingLocation];
...
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{....
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{....
至於我想,沒有什麼特別的東西,你必須做的,使的LocationManager工作在WiFi - 現在我發現它不工作在所有。
BTW-我的手機設備是運行iOS 5 beta 7和iPod touch iOS 4.1的iPhone 4。
您是否確認它在使用GPS的iPhone 4上運行? –
是的。當GPS可用時,該代碼在iPhone 4上運行時完美無瑕。 –
有趣。從我所看到的情況來看,沒有理由不應該這樣做。您可以查詢位置監測服務是否可用。也許他們只是不允許在該設備上。 [CLLocationManager locationServicesEnabled];應該返回一個布爾值。 –