固定位置アップデートに完全に依存するアプリケーションがあり、デバイスがWiFiネットワークに接続されていても電話機がGPSを取得していないときdidUpdateToLocationが呼び出されていないことがわかりました。このテストをさらに進めるために、私は第4世代iPod Touchに同じ結果でアプリをロードしました。CLLocationManagerがWi-Fi経由でロケーションを更新しない
GPSが利用可能なときに明確にするために、アプリはiPhone 4で完全に機能します。私たちはクライアントが彼のオフィスで自分のiPhone 4でそれをテストしてからgpsを得られないことを知るまで、この問題に気付かなかった。
ロケーションマネージャがロケーションを特定する方法としてWi-Fiをサポートすると考えられましたが、これは当てはまりません。私の知る限り思ったとして、あなたはWiFi経由locationManagerの仕事をするためにしなければならないことを何か特別なことがない
- (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
{....
- そして今、私はそれが動作しません見つける:ここ
は私のコードですまったく。
BTW-私の携帯端末は、iOS 5ベータ7とiOS 4.1を搭載したiPhone 4です。
GPSを搭載したiPhone 4で動作していることを確認しましたか? –
はい。このコードは、GPSが利用可能なときにiPhone 4で動作しているときに完璧に機能します。 –
興味深い。私が見ることができるから、そうしてはならない理由はありません。あなたは、位置監視サービスが利用可能であるかどうか尋ねることができます。たぶん彼らはそのデバイスで許可されていないかもしれません。 [CLLocationManager locationServicesEnabled]; bool値を返す必要があります。 –