位置情報関連のアラートが出るタイミングを調査しました

2015.12.21

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは、モバイルアプリサービスの田中孝明です。

iBeaconを用いるアプリを開発された方、iOSが自動で表示するアラートに見覚えはありませんでしょうか?

  • 位置情報利用許可アラート
  • 位置情報精度のアラート

上記のアラートがどのタイミングで表示されるのかをまとめてみました。

もし追加の情報等ありましたらご指摘いただければ幸いです!

位置情報利用許可アラートについて

Drawing

トリガーは以下の通り

  • iOS 8以降
  • CLLocationManagerのrequestAlwaysAuthorizationをコール

以下の場合はアラートが表示される

  • 初回インストール後のアプリ起動
  • 数日経過後にアプリを起動した時(未検証)
    • WWDC2014のCoreLocationのセッションで「User will be asked again a few days later」と記載はされている
  • プライバシー情報リセット時
    • 設定」>「リセット」>「位置情報とプラバシーをリセット」を実施し、アプリを起動する
      • 位置情報とプラバシーをリセット」を実施するとauthorizationStatuskCLAuthorizationStatusNotDeterminedになるため、requestAlwaysAuthorizationを呼ぶとアラートが表示される

以下の場合はアラートは表示されなかった

  • タスクキル→アプリ起動
  • 端末の日付を手動で変更→アプリ起動(iOS 8.3、iOS 9.1で確認)
  • アプリを削除→再起動→再インストール→アプリ起動

位置情報精度アラートについて

Drawing

トリガーは以下の通り

  • 端末のBluetoothがオフ
  • CLLocationManagerのstartRangingBeaconsInRegion:(CLBeaconRegion *)regionをコールした時

以下の場合はアラートが表示される

  • 初回インストール後のアプリ起動
  • 端末の日付を手動で7日後に変更→アプリ起動(iOS 7.0.2、iOS 8.3、iOS 9.1で確認)

以下の場合はアラートは表示されなかった

  • タスクキル→アプリ起動
  • アプリを削除→再起動→再インストール→アプリ起動
  • 「設定」「リセット」「位置情報とプラバシーをリセット」を実施し、アプリを起動する

出典

まとめ

  • どちらのアラートも初回インストール後の起動時には表示される
  • どちらのアラートも表示後はタスクキル→アプリ起動では表示されない
  • 位置情報利用許可アラートは「位置情報とプラバシーをリセット」を実施すると表示される
  • 位置情報精度のアラートは「位置情報とプラバシーをリセット」を実施しても表示されない
  • 位置情報精度のアラートは日付を7日以上ずらすと表示される