Proveedor de contenido grant uri permission

Busqué y leí los archivos del desarrollador android, pero no encontré ninguna respuesta satisfactoria para el proveedor de contenido conceder permiso de uri. ¿Puede alguien explicar más detallado y más simple. Mis preguntas son: ¿Qué grant uri está usando para? ¿Cuáles son las diferencias entre conceder uri permiso verdadero y falso Cuando debemos usar verdadero? Cuando es falso Y se aprecian más detalles.

¿Para qué se está utilizando uri?

La función "conceder permisos Uri " le permite tener un ContentProvider normalmente inaccesible por terceros, sin embargo, permitir de forma selectiva el acceso a valores Uri individuales a aplicaciones de terceros individuales durante un corto período de tiempo (por ejemplo, el tiempo suficiente para ver el PDF Que el proveedor atiende).

¿Cuáles son las diferencias entre conceder uri permiso verdadero y falso

android:grantUriPermissions="true" indica que su código Java puede usar FLAG_GRANT_READ_URI_PERMISSION y FLAG_GRANT_WRITE_URI_PERMISSION para cualquier Uri servido por ese ContentProvider .

android:grantUriPermissions="false" indica que sólo los valores Uri especificados por los elementos <grant-uri-permission> se pueden utilizar con FLAG_GRANT_READ_URI_PERMISSION y FLAG_GRANT_WRITE_URI_PERMISSION .

Digamos que necesitas enviar algún archivo que esté en el directorio de caché de la aplicación.

Ninguna otra aplicación puede acceder a ese archivo, a menos que especifique que otras aplicaciones pueden acceder al contenido de la aplicación. Para ello, crea el proveedor de contenido y, digamos, todos los uri en el contenido del formulario: //com.su.app/file usted "redirige" al directorio de caché de la aplicación.

Algún código:

 File f = ...; // Some local file. Uri uri = Uri.parse("content://com.your.app/" + f.getName()); Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_SUBJECT, "Subject"); intent.putExtra(Intent.EXTRA_TEXT, "Body"); intent.putExtra(Intent.EXTRA_STREAM, uri); // You only can add flag FLAG_GRANT_READ_URI_PERMISSION if your app has // android:grantUriPermissions="true" in manifest or see quote below. intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); startActivity(Intent.createChooser(intent, "Send Email")); 

Como CommonsWare dijo:

Android: grantUriPermissions = "false" indica que sólo los valores Uri especificados por los elementos <grant-uri-permission> se pueden utilizar con FLAG_GRANT_READ_URI_PERMISSION y FLAG_GRANT_WRITE_URI_PERMISSION.

  • Cómo convertir una cadena en un android.net.Uri
  • Actividad de captura de cámara Android devuelve null Uri
  • ¿Por qué ImageView.setImageURI () funcionaría en Android 2.2 pero no en 2.1?
  • Error al crear objeto Uri
  • Buscar una categoría específica Play Store
  • Convierta java.net.URI a android.net.Uri
  • Cómo recuperar ImageUri de un ImageView?
  • ¿Es posible usar Uri.Builder y no tener la parte "//"?
  • Obtener la lista de contactos y el estado de skype en android
  • ¿Cómo puedo verificar que la imagen URI es válida en Android?
  • ¿Existe un esquema URI universal para la aplicación de Facebook, que funciona en todos los dispositivos móviles?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.