Actualiza la versión del SDK de destino de tu app para Wear OS 4

Después de actualizar tu app para prepararla para Wear OS 4, puedes mejorar aún más la compatibilidad de tu app con esta versión de Wear OS si la orientas a Android 13 (nivel de API 33).

Si actualizas la versión del SDK de destino, controla los cambios de comportamiento del sistema que se aplican a las apps segmentadas a Android 12 o versiones posteriores, así como también a las segmentadas a Android 13 o versiones posteriores. En particular, ten cuenta los cambios en los permisos y en el comportamiento de los componentes y la navegación de la app que se describen más adelante en esta guía.

Cómo actualizar tu archivo de compilación

Para actualizar la versión del SDK de destino, abre el archivo build.gradle o build.gradle.kts a nivel del módulo y actualízalos con valores para Android 13.

La manera en que formateas los valores en tu archivo de compilación depende de la versión del complemento de Android para Gradle (AGP) que usas.

AGP 7.0.0 o versiones posteriores

Si usas AGP 7.0.0 o una versión posterior, actualiza el archivo build.gradle o build.gradle.kts de tu app con los siguientes valores para Android 13:

Groovy

android {
    compileSdk 33
    ...
    defaultConfig {
        targetSdk 33
    }
}

Kotlin

android {
    compileSdk = 33
    ...
    defaultConfig {
        targetSdk = 33
    }
}

AGP 4.2.0 o versiones anteriores

Si usas AGP 4.2.0 o versiones anteriores, actualiza el archivo build.gradle o build.gradle.kts de tu app con los siguientes valores para Android 13:

Groovy

android {
    compileSdkVersion "33"
    ...
    defaultConfig {
        targetSdkVersion "33"
    }
}

Kotlin

android {
    compileSdkVersion = "33"
    ...
    defaultConfig {
        targetSdkVersion = "33"
    }
}

Cambios en los permisos

En esta sección, se enumeran varios cambios en los permisos que afectan a las apps después de que se segmentan a Android 13.

Permiso de sensores corporales en segundo plano

Para obtener información de sensores corporales comunes, como la frecuencia cardíaca, en segundo plano, solicita el permiso BODY_SENSORS_BACKGROUND.

Obtén más información en la guía para solicitar acceso en segundo plano a los datos de sensores corporales.

Permiso de alarmas exactas

Para usar alarmas con una hora precisa, también conocidas comoalarmas exactas, debes declarar el permiso USE_EXACT_ALARM o SCHEDULE_EXACT_ALARM.

A menos que las funciones principales de tu app dependan de alarmas exactas, por ejemplo, una app de alarma o de calendario, usa alarmas inexactas. La mayoría de las apps pueden programar tareas y eventos con alarmas inexactas.

Obtén más información para configurar una alarma exacta.

Permisos de contenido multimedia detallados

Si tu app necesita acceder a archivos multimedia que crearon otras apps, debes solicitar permisos de contenido multimedia detallados, que comiencen con READ_MEDIA_*, en lugar del permiso READ_EXTERNAL_STORAGE. Si a tu app se le otorgó el permiso READ_EXTERNAL_STORAGE con anterioridad, el sistema otorgará, automáticamente, los permisos detallados y necesarios de contenido multimedia.

Obtén más información sobre los permisos de contenido multimedia detallados.

Cambios en los componentes y la navegación de la app

En esta sección, se enumeran varios cambios en los componentes y la navegación de la app que afectan a las apps después de que se segmentan a Android 13.

Requisitos para la exportación de componentes de apps

Si la app contiene actividades, servicios o receptores de emisión que usan filtros de intents, debes declarar explícitamente el atributo android:exported para esos componentes de la app.

Obtén más información sobre la exportación de componentes más segura.

Especifica la mutabilidad de los intents pendientes

Debes especificar si cada objeto PendingIntent de tu app es mutable o inmutable. En la mayoría de los casos, usa objetos PendingIntent inmutables para proteger la integridad de los datos dentro del intent.

Obtén más información para especificar la mutabilidad de los intents pendientes.

Restricciones para el inicio del servicio en primer plano

En la mayoría de los casos, la app no puede iniciar servicios en primer plano mientras se ejecuta en segundo plano.

Obtén más información sobre las restricciones para iniciar un servicio en primer plano desde el segundo plano.

Restricciones del trampolín de notificaciones

Después de que el usuario interactúe con una notificación, no podrás llamar a startActivity() dentro de un servicio o receptor de emisión. Este componente intersticial de la app, cuya única capability es iniciar una actividad, se conoce como trampolín de notificaciones.

Obtén más información sobre las restricciones del trampolín de notificaciones.