Grant uri permiso para uri en EXTRA_STREAM en intención

Con FLAG_GRANT_READ_URI_PERMISSION en la intención que pasó a startActivity , podemos conceder permiso Uri si el uri se establece mediante setData . Pero si el Uri en poner en EXTRA_STREAM , el Uri no se concede antes de jeallybean .

Sé que podemos utilizar grantUriPermission seguido de un revokeUriPermission para anular el permiso concedido. Pero parece que no hay un buen lugar para ejecutar revokeUriPermission .

¿Hay alguna solución mejor? ¿O alguna sugerencia para poner revokeUriPermission ? Gracias por adelantado.

Enlace relacionado: Cómo conceder acceso temporal al proveedor de contenido personalizado mediante FLAG_GRANT_READ_URI_PERMISSION

Hice algunas lecturas al respecto. En primer lugar, EXTRA_STREAM no utiliza FLAG_GRANT_READ_URI_PERMISSION . Funciona a partir de JellyBean sólo porque debajo de la campana, llamando a startActivity() copia EXTRA_STREAM a ClipData , que está configurado para Intent y utiliza FLAG_GRANT_READ_URI_PERMISSION .

En cuanto a su pregunta, donde debe llamarse revokeUriPermission ().

Sugiero utilizar:

 private static final int REQUEST_CODE = 1; startActivityForResult(intent, REQUEST_CODE); 

en lugar de

 startActivity(intent); 

Y luego anular el siguiente método:

 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // Check which request we're responding to if (requestCode == REQUEST_CODE) { // Call revokeUriPermission here } } 

El método anterior será llamado cuando la actividad iniciada salga. Echa un vistazo a la documentación aquí

  • Solicitar permisos de ubicación de un servicio Android M
  • ¿Pueden solicitar permisos sincrónicamente en el modelo de permisos de ejecución de Android Marshmallow (API 23)?
  • ¿Cómo lidiar con la eliminación de un permiso para un receptor de difusión en Android M?
  • Los teléfonos de Redmi no piden permisos de SMS y por lo tanto no leen sms
  • Permitir permiso de tiempo de ejecución múltiple
  • Excepción grave: java.lang.SecurityException: Falta permiso para insertar credenciales
  • Android 5 (HTC) EACCES (Permiso denegado)
  • Android, encuentra todos los lugares en código para solicitar permisos
  • ¿Hay una manera de obtener el uso de la CPU de la aplicación con Android 7 (turrón)
  • Los usuarios de Android sin cámaras en sus dispositivos no pueden descargar mis aplicaciones de Google Play. ¿Por qué?
  • Nivel de protección de la firma - clarificar
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.