Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Modelo de permiso de Android Marshmallow en OS 4.0 READ_EXTERNAL_STORAGE permiso no siempre concedido

Tengo un problema al ejecutar mi aplicación en Android OS 4.0 y solicitar permiso de READ_EXTERNAL_STORAGE con:

 ActivityCompat.requestPermissions(ctx, requestedPermissions, requestCode); 

Siempre llego a la devolución de llamada

 public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { grantResults != PackageManager.PERMISSION_GRANTED 

Comprobar el permiso con ActivityCompat.checkSelfPermission siempre está devolviendo permissionDenied .

Funciona bien en OS 6.0 solicitando permiso con el diálogo del sistema. Android OS 4.x exceptuado el 4.0 el permiso siempre se concede. OS 4.0 los demás permisos (Cámara, Calendario, Contacto, Teléfono) se comportan bien excepto el READ_EXTERNAL_STORAGE causa este problema.

Tal vez un problema OS?

  • ¿Por qué necesito el permiso WRITE_EXTERNAL_STORAGE con getExternalCacheDir () en Android Lollipop?
  • Falta de privilegios para acceder al servicio de cámara en Android 6.0
  • ¿Cuándo debo usar el permiso ACCESS_COARSE_LOCATION?
  • ¿Cuál es la diferencia entre ACCESS_NETWORK_STATE e INTERNET?
  • Intención FLAG_GRANT_READ_URI_PERMISSION Uso de FileProvider en Gingerbread
  • El permiso personalizado de Android falla según el pedido de instalación de la aplicación
  • ¿Cuándo utilizar el permiso READ_GSERVICES?
  • Restricción de Android Broadcast Receiver de una aplicación específica
  • One Solution collect form web for “Modelo de permiso de Android Marshmallow en OS 4.0 READ_EXTERNAL_STORAGE permiso no siempre concedido”

    Lo que ActivityCompat.requestPermissions() hace es:

    • Llame a través de requestPermissions() real si está en Android 6.0 o superior, o

    • PackageManager para ver si tiene los permisos solicitados en las versiones anteriores de Android

    El problema con READ_EXTERNAL_STORAGE es que se agregó en API Nivel 16 (Android 4.1). No se puede mantener en versiones anteriores de Android que eso, por la sencilla razón de que no existía.

    Ya sea:

    • Establezca su minSdkVersion en 16 o

    • Ponga su propia lógica en para manejar este caso, reconociendo que READ_EXTERNAL_STORAGE es irrelevante antes de API Nivel 16

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.