はじめに
権限周りがTargetSDKや端末のAPIレベルやらが入り混じって毎回調べるたびに混乱していた。備忘録として残してみる。
通知の権限
TargetSDKが33以上の場合
内容 \ 端末のAPIレベル | ~ APIレベル32 | APIレベル33 ~ |
---|---|---|
新規インストール | デフォルトでアプリからの通知が可能 | POST_NOTIFICATIONSの許諾が必要 |
APILevel33へのアップデート | 以前の通知権限が引き継がれる | - |
TargetSDKが32以下の場合
内容 \ 端末のAPIレベル | ~ APIレベル32 | APIレベル33 ~ |
---|---|---|
新規インストール | デフォルトでアプリからの通知が可能 | デフォルトではアプリからの通知が不可 手動で設定画面で許諾をする |
APILevel33へのアップデート | 以前の通知権限が引き継がれる | - |
位置情報の権限
内容 \ TargetSDK | ~ APIレベル28 | APIレベル29 ~ |
---|---|---|
おおよその位置情報を提供。 (精度は約 3 平方キロメートル以内) |
ACCESS_COARSE_LOCATIONの許諾をする必要がある | 同左 |
正確な位置情報を提供。 (精度は通常約 50 メートル以内) |
ACCESS_FINE_LOCATIONの許諾をする必要がある | 同左 |
バックグラウンドでの位置情報利用 | フォアグラウンドの位置情報権限があればバックグラウンドからのアクセスも可能 | ACCESS_BACKGROUND_LOCATIONの許諾をする必要がある |
ボディセンサーの権限
TargetSDKが33以上の場合
内容 | 必要な処理 |
---|---|
ボディセンサーへのアクセス | BODY_SENSORSの許諾が必要 |
バックグラウンドでのボディーセンサーへのアクセス | BODY_SENSORS_BACKGROUNDの許諾が必要 |
TargetSDKが32以下の場合
内容 | 必要な処理 |
---|---|
ボディセンサーへのアクセス | BODY_SENSORSの許諾が必要 |
バックグラウンドでのボディーセンサーへのアクセス | 手動で設定画面で許諾をする |
最後に
OS後方互換を考えようとした時に複雑になりがち。他にもまとめる必要のある権限ありそうなので、気づいたら追記します。
参考文献