Saltar al contenido

Solicitar múltiples permisos Android

Recabamos por distintos espacios y así de esta manera traerte la respuesta a tu problema, si continúas con alguna duda deja la inquietud y te contestaremos con mucho gusto, porque estamos para ayudarte.

Solución:

deberías tener solo una cadena array si desea solicitar todos los permisos en un cuadro de diálogo, así:

int ALL_PERMISSIONS = 101;

final String[] permissions = new String[]Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE;

ActivityCompat.requestPermissions(this, permissions, ALL_PERMISSIONS);

¿Por qué desea solicitar permisos varias veces? El método de solicitud de permiso acepta array de Permisos. Para solicitar cualquier permiso, puede usar el siguiente código y agregar los permisos que necesita. Así es como maneja los permisos de tiempo de ejecución al solicitarlos antes de acceder a cualquier dato relacionado con el permiso

public  boolean isStoragePermissionGranted() 
if (Build.VERSION.SDK_INT >= 23) 

    if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE)
            == PackageManager.PERMISSION_GRANTED && checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE)
            == PackageManager.PERMISSION_GRANTED && checkSelfPermission(Manifest.permission.CAMERA)
            == PackageManager.PERMISSION_GRANTED) 
        Log.v(TAG,"Permission is granted");
        return true;
     else 

        Log.v(TAG,"Permission is revoked");
        ActivityCompat.requestPermissions(this, new String[]Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.CAMERA, 1);
        return false;
    

else  //permission is automatically granted on sdk<23 upon installation
    Log.v(TAG,"Permission is granted");
    return true;



@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) 
    switch (requestCode) 
        case 0:
            boolean isPerpermissionForAllGranted = false;
            if (grantResults.length > 0 && permissions.length==grantResults.length) 
                for (int i = 0; i < permissions.length; i++)
                    if (grantResults[i] == PackageManager.PERMISSION_GRANTED)
                        isPerpermissionForAllGranted=true;
                    else
                        isPerpermissionForAllGranted=false;
                    
                

                Log.e("value", "Permission Granted, Now you can use local drive .");
             else 
                isPerpermissionForAllGranted=true;
                Log.e("value", "Permission Denied, You cannot use local drive .");
            
            if(isPerpermissionForAllGranted)
                shoro();
            
            break;
        
    

Una vez que haga eso, para dispositivos con API> = 23, obtendrá una ventana emergente en tiempo de ejecución y luego, una vez que el usuario acepte el permiso o lo rechace, su onRequestPermissionsResult se llama el método. así que aquí tendrá que manejar su verificación si el usuario otorgó el permiso a la aplicación. Si es así, puedes continuar con tu lógica.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *