タグ付けされた質問 「cllocationmanager」

26
位置情報サービスがiOS 8で機能しない
iOS 7で問題なく動作した私のアプリは、iOS 8 SDKでは動作しません。 CLLocationManager位置情報が返されず、[設定] -> [ 位置情報サービス]にもアプリが表示されません。この問題についてGoogleで検索しましたが、何も見つかりませんでした。何が悪いのでしょうか?

15
ユーザーの現在の場所/座標を取得する
ユーザーの現在の場所を保存し、地図上にその場所を表示するにはどうすればよいですか? 事前定義された座標を地図上に表示できますが、デバイスから情報を受信する方法がわかりません。 また、いくつかのアイテムをPlistに追加する必要があることも知っています。どうやってやるの?


3
終了/中断されたときの重要な変更場所APIの動作?
これは、startMonitoringSignificantLocationChangesを使用したアプリの動作を説明するCLLocationManagerドキュメントのセクションです。 このサービスを開始した後でアプリケーションが終了した場合、新しいイベントが到着すると、システムは自動的にアプリケーションをバックグラウンドで再起動します。このような場合、アプリケーションデリゲートのapplication:didFinishLaunchingWithOptions:メソッドに渡されるオプションディクショナリには、場所イベントのためにアプリケーションが起動されたことを示すキーUIApplicationLaunchOptionsLocationKeyが含まれています。再起動しても、ロケーションマネージャオブジェクトを設定し、このメソッドを呼び出してロケーションイベントの受信を継続する必要があります。位置情報サービスを再起動すると、現在のイベントがすぐにデリゲートに配信されます。さらに、ロケーションサービスを開始する前でも、ロケーションマネージャーオブジェクトのロケーションプロパティには最新のロケーションオブジェクトが入力されています。 私の理解では、アプリの終了は、(あなたが呼び出していない場合、私が想定した場合ということですので、stopMonitoringSignificantLocationChangesをからapplicationWillTerminate)あなたが覚めてしまいますUIApplicationLaunchOptionsLocationKeyのにパラメータdidFinishLaunchingWithOptions:アプリケーション。その時点でCLLocationManagerを作成し、startMonitoringSignificantLocationChangesを呼び出して、バックグラウンドでの位置処理を限られた時間実行します。だから私はこのビットで大丈夫です。 前の段落では、アプリが終了したときに何が起こるかについてのみ述べており、アプリケーションが一時停止したときに何をするかを示唆していません。didFinishLaunchingWithOptionsのドキュメントには次のように書かれています。 アプリケーションは、バックグラウンドで位置の更新を追跡し、パージされ、現在は再起動されています。この場合、ディクショナリには、新しい場所イベントのためにアプリケーションが再起動されたことを示すキーが含まれています。 終了後、(場所の変更により)アプリが起動された場合にのみこの通話を受信することを提案します。 しかし、上の段落の大幅な変更サービスにおける位置認識プログラミングガイドが言うには、以下のい: このサービスを実行したままアプリケーションを一時停止または終了した場合、新しい位置データが到着すると、サービスによってアプリケーションが自動的に起動します。ウェイクアップ時に、アプリケーションはバックグラウンドに置かれ、位置データを処理するために少し時間が与えられます。アプリケーションはバックグラウンドにあるため、最小限の作業を行い、割り当てられた時間が経過する前にアプリケーションが戻るのを妨げる可能性のあるタスク(ネットワークのクエリなど)を回避する必要があります。そうでない場合、アプリケーションが終了する可能性があります。 これは、アプリが一時停止されている場合は位置データで目覚めていることを示していますが、どのように起きているかについては言及していません。 んUIApplicationDelegateは、私がバックグラウンド状態にサスペンド状態から再開していますことを私に言って、コールバックを取得しますか? (アプリが中断されたときにフリーズドライされた)ロケーションマネージャーは、locationManager :didUpdateToLocation:fromLocationコールバックの受信を開始しますか? アプリケーションの状態をチェックし、バックグラウンドモードの場合に最小限の処理を行うコードをdidUpdateToLocationメッセージに実装するだけでよいですか? これを書いている最中、私は自分の質問に答えたばかりかもしれないと思いますが、これについての私の理解をより知識のある誰かに確認してもらうと素晴らしいでしょう。

19
didFailWithError:Error Domain = kCLErrorDomain Code = 0「操作を完了できませんでした。(kCLErrorDomainエラー0。)」
現在地を取得したいのですが、エラーが発生します。 これは私のViewControllerのスニペットです。 - (void)viewDidLoad { self.locationManager = [[CLLocationManager alloc] init]; [locationManager setDelegate:self]; [locationManager setDesiredAccuracy:kCLLocationAccuracyNearestTenMeters]; [locationManager startUpdatingLocation]; } - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations { // I would get the latest location here // but this method never gets called } - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error { NSLog(@"didFailWithError: %@", error); } …

1
継続的な位置更新の背景iOS13
現在、iOS 13でバックグラウンドロケーションモードをテストしています。ユーザーのロケーションとモーション(CMMotionManagerを使用)をバックグラウンドで追跡したいからです。そのため、位置追跡を処理する独自の(シングルトン)クラスがあります。CLLocationManagerを次のように初期化します。 func initializeLocationManager() -> CLLocationManager { let manager = locationManager ?? CLLocationManager() manager.delegate = self manager.requestAlwaysAuthorization() manager.allowsBackgroundLocationUpdates = true manager.pausesLocationUpdatesAutomatically = false manager.distanceFilter = kCLDistanceFilterNone manager.desiredAccuracy = kCLLocationAccuracyBest manager.activityType = .other return manager } 次に、次のサービスを開始します。 func startLocationServices() { // ... locationManager.startUpdatingLocation() locationManager.startMonitoringVisits() locationManager.startMonitoringSignificantLocationChanges() // ... } さらに、CLLocationManagerDelegate-methods didChangeAuthorization()、didUpdateLocation()を実装しました。 info.plist-fileに次のエントリを追加しました。 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.