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 (Política > 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: transcodificación de contenido multimedia | Proceso de conversión de archivos multimedia, como audio y vídeo, de un formato a otro. Por ejemplo, funciones como la edición de vídeo. | |
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. |
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.
Preguntas frecuentes
¿Qué va a cambiar en relación con los servicios en primer plano en Android 14?Vamos a introducir varios tipos de servicios en primer plano nuevos y será obligatorio declarar un tipo de servicio en primer plano junto con el permiso de servicio en primer plano correspondiente. Por ejemplo, si declaras el tipo de servicio en primer plano "camera", también deberás declarar el permiso FOREGROUND_SERVICE_CAMERA. El uso en primer plano también deberá cumplir los demás requisitos que se describen en nuestra política de abuso de dispositivos y redes.
Elige el tipo de servicio en primer plano que se ajuste mejor al uso previsto del servicio en primer plano. Por ejemplo, una aplicación de ejercicio que monitorice la actividad física de un usuario puede declarar el tipo de servicio en primer plano "health". Si procede, también puedes elegir varios tipos de servicios en primer plano para tu aplicación.
Si las aplicaciones orientadas a Android 14 usan un servicio en primer plano, los desarrolladores deben declarar el permiso de servicio en primer plano que sea adecuado para ese tipo concreto de servicio en primer plano. Por ejemplo, si tu aplicación usa el tipo de servicio en primer plano "location", tendrás que declarar el permiso FOREGROUND_SERVICE_LOCATION. Los permisos de servicio en primer plano que hacen referencia a un tipo de servicio en primer plano concreto se definen como permisos normales y se conceden de forma predeterminada en el momento de la instalación. Los usuarios no pueden revocar estos permisos.
Según el tipo de servicio en primer plano, es posible que haya requisitos del sistema adicionales. Puede que algunos de estos requisitos sean permisos de ejecución y que sea necesario que los usuarios concedan dichos permisos para poder usarlos. Por ejemplo, si se usa el tipo de servicio en primer plano "location", el usuario también deberá conceder el permiso ACCESS_COARSE_LOCATION o el permiso ACCESS_FINE_LOCATION. Para obtener la información más reciente, consulta la documentación.
En algunas situaciones excepcionales, si tu caso práctico cumple las demás características necesarias para el uso de servicios en primer plano (tal como se describe en la política), puedes declarar el tipo de servicio en primer plano TYPE_SPECIAL_USE
. Todos los tipos de servicios en primer plano están sujetos a revisión.
"Perceptible para el usuario" significa que el usuario debe ser consciente de que se está ejecutando una tarea de servicio en primer plano en su dispositivo. Se puede considerar que el usuario es consciente de ello si es el propio usuario quien inicia la acción. Por ejemplo, el usuario podría reproducir una canción o hacer el seguimiento del recorrido que haga cuando salga a correr. Tu aplicación también puede informar al usuario de que se está ejecutando un servicio en primer plano mostrando una notificación clara y precisa en la barra de tareas del dispositivo.
Si orientas tu aplicación a una versión de Android anterior a Android 14, sigue usando el atributo android:foregroundServiceType
en el elemento <service> del archivo de manifiesto de tu aplicación.
Las tareas de transferencia de datos iniciadas por el usuario están diseñadas para simplificar las transferencias de datos a través de la red. Tienen seguimiento de restricciones y gestión automática de wake locks. El tipo de servicio en primer plano "dataSync" puede incluir la transferencia de datos de forma local o a través de una red. También puede incluir el tratamiento de datos de forma local en un dispositivo. Si la finalidad de tu caso práctico es transferir datos a través de una red (por ejemplo, una conexión Wi-Fi, móvil o Bluetooth) en respuesta a una solicitud explícita del usuario, te recomendamos que utilices la tarea de transferencia de datos iniciada por el usuario en lugar del tipo de servicio en primer plano "dataSync".
En Android 14, USE_FULL_SCREEN_INTENT
pasará de ser un permiso normal a ser un permiso especial de acceso a aplicaciones y solo se concederá automáticamente el permiso USE_FULL_SCREEN_INTENT
a las aplicaciones cuya función principal sea un caso práctico de alta prioridad, como configurar una alarma o recibir llamadas de teléfono o videollamadas. La función principal de tu aplicación es su finalidad fundamental. Sin ella, la aplicación no funcionaría o no se podría usar. Otras aplicaciones pueden seguir usando el permiso, pero solo si el usuario se lo concede.
Estos cambios entrarán en vigor el 31 de mayo del 2024.
Cuando tu aplicación esté orientada a Android 14 y versiones posteriores, tendrás la opción de declarar que la función principal de tu aplicación requiere usar intents de pantalla completa en la página Contenido de la aplicación (Política > Contenido de la aplicación) en Play Console. La declaración estará disponible a partir de abril del 2024 y te daremos tiempo para completarla.