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.
- Obtener imagen Uri en onActivityResult después de tomar la foto?
- Conversión de Uri en String
- ¿Cómo comprobar si el recurso apuntado por Uri está disponible?
- Cómo utilizar la actividad no principal para capturar url personalizado en el juego de la unidad?
- Android: obtener un recurso de imagen en Uri: IllegalArgumentException
- Obtener el historial del navegador y el resultado de la búsqueda en android
- Android Cómo obtener información de ID de una sola canción desde un URI conocido
- Abrir en la intención del navegador cuando el enlace también redirecciona con deep-linking
- UriMatcher no coincidirá con uri
- ¿El método getoutputmediafileuri no es accesible?
- ENOENT (ningún archivo o directorio) cuando hay un archivo allí
- Una respuesta final sobre cómo obtener datos Exif de URI
- Uri regresó después de ACTION_GET_CONTENT de la galería no está trabajando en setImageURI () de ImageView
¿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.
- No se puede determinar la raíz de almacenamiento de datos de construcción para el error de proyecto IntelliJ Android
- Gplus autenticación de usuario y obtener la ubicación del usuario en la misma actividad