This page explains how to request the user’s permission for your application to access data on the device or use a device feature such as a built-in camera or microphone.
権限のリクエストに関する Google のガイドラインでは、ユーザーが権限のリクエストを一旦拒否した場合は、リクエストの理由を表示し、リクエストを再度提示することを推奨しています。
Android デバイスで権限をリクエストするタイミングと方法に関する詳細は、Android のデベロッパー向けドキュメントの アプリの権限に関するおすすめの設定 を参照してください。
ランタイム権限 API を使用するには、Android バージョン 6 (API レベル 23) が必要です。アプリケーションのターゲット API の変更は、以下の手順で行ってください。
アプリケーションは、制限付きデータや特定のデバイス機能の使用権限をリクエストするにあたって、事前にその Android App Manifest (アプリマニフェスト) で権限を宣言する必要があります。詳細は アプリケーションの権限の宣言 を参照してください。
Android.Permission API は、アプリケーションが現在持っている権限の確認や、アプリケーションが必要としていてまだ持っていない権限のリクエストに使用できる機能を提供します。
実行時の権限をリクエストする大まかなプロセスは、以下の通りです。
Permission.HasUserAuthorizedPermission を使用して、アプリケーションの必要とするデータや機能に関する権限が、既にユーザーによって付与されているかどうか確認できます。
この API の使い方を示すコードサンプルは Permission.HasUserAuthorizedPermission に掲載されています。
Use Permission.ShouldShowRequestPermissionRationale to check whether you need to display the rationale for a specific permission request.
If the rationale is necessary, display a message with reason why your application requires access to specific device features. After you display the message, send a request for permission.
If the rationale isn’t necessary, directly proceed to send a request for permission.
For a code example that shows how to use this API, refer to Permission.ShouldShowRequestPermissionRationale.
Use Permission.RequestUserPermission to request permission to use the data or feature. When you call this method, Android opens the system permission dialog that the user can use to grant or deny the permission.
この API の使い方を示すコードサンプルは、Permission.RequestUserPermission に掲載されています。
Use Permission.RequestUserPermissions to request permissions to access multiple resources on the user’s device at once. This method uses an array of strings with each string representing a specific permission to access a particular resource such as the device’s camera , microphone, or location.
これらのメソッドは、権限リクエストがユーザーによって承認または拒否された後に実行するコードの指定に使用できる、PermissionCallbacks オブジェクト を受け取ることができます。これを使用すると、権限リクエストがユーザーによって承認されると同時にデバイス機能 (例: マイクからの録音など) を使用開始できます。
ヒント: 権限をリクエストする際には、ユーザーに対して、アプリケーションがなぜその機能を必要とするのかを説明するメッセージを表示することが推奨されます。
ノート: ユーザーがシステム権限ダイアログで Do not ask me again オプションを有効にしている場合や、権限リクエストが 2 回以上拒否された場合は、RequestUserPermission()
はシステムダイアログを開きません。この場合、ユーザーがアプリケーションの権限の設定を開いて手動で権限を有効にする必要があります。
アプリケーションが必要とする権限をユーザーが許可しなかった場合は、手動で権限リクエストダイアログを表示する方法をユーザーに提供してください。これをどのように行うかはアプリケーションによって異なりますが、Permission.RequestUserPermission を呼び出すボタンを提供するのもひとつの方法です。