初めてアプリをインストールして起動するとすぐに、startUpdatingLocationが呼び出されていなくても、ロケーションサービスがすぐに要求されます。私はその時点でCLLocationManagerインスタンスを割り当てていません。私は実際に電話をかけた後、このプロンプトを遅れて実行して、ユーザーが盲目的にそれをオフにしないようにしたいと思います。このフローは最近iOSで変更されましたか?私は怠惰に尋ねられていたことを覚えています。私は5.1ファームウェアを使用しています。怠け者に位置情報サービスを依頼する
答えて
これは興味深いです。あなたの仮説をテストしたところ、ロケーションマネージャは割り当てられていなくても、iOS Location Permissionダイアログが表示されます。私は次のトラブルシューティングを試みました。すべてのステップの後、私はデバイスでプロジェクトを実行し、最後のステップで表示される位置ポップアップを取得するだけでした。
- スタート新しいアプリ
- は
- はヘッダ
- メイクにプロジェクト
- インポートコア場所に
- のInfo.plistリンクCoreLocationでGPSを必要とするinfo.plistに位置サービスを必要とロケーションマネージャのプロパティを合成します。
- CLLocationManagerに対して+ authorizationStatusを問い合わせます。
- + locationServicesEnabledのCLLocationManagerに問い合わせてください
- alloc init CLLocationManagerインスタンス
- CLLocationManagerに位置の更新を開始するように指示します。
プロンプトが表示されます。 CLLocationManagerを初期化して位置の更新を開始した2番目のView ControllerをプッシュしたviewControllerを作成したことを確認してください。パーミッションポップアップは、2番目のView Controllerが押されたときにのみ表示されます。これは、5.1上で動作する最新のXcodeを使用したものです。
ロケーションサービスは、以前のSDKで行ったように、ロケーションを試して回す瞬間に、依然として許可を求めていることを示しました。おそらくコードをチェックして、おそらくここにいくつか貼り付けて、もっと詳しく説明してください。 :)
私はこれをやってみて確かめてみましょう。すべての私の場所の処理はシングルトンを通じて行われるので、私はアプリケーション全体でstartUpdatingLocationを呼び出すことが1回しかありません。私はそれにブレークポイントを持っており、それは決して呼び出されません。私が考えることができる唯一の他の可能性は、何らかの理由で依存フレームワークの1つがこれを引き起こしているということです。私のプロジェクトは大きいので、プロジェクトファイルを再作成するのは難しいでしょう。また、iOS 3.0以降、プロジェクトファイルを使用してアップグレードしています。 –
おそらく、広告ネットワークや遠隔測定フレームワークを使用していますか?ブレークポイントのサイドバーに移動し、下部のプラス記号をクリックし、シンボルボックスに ' - [CLLocationManager startUpdatingLocation] 'と入力すると、プロジェクト全体とライブラリ全体でstartUpdatingLocationが中断されます。 '-startMonitoringSignificantLocationChanges'を聞く価値があるかもしれません – jackslash
これはありがとう、それは知っておくべき良いトリックです!これは、後で表示するために起動時にMKMapViewをバックグラウンドで割り当てる(表示しない)ためです。 –
- 1. 位置情報サービスがオフのときに位置情報を取得
- 2. Androidサービスで位置情報サービスfusedlocationapiを使用する - 位置更新を1つだけ受信する
- 3. 位置情報サービスのリクエストAndroid
- 4. iPhoneアプリの位置情報サービスを再度有効にする
- 5. Androidジオフェンス(位置情報サービス) - アプリ内イベントをトリガーする方法
- 6. Androidでプログラムで位置情報サービスを使用する方法
- 7. アプリからの位置情報サービスを使用する - Android
- 8. Androidスタジオで位置情報サービスを設定する
- 9. 位置情報サービスのメッセージを設定するiOSのシステムポップアップ
- 10. 複数のアクティビティにわたる位置情報サービス
- 11. Androidサービス開始、位置情報サービス付きハンドラスレッド
- 12. スタンフォードの位置情報NER
- 13. IPアドレスと位置情報
- 14. Smartface 4.5位置情報
- 15. 地理位置情報
- 16. 位置情報を変更するUITouch
- 17. Androidサービスで位置情報サービスを使用した後、Google Playサービス経由でバッテリーが消耗し続ける
- 18. HealthKitワークアウトセッションに位置情報と気象情報を追加
- 19. Androidサービスが位置情報の更新を受信しない
- 20. 位置情報サービスの更新間隔Android
- 21. 位置情報サービスがフラグメント内で機能しない
- 22. Nativescriptの位置情報サービスでダッシュボードが更新されない
- 23. Androidでの位置情報サービスの正確さ
- 24. iPod Touchのアプリケーション内で位置情報サービスをプログラムで有効にする
- 25. WP7のアプリケーションから位置情報サービスを有効にする方法
- 26. 位置情報を取得するためのサービスを実行する
- 27. 位置情報サービスの実行中にAndroidアプリがonDestroyにクラッシュする
- 28. アプリケーションをブラウズ中に位置情報サービスを実行しています
- 29. Javascriptジオロケーションが位置情報を見つけられない
- 30. ツイートから位置情報を保存
あなたが最初にユーザーがあなたのアプリを起動するときに表示されるダイアログ(アプリ***は使いたい...)についてお話ししていますか? –
確かに、それは5.1のなんらかの理由でそれを行います。 – ssteinberg
@rokjarcはい、そうです。 –