Android

Cómo solicitar y gestionar permisos en Android

Android 5.1 Lollipop es una versión del sistema operativo Android lanzada en 2015. A partir de Android 5.1, las aplicaciones pueden pedir permisos para acceder a determinadas funciones o datos de tu dispositivo. Por ejemplo, una app puede solicitar permiso para acceder a tu ubicación, usar la cámara o acceder a tus contactos.

Para solicitar un permiso en una app de Android, puedes usar el método requestPermissions de la clase ActivityCompat de la biblioteca de compatibilidad de Android. Este método recibe un objeto Activity y un arreglo de cadenas que representan los permisos que quieres solicitar.

Este es un ejemplo de cómo podrías solicitar el permiso CAMERA en una app de Android:

// Check if the camera permission has been granted
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA)
        != PackageManager.PERMISSION_GRANTED) {
    // If the permission has not been granted, request it
    ActivityCompat.requestPermissions(this,
            new String[]{Manifest.permission.CAMERA},
            REQUEST_CAMERA_PERMISSION);
} else {
    // If the permission has already been granted, proceed with the app's logic
    // that requires the camera.
}

La constante REQUEST_CAMERA_PERMISSION es un entero único que defines en tu app. Sirve para identificar la solicitud cuando la app recibe el resultado de la petición del permiso.

Puedes gestionar el resultado de la solicitud en el método onRequestPermissionsResult de tu Activity. Este método se llama cuando el usuario responde a la solicitud. Allí puedes comprobar el resultado y actuar en consecuencia en tu app.

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
        @NonNull int[] grantResults) {
    if (requestCode == REQUEST_CAMERA_PERMISSION) {
        // If the request was successful, proceed with the app's logic that requires the camera
        if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            // Permission was granted, proceed with the app's logic that requires the camera
        } else {
            // Permission was denied, show a message to the user
            Toast.makeText(this, "Camera permission is required to use this feature",
                    Toast.LENGTH_SHORT).show();
        }
    }
}

Ten en cuenta que, para solicitar un permiso, primero debes declararlo en el archivo de manifiesto de la app. Para ello, añade un elemento uses-permission al manifiesto. Por ejemplo, para solicitar el permiso CAMERA, añadirías el siguiente elemento al archivo de manifiesto:

<uses-permission android:name="android.permission.CAMERA" />

Cuando una app solicita un permiso, verás un cuadro de diálogo que explica por qué lo necesita y te da la opción de concederlo o denegarlo. También puedes ver y gestionar los permisos de las apps en el menú de ajustes de tu dispositivo.

Es importante pensar bien qué permisos concedes a las apps: algunos pueden dar a la app acceso a información sensible o permitirle realizar acciones en tu dispositivo. Lo recomendable es conceder permisos solo a las apps en las que confías y que tienen un motivo legítimo para necesitarlos.

En este tutorial hemos visto los fundamentos de la solicitud y la gestión de permisos en Android. Hemos aprendido a comprobar si se ha concedido un permiso, a solicitarlo y a gestionar el resultado de la solicitud. También hemos visto cómo declarar los permisos en el archivo de manifiesto de la app.

Ahora que entiendes mejor cómo trabajar con permisos en Android, prueba estos conceptos en tu propia app. Si quieres saber más sobre los permisos de Android, hay muchos recursos disponibles en línea, entre ellos la documentación de Android y las guías para desarrolladores. Con un poco de práctica y algo más de investigación, te convertirás en un experto en la gestión de permisos en tus apps de Android.