Solicitar permisos mientras una Aplicación se está Ejecutando en Android

4 minuto(s)

Cuando le mejoras la experiencia de usuario a tu aplicación hace que el usuario la ame más, la recomiende y se haga muy popular, hay aplicaciones que cuando la descargan desde la Play Store suelen solicitarte ciertos permisos que hacen que el proceso de instalación de la aplicación sea muy tedioso, pero si es necesario o por seguridad solicitar los permisos durante la instalación esta bien, pero si no es mejor que los solicites cuando la aplicación este instalada y ejecutándose en el móvil, en este articulo te explicaremos como hacer para que un aplicación solicite permisos mientras esta ejecutándose.

Desde la versión 6 de Android (API 23) es posible conceder permisos a los usuarios mientras una aplicación está ejecutándose, obviamente esto cuando la App ya este instalada en el equipo móvil.

Esta manera de solicitar permisos mientras la App se ejecuta brinda un mayor control sobre la App, pongamos como ejemplo cuando un Usuario brinda permisos a la función de SMS pero no brinda permisos para la Geolocalización en su equipo, asi mismo el usuario podrá revocar los permisos cuando desee desde su Activity de Configuración de la App.

Tipos de Permisos

Los permisos en Android se dividen en dos básicamente, Permisos Normales y Permisos Riesgosos.

Permisos Normales

Cuando el usuario brinda este tipo de permisos en la App no pone en riesgo su  privacidad de manera directa.

Si le asignas los permisos a una funcionalidad del móvil en el archivo Manifest de la App, el sistema concederá el permiso automáticamente a la funcionalidad.

Permisos Riesgosos

Este tipo de permisos pueden poner en riesgo la información privada del usuario. Para este tipo de permisos es necesario implementar la solicitud de permiso para acceder a una funcionalidad específica del móvil.

Dentro de los permisos riesgosos hay grupos de permisos y dentro de los grupos los permisos que le corresponden, veamos esto en la siguiente tabla

Grupo de Permisos Permisos
Permisos al Calendario Android | CALENDAR READ_CALENDAR

WRITE_CALENDAR

Permisos a la Cámara de Android | CAMERA CAMERA
Permisos a los Contactos de Android | CONTACTS READ_CONTACTS

WRITE_CONTACTS

GET_ACCOUNTS

Permisos a la Ubicación GPS de Android | LOCATION ACCESS_FINE_LOCATION

ACCESS_COARSE_LOCATION

Permisos al micrófono de Android | MICROPHONE RECORD_AUDIO
Permisos al teléfono de Android | PHONE READ_PHONE_STATE

CALL_PHONE

READ_CALL_LOG

WRITE_CALL_LOG

ADD_VOICEMAIL

USE_SIP

PROCESS_OUTGOING_CALLS

Permisos al sensor de Android | SENSORS BODY_SENSORS
Permisos para usar SMS en Android | SMS SEND_SMS

RECEIVE_SMS

READ_SMS

RECEIVE_WAP_PUSH

RECEIVE_MMS

Permisos para usar el Almacenamiento en Android | STORAGE READ_EXTERNAL_STORAGE

WRITE_EXTERNAL_STORAGE

Permisos en Android

Antes de solicitar un permiso a una función del móvil es importante verificar si ya existen previamente permisos brindados.

Comprobar si existen permisos

Si aplicación necesita acceder a un grupo de permisos riesgosos y acceder a uno de sus permisos, debes comprobar cada ves que sea necesario si ya existe el permiso, este permiso el usuario siempre va poder revocarlo cuando desee. Si el usuario un día anterior brindo el permiso para usar la ubicación GPS esto no significa que tendrá este permiso al siguiente y demás días.

Para comprobar si existe un permiso puedes usar el método ContextCompat.checkSelfPermission() , por ejemplo si necesitas verificar si el móvil tiene permiso para acceder al micrófono puedes hacer lo siguiente


Si se comprueba que la App ya tiene el permiso para acceder al micrófono del móvil entonces el método te imprimirá PackageManager.PERMISSION_GRANTED y podrá continuar con la operación deseada y por el contrario si la App aún no tiene el permiso se le imprimirá el mensaje PERMISSION_DENIED entonces la App tendría que solicitar el permiso.

Solicitar Permisos

Para que tu App solicite permisos de tipo riesgoso debes de enviarle una alerta al Usuario para que el decida si lo desea otorgar o no, esto para mantener el respeto a la privacidad del usuario.

Android nos brinda varios métodos para solicitar un permiso, cuando usas uno de estos métodos aparecerá una ventana de alerta o de diálogo estándar propia del mismo Android, por ejemplo si solicitas el permiso a la cámara del móvil, aparecerá un mensaje como el siguiente

imagen: gustavopeiretti.com

Es importante mencionar al usuario el porque le estas solicitando un permiso a una determinada funcionalidad del móvil. Para explicar al usuario cual es el motivo por el que le estas solicitando el permiso puedes usar el método shouldShowRequestPermissionRationale() si el usuario rechaza el permiso y no lo brinda se imprime el mensaje false.

Para solicitar el permiso a un función del móvil puedes usar los métodos de requestPermissions() y el móvil brindará el permiso solicitado por la App, por Ejemplo si necesitas permiso para usar la cámara del móvil puedes escribir lo siguiente


El código puede cambiar, esto depende de lo que quieras hacer, pero con que entiendas la base para solicitar permisos podrás hacer procesos más complejos en tu App.

 

Síguenos en las Redes Sociales para que no te pierdas nuestros próximos contenidos.