Para que los desarrolladores puedan crear aplicaciones que ofrezcan una experiencia de usuario coherente, vamos a añadir más tipos de servicios en primer plano, así como un nuevo conjunto de restricciones de la política relacionadas con ellos. En este artículo se explican los nuevos requisitos de los servicios en primer plano y cómo declarar información sobre servicios en primer plano en Play Console. También se detallan los requisitos para usar notificaciones de intent de pantalla completa.
Requisitos de los servicios en primer plano para Android 14
Para ayudarte a identificar qué casos prácticos son adecuados para usar servicios en primer plano y a definir claramente la finalidad del trabajo en segundo plano de tu aplicación, Android 14 y las versiones posteriores requieren que hagas lo siguiente para poder usar un servicio en primer plano:
- Declara los tipos de servicios en primer plano en tu archivo de manifiesto. Debes hacer esto para cada servicio en primer plano que quieras usar.
- Si corresponde al tipo seleccionado, declara y solicita el permiso de servicio en primer plano adecuado para cada tipo de servicio en primer plano.
En la sección de permisos para servicios en primer plano de nuestra política de abuso de dispositivos y redes se describen de forma detallada los criterios necesarios para usar servicios en primer plano. Debes declarar los tipos de servicios en primer plano cuando actualices a Android 14.
Declarar la información sobre un servicio en primer plano en Play Console
Si tus aplicaciones están orientadas a Android 14 o versiones posteriores, tendrás que declarar todos los tipos de servicios en primer plano que uses enviando una nueva declaración en la página Contenido de la aplicación (Monitorizar y mejorar > Contenido de la aplicación) de Play Console.
Para cada tipo de servicio en primer plano que declares, deberás hacer lo siguiente:
- Proporcionar una descripción de la funcionalidad de la aplicación que utilice cada tipo de servicio en primer plano.
- Describir cómo se verá afectada la experiencia de usuario si:
- el sistema aplaza la tarea (no se inicia inmediatamente); o
- el sistema interrumpe la tarea (se pausa o se reinicia).
- Incluir un enlace a un vídeo que muestre la función de cada servicio en primer plano. El vídeo debe mostrar los pasos que el usuario debe seguir en tu aplicación para activar la función.
- Elige el caso práctico concreto de cada tipo de servicio en primer plano. Se te proporcionará una lista predefinida de casos prácticos entre los que podrás elegir. En el gráfico de abajo se indican los casos prácticos asignados a tipos de servicios en primer plano. Esta lista no es exhaustiva; si tu caso práctico no aparece en la lista, puedes añadirlo manualmente.
Para algunos casos prácticos, te recomendamos que uses APIs alternativas. Puedes consultar una lista con esos casos prácticos y las APIs alternativas recomendadas en el sitio Android para desarrolladores.
Nota: La siguiente lista no es exhaustiva. Si tu caso práctico no aparece en esta lista, consulta la política Permisos para servicios en primer plano y determina si el acceso es adecuado para usar servicios en primer plano.
Tipo de servicio en primer plano | Casos prácticos | Descripciones y ejemplos |
---|---|---|
TYPE_CAMERA |
Transmisión de la cámara en segundo plano | Sigue accediendo a la cámara en segundo plano. Por ejemplo, aplicaciones de chat de vídeo que permiten realizar varias tareas a la vez. |
TYPE_CONNECTED_DEVICE |
Transferencia continua de datos a un dispositivo externo | Interacciones con dispositivos externos, incluida la transferencia de datos, que requieren una conexión mediante Bluetooth, NFC, infrarrojos, USB o una conexión de red. Por ejemplo, wearables, monitores para bebés, auriculares o coches. |
TYPE_DATA_SYNC |
Transferencia de red: copia de seguridad y restauración | Se usa para funciones específicamente iniciadas por el usuario. Por ejemplo, seleccionar una foto concreta para crear una copia de seguridad en la nube, en lugar de crear copias de seguridad automáticas de todas las fotos nuevas a diario. |
Transferencia de red: subir o descargar | Por ejemplo, obtención de datos o procesamiento del lado del servidor. | |
Procesamiento local: importar o exportar | Incluye la migración de archivos desde la tarjeta SD. | |
Procesamiento local: otros | Se usa para tareas específicamente iniciadas por el usuario y no para tareas habituales iniciadas por el sistema o el servidor. Por ejemplo, cifrar datos o cambiar tamaños. | |
TYPE_HEALTH |
Sincronización de datos de salud | Sincronización de datos de salud en aplicaciones de la categoría de actividad física. Esta sincronización puede realizarse entre aplicaciones o para obtener datos recogidos a través del seguimiento en el dispositivo. Por ejemplo, un contador de pasos o un dispositivo monitor del ejercicio. |
TYPE_LOCATION |
Actualizaciones de la ubicación en segundo plano: función para compartir la ubicación iniciada por el usuario | Por ejemplo, una función para buscar a un amigo o la monitorización de actividad de vehículos. |
Actualizaciones de ubicación en segundo plano: navegación | Por ejemplo, seguir la navegación para coche en mapas o hacer un seguimiento de viajes compartidos. | |
Geoperimetraje | Define los parámetros, que rodean las áreas de interés. | |
TYPE_MEDIA_PLAYBACK |
Reproducción de contenido multimedia | Continúa la reproducción de audio o vídeo en segundo plano, incluida la reproducción en streaming. |
Mostrar imagen en imagen | Cuando el contenido multimedia está minimizado mientras se reproduce en segundo plano. | |
TYPE_MEDIA_PROJECTION |
Proyección, reproducción en streaming o grabación de contenido multimedia con la API MediaProjection | Proyecta contenido multimedia en una pantalla que no sea la principal o en dispositivos externos mediante las APIs MediaProjection, incluida la reproducción en streaming. |
FOREGROUND_SERVICE_MEDIA_PROCESSING |
Transcodificación multimedia | Realizar operaciones que requieren mucho tiempo en recursos multimedia, como convertir contenido multimedia a diferentes formatos. |
TYPE_MICROPHONE |
Acceso a audio en segundo plano | Recoge el audio de entrada, por ejemplo, los comandos de voz para el asistente virtual (sin guardarlos) o las grabaciones de voz. |
TYPE_PHONE_CALL |
Llamadas: APIs de telefonía, VoIP o telecomunicaciones | Admite varias funciones del marcador telefónico relacionadas con llamadas. |
TYPE_REMOTE_MESSAGING |
Enviar comunicaciones de texto a otro dispositivo | Ayuda a los usuarios a continuar sus tareas de mensajería cuando cambian de dispositivo. Por ejemplo, permitir que los usuarios envíen mensajes de texto mediante un cliente web escaneando un código QR y estableciendo una conexión entre el cliente web y el teléfono. Este caso práctico no está limitado a SMSs. |
La declaración estará disponible a partir de noviembre del 2023, y te daremos tiempo para completarla, recibir comentarios y hacer los ajustes que necesites.
Requisitos de intent de pantalla completa para Android 14
También puedes usar las notificaciones de intent de pantalla completa para compartir mensajes de alta prioridad que requieran la atención inmediata del usuario. Para asegurarnos de que este permiso se limite a los casos prácticos de alta prioridad adecuados, en Android 14 vamos a aplicar restricciones al uso del permiso USE_FULL_SCREEN_INTENT
. Limitando las notificaciones, aseguramos una mejor experiencia de usuario.
Si usas el permiso USE_FULL_SCREEN_INTENT
, deberás completar la declaración de Play Console a partir del 31 de mayo del 2024 para indicar si tu aplicación tiene una función principal permitida y si cumple los requisitos para que se le conceda automáticamente este permiso. A partir del 22 de enero del 2025, en el caso de las aplicaciones orientadas a Android 14 y versiones posteriores, solo las aplicaciones que tengan funciones de llamada o alarma podrán tener este permiso habilitado de forma predeterminada. Si no, tendrás que recibir el permiso de los usuarios para utilizar el permiso USE_FULL_SCREEN_INTENT
. En el caso de las aplicaciones que no hayan completado la declaración o que no hayan recibido el visto bueno para habilitar el permiso de forma predeterminada, los desarrolladores deberán solicitar a los usuarios que concedan el permiso en las nuevas descargas y ofrecer una degradación gradual en la aplicación si lo deniegan.