Saltar al contenido principal
Versión: 0.79

PermissionsAndroid

Traducción Beta No Oficial

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

PermissionsAndroid proporciona acceso al nuevo modelo de permisos de Android M. Los llamados permisos "normales" se otorgan automáticamente al instalar la aplicación si aparecen en AndroidManifest.xml. Sin embargo, los permisos "peligrosos" requieren una solicitud mediante cuadro de diálogo. Debes usar este módulo para esos permisos.

En dispositivos con SDK anterior a la versión 23, los permisos se otorgan automáticamente si aparecen en el manifiesto. Por lo tanto, check siempre dará true y request siempre resolverá a PermissionsAndroid.RESULTS.GRANTED.

Si un usuario desactivó previamente un permiso que solicitas, el SO recomendará a tu app mostrar una justificación para dicho permiso. El argumento opcional rationale mostrará un cuadro de diálogo solo cuando sea necesario; de lo contrario aparecerá la solicitud de permiso normal.

Ejemplo

Permisos que requieren solicitar al usuario

Disponibles como constantes en 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',

Cadenas de resultado para solicitar permisos

Disponibles como constantes bajo PermissionsAndroid.RESULTS:

  • GRANTED: 'granted'

  • DENIED: 'denied'

  • NEVER_ASK_AGAIN: 'never_ask_again'


Referencia

Métodos

check()

tsx
static check(permission: Permission): Promise<boolean>;

Devuelve una promesa que se resuelve en un valor booleano indicando si se han concedido los permisos especificados.

Parámetros:

NameTypeRequiredDescription
permissionstringYesThe permission to check for.

request()

tsx
static request(
permission: Permission,
rationale?: Rationale,
): Promise<PermissionStatus>;

Solicita al usuario que habilite un permiso y devuelve una promesa que se resuelve en un valor de cadena (ver cadenas de resultado anteriores) indicando si el usuario permitió, denegó la solicitud o no desea volver a preguntar.

Si se proporciona rationale, esta función verifica con el sistema operativo si es necesario mostrar un diálogo explicando por qué se necesita el permiso (https://developer.android.com/training/permissions/requesting.html#explain) y luego muestra el diálogo normal de permisos.

Parámetros:

NameTypeRequiredDescription
permissionstringYesThe permission to request.
rationaleobjectNoSee rationale below.

Rationale:

NameTypeRequiredDescription
titlestringYesThe title of the dialog.
messagestringYesThe message of the dialog.
buttonPositivestringYesThe text of the positive button.
buttonNegativestringNoThe text of the negative button.
buttonNeutralstringNoThe text of the neutral button.

requestMultiple()

tsx
static requestMultiple(
permissions: Permission[],
): Promise<{[key in Permission]: PermissionStatus}>;

Solicita al usuario que habilite múltiples permisos en el mismo diálogo y devuelve un objeto con los permisos como claves y cadenas como valores (ver cadenas de resultado anteriores) indicando si el usuario permitió, denegó cada solicitud o no desea volver a preguntar.

Parámetros:

NameTypeRequiredDescription
permissionsarrayYesArray of permissions to request.