PermissionsAndroid
PermissionsAndroid
は、Android M の新しい権限モデルへのアクセスを提供します。いわゆる「通常」の権限は、AndroidManifest.xml
に記述されていれば、アプリケーションのインストール時にデフォルトで付与されます。ただし、「危険な」権限にはダイアログプロンプトが必要です。これらの権限にはこのモジュールを使用する必要があります。
SDK バージョン 23 より前のデバイスでは、権限はマニフェストに記述されていれば自動的に付与されるため、check
は常に true
になり、request
は常に PermissionsAndroid.RESULTS.GRANTED
に解決される必要があります。
ユーザーが以前にプロンプトで表示された権限をオフにした場合、OS はアプリに権限が必要な理由を示す根拠を表示するようにアドバイスします。オプションの rationale
引数は、必要な場合にのみダイアログプロンプトを表示します。それ以外の場合は、通常の権限プロンプトが表示されます。
例
ユーザーにプロンプトを表示する必要がある権限
PermissionsAndroid.PERMISSIONS
の定数として利用可能
READ_CALENDAR
: 'android.permission.READ_CALENDAR'WRITE_CALENDAR
: 'android.permission.WRITE_CALENDAR'CAMERA
: 'android.permission.CAMERA'READ_CONTACTS
: 'android.permission.READ_CONTACTS'WRITE_CONTACTS
: 'android.permission.WRITE_CONTACTS'GET_ACCOUNTS
: 'android.permission.GET_ACCOUNTS'ACCESS_FINE_LOCATION
: 'android.permission.ACCESS_FINE_LOCATION'ACCESS_COARSE_LOCATION
: 'android.permission.ACCESS_COARSE_LOCATION'ACCESS_BACKGROUND_LOCATION
: 'android.permission.ACCESS_BACKGROUND_LOCATION'RECORD_AUDIO
: 'android.permission.RECORD_AUDIO'READ_PHONE_STATE
: 'android.permission.READ_PHONE_STATE'CALL_PHONE
: 'android.permission.CALL_PHONE'READ_CALL_LOG
: 'android.permission.READ_CALL_LOG'WRITE_CALL_LOG
: 'android.permission.WRITE_CALL_LOG'ADD_VOICEMAIL
: 'com.android.voicemail.permission.ADD_VOICEMAIL'USE_SIP
: 'android.permission.USE_SIP'PROCESS_OUTGOING_CALLS
: 'android.permission.PROCESS_OUTGOING_CALLS'BODY_SENSORS
: 'android.permission.BODY_SENSORS'SEND_SMS
: 'android.permission.SEND_SMS'RECEIVE_SMS
: 'android.permission.RECEIVE_SMS'READ_SMS
: 'android.permission.READ_SMS'RECEIVE_WAP_PUSH
: 'android.permission.RECEIVE_WAP_PUSH'RECEIVE_MMS
: 'android.permission.RECEIVE_MMS'READ_EXTERNAL_STORAGE
: 'android.permission.READ_EXTERNAL_STORAGE'WRITE_EXTERNAL_STORAGE
: 'android.permission.WRITE_EXTERNAL_STORAGE'BLUETOOTH_CONNECT
: 'android.permission.BLUETOOTH_CONNECT'BLUETOOTH_SCAN
: 'android.permission.BLUETOOTH_SCAN'BLUETOOTH_ADVERTISE
: 'android.permission.BLUETOOTH_ADVERTISE'ACCESS_MEDIA_LOCATION
: 'android.permission.ACCESS_MEDIA_LOCATION'ACCEPT_HANDOVER
: 'android.permission.ACCEPT_HANDOVER'ACTIVITY_RECOGNITION
: 'android.permission.ACTIVITY_RECOGNITION'ANSWER_PHONE_CALLS
: 'android.permission.ANSWER_PHONE_CALLS'READ_PHONE_NUMBERS
: 'android.permission.READ_PHONE_NUMBERS'UWB_RANGING
: 'android.permission.UWB_RANGING'BODY_SENSORS_BACKGROUND
: 'android.permission.BODY_SENSORS_BACKGROUND'READ_MEDIA_IMAGES
: 'android.permission.READ_MEDIA_IMAGES'READ_MEDIA_VIDEO
: 'android.permission.READ_MEDIA_VIDEO'READ_MEDIA_AUDIO
: 'android.permission.READ_MEDIA_AUDIO'POST_NOTIFICATIONS
: 'android.permission.POST_NOTIFICATIONS'NEARBY_WIFI_DEVICES
: 'android.permission.NEARBY_WIFI_DEVICES'READ_VOICEMAIL
: 'com.android.voicemail.permission.READ_VOICEMAIL',WRITE_VOICEMAIL
: 'com.android.voicemail.permission.WRITE_VOICEMAIL',
権限をリクエストするための結果文字列
PermissionsAndroid.RESULTS
の定数として利用可能
GRANTED
: 'granted'DENIED
: 'denied'NEVER_ASK_AGAIN
: 'never_ask_again'
リファレンス
メソッド
check()
static check(permission: Permission): Promise<boolean>;
指定された権限が付与されているかどうかを示すブール値に解決される Promise を返します。
パラメータ
名前 | 型 | 必須 | 説明 |
---|---|---|---|
permission | string | はい | チェックする権限。 |
request()
static request(
permission: Permission,
rationale?: Rationale,
): Promise<PermissionStatus>;
ユーザーに権限を有効にするように促し、ユーザーが要求を許可したか拒否したか、または二度と尋ねたくないかを示す文字列値(上記の結果文字列を参照)に解決される Promise を返します。
rationale
が提供されている場合、この関数は、権限が必要な理由を説明するダイアログを表示する必要があるかどうかを OS に確認し(https://developer.android.com/training/permissions/requesting.html#explain)、システム権限ダイアログを表示します。
パラメータ
名前 | 型 | 必須 | 説明 |
---|---|---|---|
permission | string | はい | リクエストする権限。 |
rationale | object | いいえ | 下記の rationale を参照してください。 |
Rationale
名前 | 型 | 必須 | 説明 |
---|---|---|---|
title | string | はい | ダイアログのタイトル。 |
message | string | はい | ダイアログのメッセージ。 |
buttonPositive | string | はい | 肯定ボタンのテキスト。 |
buttonNegative | string | いいえ | 否定ボタンのテキスト。 |
buttonNeutral | string | いいえ | 中立ボタンのテキスト。 |
requestMultiple()
static requestMultiple(
permissions: Permission[],
): Promise<{[key in Permission]: PermissionStatus}>;
同じダイアログで複数の権限を有効にするようにユーザーに促し、権限をキーとして、ユーザーが要求を許可したか拒否したか、または二度と尋ねたくないかを示す文字列を値として持つオブジェクト(上記の結果文字列を参照)を返します。
パラメータ
名前 | 型 | 必須 | 説明 |
---|---|---|---|
permissions | array | はい | リクエストする権限の配列。 |