パーミッション is 何
Androidアプリはアクセスが制限されたサンドボックス内で実行されるため、アプリの外部にあるリソースや情報を使用する必要がある場合には、権限をリクエストする必要があります。この権限がパーミッションです。
Android5.1(APIレベル22)以前は、アプリのインストールと共に必要なパーミッションがアプリに付与されるため、特に権限のリクエストをする必要がありませんでした。
しかし、Android6.0(APIレベル23)以降からはガラッと変わり、パーミッションが必要なタイミングでユーザにリクエストをしなければいけなくなりました。例えば、現在地を取得する時に、端末に「位置情報の利用を許可しますか?」みたいな画面が出てくるようになりました。
Android11からまた変わったパーミッション
Android11(APIレベル30)から、アプリが
- 位置情報
- カメラ
- マイク
に関するパーミッションをリクエストするたびに、「今回のみ」というオプションが表示されるようになりました。
ちなみに、iOSでは実はiOS13(正式公開日が2019/9/19)から追加されている機能ではあるので、既に見覚えがある方もいるのではと思います。
参照:https://developer.android.com/training/permissions/requesting?hl=ja
とはいえ、実は変わったのはこれだけではありません。地味に変わった & 重要なところがもう一つあります。
パーミッションダイアログ表示の回数が減った?
デバイスにインストールされたアプリがパーミッションダイアログを表示し、ユーザが「許可しない」を選択後、再度ダイアログを開いて「許可しない」を選択した場合、同じパーミッションダイアログが再度表示されることがなくなってしまいました。
例えば位置情報に対して2度「許可しない」を選択すると、他の位置情報関係のパーミッションリクエストのダイアログが表示されることはありません。
今までのパーミッションダイアログの表示は次のような形でした。
しかし、Android11からは次のように変更されています。
2度目に表示されるダイアログの「許可しない(次回から表示しない)」が「許可しない」へ姿を変えています。
ユーザさんにとっては、「許可したく無いことに何度も出てくるダイアログうざい!」が解消されたのかもしれませんが、開発者側からすると、「許可の機会が減った!?」となりかねないような変更でした。
これからはユーザさんが選択する「許可しない(次回から表示しない)」のハードルが下がり、相対的に「許可する」のハードルが上がった形になると思います。
開発者からの「使って欲しいおすすめ機能」がパーミッション前提のものだと使ってもらえないなんてこともあるかもしれません。
まとめ
パーミッションの仕様が地味に変わった話でした。
Androidはこのような仕様変更がちょいちょいあるみたいですので、今後もしっかりと確認していきたいと改めて思いました。
編集履歴
2020/02/18 パーミッション表示の回数を修正
Android11からパーミッションが一度しか表示されない → パーミッションを2度拒否すると表示されなくなる