結局どれがどれだっけ?って毎度忘れるので、すぐ把握できるようにメモしておく

CLLocationManagerのauthorizationStatusプロパティの型である『CLAuthorizationStatus』についてメモるわけです。

CLAuthorizationStatusは5パターンある(authorizedは除くとして)

拒否も許諾もしてない。初回の確認のフラグに使う

.notDetermined

何かしらの制限をされている時

.restricted

大まかに以下のような理由

1.ペアレンタルコントロール(親の設定による制限)

親や管理者が位置情報サービスの制限をかけている場合

2.企業ポリシーによる制限

学校や企業が生徒や社員に貸与してるデバイスにおける制限など

3.国や地域による制限

企業ポリシーと似たようなもので、ハードウェアレベルで国の制限とかが入ってる場合。

国の規定でその国で発売するデバイスには国による制限が実装されている場合があって、そのような制限。

ユーザーが拒否している時

.denied

ユーザー
もしくは
システム全体で拒否されている場合

制限ではないので、ユーザーが再度許可を実施すれば、ステータスは変わる

常に利用を許可してる時

.authorizedAlways

バックグランドにアプリがある状態での利用も許可されている

フォアグラウンドにある時のみ許可してる場合

.authorizedWhenInUse

アプリが画面に出てる場合は許可されているが、例えばLINEが来たのでLINEを開くとその間は許可になっていない

とにかく、利用が許可されている場合(iOS14以前)

.authorized

iOS 14以前にあったもので、.authorizedAlways と .authorizedWhenInUse の区別なく、とにかく許可されてるというシンプルな設定。

なくなる可能性ありそうなので使わないが無難

メソッドは以下のようなものがある

上記のCLAuthorizationStatusの状態にあわせ、取得タイミングなどをコントロールしてくれる

位置情報の取得開始し、更新し続けたい時

startUpdatingLocation()

1    2  

コメント