Para que los desarrolladores puedan crear apps que brinden una experiencia del usuario coherente, incorporamos otros tipos de servicios en primer plano junto con un nuevo conjunto de restricciones de políticas relacionadas. En este artículo, se explican los próximos requisitos de los servicios en primer plano y cómo declarar esta información en Play Console. También se detallan los requisitos para usar notificaciones de intents de pantalla completa.
Requisitos de los servicios en primer plano para Android 14
Para ayudarte a identificar qué casos de uso son apropiados para los servicios en primer plano y definir con claridad la intención del trabajo en segundo plano de tu app, Android 14 y las versiones posteriores requieren que hagas lo siguiente antes de usar un servicio en primer plano:
- Declara el tipo de servicio en primer plano en tu manifiesto. Debes hacerlo para cada servicio en primer plano que quieras usar.
- Si corresponde al tipo seleccionado, declara y solicita el permiso de servicio en primer plano que sea adecuado para cada uno de esos servicios.
En la sección Permisos para servicios en primer plano (FGS) de nuestra política de Abuso de Redes y Dispositivos, se describen detalladamente los criterios necesarios para usar servicios en primer plano. Cuando realices la actualización a Android 14, deberás declarar los tipos de servicios en primer plano.
Cómo declarar la información de los servicios en primer plano en Play Console
Cuando las apps se segmenten para Android 14 y versiones posteriores, deberás indicar los tipos de servicios en primer plano que uses en una nueva declaración en la página Contenido de la app (Política > Contenido de la app) en Play Console.
Para cada tipo de servicio en primer plano que declares, deberás hacer lo siguiente:
- Proporcionar una descripción de las funciones de la app que usa cada tipo de servicio en primer plano
- Describir el impacto en los usuarios en estos casos:
- El sistema aplaza la tarea (no comienza inmediatamente).
- El sistema interrumpe la tarea (se pausa o se reinicia).
- Incluir un vínculo a un video que demuestre cada función del servicio en primer plano. El video debe demostrar los pasos que debe seguir el usuario en tu app para activar la función.
- Elige un caso de uso específico para cada tipo de servicio en primer plano. Se proporcionará una lista predefinida de casos de uso disponibles para elegir. En el gráfico que aparece más abajo, se incluyen algunos casos de uso asignados a tipos de servicios en primer plano. Esta lista no es exhaustiva; si no aparece el tuyo, puedes ingresarlo de forma manual.
Para ciertos casos de uso, te sugerimos usar APIs alternativas. Para obtener una lista de esos casos de uso y sus APIs alternativas recomendadas, visita el sitio de Android Developers.
Nota: La siguiente lista no es exhaustiva. Para determinar si el acceso es adecuado para un servicio en primer plano (FGS), consulta la sección sobre el permiso Servicio en Primer Plano de la política correspondiente para conocer los casos de uso que no se mencionan más abajo.
Tipo de FGS | Casos de uso | Descripciones y ejemplos |
---|---|---|
TYPE_CAMERA |
Transmisión de la cámara en segundo plano | Se sigue accediendo a la cámara en segundo plano. Por ejemplo, las apps de videochat que permiten realizar varias tareas a la vez. |
TYPE_CONNECTED_DEVICE |
Transferencia de datos continua a un dispositivo externo | Se producen interacciones con dispositivos externos, incluida la transferencia de datos, que requieren una conexión de red, Bluetooth, NFC, IR o USB. Por ejemplo, wearable, monitor para bebés, auriculares o autos. |
TYPE_DATA_SYNC |
Transferencia de red: Copia de seguridad y restablecimiento | Se usa para funciones iniciadas específicamente por el usuario. Por ejemplo, seleccionar una foto específica para crear una copia de seguridad en la nube en lugar de crear una copia de seguridad automática diaria de todas las fotos nuevas. |
Transferencia de red: Carga o descarga | Por ejemplo, recuperación de datos y procesamiento del servidor. | |
Procesamiento local: Importación o exportación | Incluye la migración de archivos desde la tarjeta SD. | |
Procesamiento local: Otro | Se usa para tareas iniciadas específicamente por el usuario y no para tareas normales iniciadas por el sistema o el servidor. Por ejemplo, encriptación o cambio de tamaño. | |
TYPE_HEALTH |
Sincronización de datos de salud | Sincronización de datos de salud para apps de la categoría de fitness, que puede ser entre apps o para reunir datos recopilados a través del monitoreo integrado en el dispositivo. Por ejemplo, contador de pasos o monitor de ejercicio. |
TYPE_LOCATION |
Actualizaciones de ubicación en segundo plano: Uso compartido de ubicación iniciado por el usuario | Por ejemplo, la función Find My Friend o el seguimiento de la actividad en un vehículo. |
Actualizaciones de ubicación en segundo plano: Navegación | Por ejemplo, la navegación continua para auto en los mapas o el seguimiento de viajes para transporte privado con conductor. | |
Geovallado | 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 video en segundo plano, incluida la transmisión. |
Mostrar pantalla en pantalla | Cuando se minimiza el formato multimedia mientras se reproduce en segundo plano. | |
TYPE_MEDIA_PROJECTION |
Proyección de contenido o material multimedia, y transmisión o grabación con la API de MediaProjection | Proyecta contenido multimedia en pantallas no principales o dispositivos externos con las APIs de MediaProjection, incluida la transmisión. |
FOREGROUND_SERVICE_MEDIA_PROCESSING |
Transcodificación multimedia | Realiza operaciones que requieren mucho tiempo en los recursos multimedia, por ejemplo, convertir contenido multimedia a diferentes formatos. |
TYPE_MICROPHONE |
Acceso al audio en segundo plano | Captura entradas de audio, por ejemplo, comandos por voz para el asistente virtual sin guardar o grabación de voz. |
TYPE_PHONE_CALL |
Llamadas: APIs de telefonía celular, VoIP y telecomunicaciones | Admite distintas funciones del marcador de llamadas. |
TYPE_REMOTE_MESSAGING |
Retransmisión de comunicación de texto a otro dispositivo | Brinda asistencia sin la continuidad de las tareas de mensajería de un usuario cuando este cambia de dispositivo. Por ejemplo, permite que los usuarios envíen mensajes de texto a través de un cliente web escaneando un código QR y estableciendo una conexión entre el cliente web y el teléfono. No se limita a los SMS. |
La declaración estará disponible a partir de noviembre de 2023, y te daremos tiempo para completarla, recibir comentarios y hacer los ajustes necesarios.
Requisitos de los intents de pantalla completa para Android 14
Te sugerimos que uses notificaciones de intents 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 de uso de alta prioridad adecuados en Android 14, aplicaremos restricciones al uso del permiso USE_FULL_SCREEN_INTENT
. Limitar las notificaciones de esta manera ayuda a garantizar una mejor experiencia para los usuarios.
Si usas el permiso USE_FULL_SCREEN_INTENT
, desde el 31 de mayo de 2024 debes completar la declaración de Play Console para indicar si tu app tiene una funcionalidad principal permitida y cumple con los requisitos para que se otorgue automáticamente. A partir del 22 de enero de 2025, en el caso de las apps que se segmenten para Android 14 y versiones posteriores, solo las que tengan funciones de llamadas o alarmas tendrán este permiso habilitado de forma predeterminada. De lo contrario, deberás obtener permiso del usuario para usar el permiso USE_FULL_SCREEN_INTENT
. En el caso de las apps para las que no se haya completado la declaración o que no se hayan aprobado para la habilitación predeterminada, los desarrolladores deberán solicitar a los usuarios que otorguen el permiso en las instalaciones nuevas y degradar la experiencia de forma elegante si se rechaza.
Preguntas frecuentes
¿Qué cambiará en los servicios en primer plano con Android 14?Incorporaremos varios tipos de servicios en primer plano nuevos, y será obligatorio declararlos junto con el permiso correspondiente. Por ejemplo, si declaras el tipo de servicio en primer plano de "cámara", también debes declarar el permiso FOREGROUND_SERVICE_CAMERA. El uso en primer plano también debe satisfacer los demás requisitos que se describen en nuestra política de Abuso de Redes y Dispositivos.
Elige el tipo de servicio en primer plano que mejor se adapte al uso previsto del servicio en primer plano. Por ejemplo, una app de ejercicio que realiza un seguimiento de la actividad física de un usuario puede declarar el tipo de servicio en primer plano de "Salud". También puedes elegir múltiples tipos de servicios en primer plano, si corresponde para tu app.
Cuando las apps que se segmentan para Android 14 usan un servicio en primer plano, los desarrolladores deben declarar el permiso correspondiente que sea adecuado para ese tipo específico de servicio en primer plano. Por ejemplo, si tu app usa el tipo de servicio en primer plano de "ubicación", deberás declarar el permiso FOREGROUND_SERVICE_LOCATION. Los permisos de servicio en primer plano que hacen referencia a un tipo de servicio en primer plano específico se definen como permisos normales y se otorgan 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 otros requisitos del sistema. Algunos pueden ser permisos de tiempo de ejecución y requieren que los usuarios otorguen permiso antes de poder usarlos. Por ejemplo, si usas el tipo de servicio en primer plano de "ubicación", el usuario también debe otorgar los permisos ACCESS_COARSE_LOCATION o ACCESS_FINE_LOCATION. Consulta la documentación para obtener la información más reciente.
En algunas circunstancias, si tu caso de uso cumple con las demás características exigidas para el uso del servicio en primer plano (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 saber que se está ejecutando una tarea de servicio en primer plano en su dispositivo. Se puede considerar que los usuarios están al tanto si inician la acción por su cuenta, por ejemplo, cuando reproducen una canción o registran la actividad de correr. Tu app también puede informar a los usuarios sobre un servicio en primer plano en curso con una notificación clara y precisa en la barra de tareas del dispositivo.
Si segmentas tu app para una versión de Android anterior a Android 14, continúa usando el atributo android:foregroundServiceType
en el elemento <service> del archivo de manifiesto de tu app.
Las tareas de transferencia de datos iniciadas por el usuario están diseñadas para simplificar las transferencias de datos por la red. Tienen seguimiento de restricciones y administran los bloqueos de activación automáticamente. El tipo de servicio en primer plano de dataSync puede incluir la transferencia de datos de forma local o a través de una red, así como el procesamiento de datos a nivel local en el dispositivo. Si tu caso de uso es para transferir datos con una red (como Wi-Fi, datos móviles o Bluetooth) en respuesta a una solicitud explícita del usuario, te recomendamos usar el trabajo de transferencia de datos iniciada por el usuario en lugar del tipo de servicio en primer plano de dataSync.
En Android 14, USE_FULL_SCREEN_INTENT
cambiará de un permiso normal a un permiso de acceso especial para apps, y solo las apps cuya funcionalidad principal sea un caso de uso de prioridad alta de establecer una alarma o recibir llamadas telefónicas o videollamadas recibirán automáticamente el permiso USE_FULL_SCREEN_INTENT
. Puedes considerar la funcionalidad principal como el objetivo más importante de tu app. Sin ella, la app falla o se vuelve inutilizable. Es posible que otras apps también usen el permiso, pero solo después de que el usuario se lo haya otorgado.
Estos cambios entrarán en vigencia el 31 de mayo de 2024.
Si tu app se segmenta para Android 14 y versiones posteriores, tendrás la opción de declarar que es una app con la funcionalidad principal de intent de pantalla completa en la página Contenido de la app (Política > Contenido de la app) en Play Console. La declaración estará disponible a partir de abril de 2024, y te daremos tiempo para que la completes.