[Actualización: más detalles] Android 11 bloquea la aparición de aplicaciones de cámara de terceros en los intentos de selección de imágenes/vídeos

Android 11 implementa un cambio que evitará que aparezcan aplicaciones de cámara de terceros en acciones de intención de selección de imágenes/videos.

Actualización 1 (20/08/2020 a las 06:15 p.m. ET): Google ha actualizado su documentación para desarrolladores para explicar por qué las aplicaciones de cámara de terceros en Android 11 no pueden responder a acciones implícitas de intención de imagen/video. Desplácese hasta el final para obtener más información. El artículo publicado el 19 de agosto de 2020 se conserva a continuación.

Android 11 está cambiando la forma en que interactúan las aplicaciones aplicaciones de cámara de terceros en su dispositivo, lo que evitará que aparezcan en los intentos de selección de imágenes/videos. En versiones anteriores de Android, si una aplicación quiere permitir a los usuarios capturar una imagen, puede implementar la toma de fotografías dentro de la aplicación. (usando las diversas API de cámara de Android) o puede enviar una intención que puede ser manejada por una aplicación de cámara dedicada para capturar la imagen en cambio. Si una aplicación decide optar por la última opción, a los usuarios de versiones anteriores de Android se les presenta un cuadro de diálogo de desambiguación para seleccionar la aplicación de cámara de su elección para capturar la imagen. El cuadro de diálogo generalmente muestra todas las aplicaciones de cámara instaladas en el dispositivo del usuario, incluidas aplicaciones de cámara de terceros, siempre que estén escritas para responder a ciertos intentos. Sin embargo, con Android 11, el cuadro de diálogo solo incluirá aplicaciones de cámara estándar preinstaladas, a menos que los desarrolladores se dirijan específicamente a determinadas aplicaciones de cámara de terceros.

El cambio significa efectivamente que, en la mayoría de los casos, los usuarios tendrán que iniciar manualmente aplicaciones de cámara de terceros cuando quieran tomar una foto, lo que hace que las aplicaciones de cámara de terceros sean menos cómodas de usar. También hará que los usuarios culpen a los desarrolladores de aplicaciones de cámara de terceros cuando el usuario descubra que su aplicación de cámara favorita ya no se puede iniciar desde otras aplicaciones. Google está implementando este cambio en Android 11 al evitar que las aplicaciones de cámara de terceros respondan a las siguientes acciones de intención:

  • android.media.action.VIDEO_CAPTURE
  • android.media.action.IMAGE_CAPTURE
  • android.media.action.IMAGE_CAPTURE_SECURE

Google dice que este cambio se implementó en Android 11 para proteger la privacidad y seguridad de sus usuarios. La compañía no explica cómo, pero es probable que algunas aplicaciones maliciosas se hayan hecho pasar por aplicaciones de cámara para acceder a las fotos de un usuario. Sin embargo, la compañía menciona una solución alternativa para los desarrolladores que permitirá que las aplicaciones sigan ejecutando aplicaciones de cámara de terceros. La solución alternativa esencialmente requiere que los desarrolladores se dirijan a una aplicación de terceros específica de su elección al enviar una intención. Por ejemplo, el desarrollador de una aplicación de escáner de documentos puede enviar una intención explícita para iniciarla. Cámara Adobe Photoshop en lugar de enviar una intención implícita de abrir el selector de cámara. Android 11 hace que los desarrolladores ni siquiera puedan consultar la lista de aplicaciones que pueden responder a las 3 mencionadas anteriormente acciones de intención, lo que significa que un desarrollador tendrá que saber de antemano qué aplicaciones de cámara de terceros desea apoyo.

Fuente: Artículos comunes, Desarrolladores de Android

A través de: Reddit

Gracias al miembro senior de XDA AndroidDesarrolladorLB por la propina!

Actualización 1: Google dice que este cambio es para mantener la privacidad

Google ha actualizado su página de cambios de comportamiento de Android 11 con nueva información sobre "Las acciones de intención multimedia requieren la cámara predeterminada del sistema."sección (a través de El borde). El cambio, explica Google, está "diseñado para garantizar que los metadatos de ubicación EXIF ​​se procesen correctamente en función de los permisos de ubicación definidos dentro del aplicación que envía la intención". Básicamente, a Google le preocupa que las aplicaciones a las que aún no se les ha otorgado acceso explícito a la ubicación estén haciendo que los usuarios abran aplicaciones de cámara que tener Se le ha concedido acceso a la ubicación y dado que la foto resultante que se pasa a la aplicación puede contener una ubicación EXIF. metadatos, entonces la aplicación de llamadas puede evitar la solicitud de acceso a la ubicación leyendo los datos de ubicación del foto. Si una aplicación intenta hacer esto en Android 11, deberá declarar ACCESS_MEDIA_LOCATION así como ACCESS_COARSE_LOCATION o ACCESS_FINE_LOCATION permisos para leer metadatos de ubicación EXIF. (De nota, Google cerró otra laguna de acceso a la ubicación en Android 10 al requerir que las aplicaciones soliciten el ACCESS_MEDIA_LOCATION permiso si una aplicación intenta recuperar metadatos EXIF ​​no redactados de las fotos).

Si bien este cambio de comportamiento afectará la capacidad de las aplicaciones para iniciar la aplicación de cámara predeterminada definida por el usuario debido a la antigüedad y el uso frecuente de 3 son las acciones de intención antes mencionadas, Google señala que el cambio no afecta todas las acciones de intención que pueden iniciar la aplicación de cámara predeterminada definida por el usuario, como como: android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA, android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE, o android.provider.MediaStore.INTENT_ACTION_VIDEO_CAMERA. Sin embargo, estos intents no tienen el mismo propósito, ya que solo inician la aplicación de cámara predeterminada en lugar de permitir que se envíe una imagen a la aplicación de llamada.