Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MULTIMEDIA
Temas avanzados de Android
Para proporcionar una experiencia del usuario más enriquecida, muchas apps
permiten que los usuarios contribuyan y accedan al contenido multimedia
disponible en un volumen de almacenamiento externo. El framework proporciona
un índice optimizado para colecciones de contenido multimedia, llamado tienda
de contenido multimedia, que permite recuperar y actualizar esos archivos con
más facilidad. Incluso después de desinstalar la app, los archivos permanecen
en el dispositivo del usuario.
1
Temas avanzados de Android
2
Temas avanzados de Android
Para acceder a los archivos que crearon otras apps, se deben cumplir las
siguientes condiciones:
3
Temas avanzados de Android
Continúa
4
Temas avanzados de Android
Cuando realicemos una consulta de este tipo en nuestra app, hay que tener en
cuenta lo siguiente:
5
Temas avanzados de Android
Si la app muestra varios archivos multimedia y solicita que el usuario elija uno de
estos, es más eficiente cargar versiones de vista previa (o miniaturas) de los
archivos, en lugar de los archivos en sí.
Para cargar la miniatura de un archivo multimedia determinado, usa
“loadThumbnail()” y pasa el tamaño de la miniatura que desees cargar, como se
muestra en el siguiente fragmento de código:
Transmisión de archivos:
Para abrir un archivo multimedia con una transmisión de archivos, usa una
lógica similar a la que se muestra en el siguiente fragmento de código:
6
Temas avanzados de Android
Para ayudar a que tu app funcione sin problemas con las bibliotecas
multimedia de terceros, Android 11 (nivel de API 30) y las versiones
posteriores te permiten usar API distintas de la API de MediaStore para
acceder a archivos multimedia desde el almacenamiento compartido. En
su lugar, puedes acceder a los archivos multimedia directamente con
cualquiera de las siguientes API:
• La API de File.
• Bibliotecas nativas, como “fopen()”.
Si no tienes ningún permiso relacionado con el almacenamiento, puedes
acceder a los archivos del directorio específico de la app y a los archivos
multimedia atribuidos a la app; para ello, usa la API de “File”.
Si nuestra app intenta acceder a un archivo con la API de “File” y no tiene
los permisos necesarios, se genera una “FileNotFoundException”.
7
Temas avanzados de Android
8
Temas avanzados de Android
9
Temas avanzados de Android
Si la app realiza operaciones que pueden tardar mucho tiempo, como escribir en
archivos multimedia, resulta práctico contar con acceso exclusivo al archivo
mientras se procesa. En dispositivos que ejecutan Android 10 o versiones
posteriores, la app puede obtener ese acceso exclusivo si establece el valor de
la marca “IS_PENDING” en 1. Solo tunuestra app podrá ver el archivo hasta que
cambie nuevamente el valor de “IS_PENDING” a 0.
10
Temas avanzados de Android
11
Temas avanzados de Android
12
Temas avanzados de Android
Completaremos este proceso cada vez que nuestra app necesite modificar un
archivo multimedia que no creó.
13
Temas avanzados de Android
14
Temas avanzados de Android
• createWriteRequest()
• createFavoriteRequest()
• createTrashRequest()
• createDeleteRequest()
15
Temas avanzados de Android
Los usuarios pueden confiar en que una app determinada llevará a cabo la
administración del contenido multimedia, por ejemplo, realizará, con frecuencia,
cambios en los archivos multimedia. Si la app se orienta a Android 11 o versiones
posteriores, y no es la galería predeterminada del dispositivo, deberemos
mostrarle un diálogo de confirmación al usuario cada vez que nuestra app intente
modificar o borrar un archivo.
Si nuestra app se orienta a Android 12 (nivel de API 31) o una versión posterior,
podremos solicitar que los usuarios otorguen acceso a nuestra app al permiso
especial de Administración de medios. Este permiso permite que nuestra app
realice una de las siguientes acciones sin necesidad de solicitarle al usuario cada
operación de archivo:
16
Temas avanzados de Android
17