requestpermissions - request permission android
Android M solicitando permisos con permission_groups (1)
Los documentos de Vista previa de Android M nos muestran cómo verificar y solicitar permisos con el nuevo modelo de permisos. En la siguiente tabla, nos muestra un grupo de grupos de permisos y sus permisos asociados.
Cuando trato de checkSelfPermission
con un permission_group
(es decir, Manifest.permission_group.CAMERA
) en el primer inicio, previsiblemente obtengo PackageManager.PERMISSION_DENIED
.
Luego intente requestPermissions
para ese mismo grupo de permission_group
y no obtengo ningún tipo de diálogo para que aparezca. ''onRequestPermissionsResult'' regresa inmediatamente con -1
.
Cuando intento la misma secuencia con Manifest.permission.Camera
- las cosas parecen funcionar normalmente. Pero para una aplicación simple que estoy creando, necesito grabar video con audio, y solicitar los dos permisos separados, CAMERA
y MICROPHONE
(también RECORD_AUDIO
como RECORD_AUDIO
) parece ser un mal diseño.
La pregunta : ¿se supone que checkSelfPermission
y requestPermission
funcionan con Manifest.permission.*
Y Manifest.permission_group.*
Pero hay un error que debería presentar ya que no muestra la solicitud? ¿O fue este diseño intencional?
* Nota: entiendo que puedo crear un requestPermissions(String[], int)
con múltiples permisos, pero el ID todavía tiene muchas declaraciones if
para verificar las combinaciones de permisos que necesito y para solicitarlos como grupo , cuando solo necesito pedir un permission_group
Cuando trato de verificar CheckSelfPermission con un permission_group (es decir, Manifest.permission_group.CAMERA) en el primer inicio, previsiblemente obtengo PackageManager.PERMISSION_DENIED.
Esto se debe a que checkSelfPermission()
verifica los permisos, no los grupos de permisos.
Luego intente solicitar Permisos para ese mismo grupo de permisos y no obtengo ningún tipo de diálogo para que aparezca. ''onRequestPermissionsResult'' regresa inmediatamente con -1.
Esto se debe a que requestPermissions()
funciona con permisos, no con grupos de permisos.
Se supone que checkSelfPermission y requestPermission funcionan con Manifest.permission. *
Sí.
y Manifest.permission_group. *
No.
¿O fue este diseño intencional?
Presumiblemente, sí. Al menos en el checkSelfPermission()
, se checkSelfPermission()
sobre otros métodos preexistentes que se remontan al Nivel 1 de API y funcionan con permisos, no con grupos de permisos.
cuando solo debería necesitar solicitar un permission_group
Está haciendo suposiciones sobre el futuro de Android que pueden no ser precisas. En este momento, los grupos de permisos pre-M no son especialmente importantes, y los permisos son lo que importa. En M, los grupos de permisos cobran importancia, ya que eso es lo que M usa en su presentación para los usuarios finales en relación con lo que el usuario puede controlar. Sin embargo, las versiones de Android después de eso podrían ofrecer una granularidad más precisa, ya sea para usuarios individuales o para empresas a través de políticas, y eso probablemente volvería a los permisos.
La API sugiere que Google está dejando la puerta abierta para ese tipo de movimientos. En efecto, el material del grupo de permisos es una decisión de UX, más que una técnica.