【React Native】文件翻譯閱讀紀錄 - APIs - PermissionsAndroid

by - 上午9:00

Facebook Open Source React Native


PermissionsAndroid


import { PermissionsAndroid } from 'react-native';

async function requestCameraPermission() {
  try {
    const granted = await PermissionsAndroid.request(
      PermissionsAndroid.PERMISSIONS.CAMERA,
      {
        'title': 'Cool Photo App Camera Permission',
        'message': 'Cool Photo App needs access to your camera ' +
                   'so you can take awesome pictures.'
      }
    )
    if (granted === PermissionsAndroid.RESULTS.GRANTED) {
      console.log("You can use the camera")
    } else {
      console.log("Camera permission denied")
    }
  } catch (err) {
    console.warn(err)
  }
}

需要提示用戶的權限

在 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'
  • 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'

請求權限的結果字符串

可在 PermissionsAndroid.RESULTS 下作為常量使用:
  • GRANTED: 'granted'
  • DENIED: 'denied'
  • NEVER_ASK_AGAIN: 'never_ask_again'

Methods


參考

Methods

constructor()

constructor();

check()

check(permission);
返回一個解析為布爾值的promise,以確定是否已授予指定的權限。
參數:
NAMETYPEREQUIREDDESCRIPTION
permissionstringYes要檢查的權限。

request()

request(permission, [rationale]); 
提示用戶啟用權限並返回解析為字符串值的promise(請參閱上面的結果字符串),指示用戶是允許還是拒絕請求,或者是否不想再次詢問。

如果提供了基本原理,此功能會檢查操作系統是否有必要顯示一個對話框,說明需要權限的原因(https://developer.android.com/training/permissions/requesting.html#explain,然後顯示系統權限對話框。
參數:
NAMETYPEREQUIREDDESCRIPTION
permissionstringYes請求的權限。
rationaleobjectNo帶標題和消息的對象。

requestMultiple()

requestMultiple(permissions);
提示用戶在同一對話框中啟用多個權限,並返回一個對象,其權限為鍵和字符串作為值(請參閱上面的結果字符串),指示用戶是允許還是拒絕請求,或者不想再次詢問。
參數:
NAMETYPEREQUIREDDESCRIPTION
permissionsarrayYes要求的權限數組。



You May Also Like

0 意見