Cómo proporcionar actividades de configuración en Wear OS

Algunas caras de reloj admiten parámetros de configuración para permitir que los usuarios personalicen el aspecto y el comportamiento de estas. Por ejemplo, algunas permiten que los usuarios seleccionen un color de fondo personalizado, y las caras de reloj que indican la hora para dos zonas horarias diferentes pueden permitirles seleccionar las zonas horarias que les interesan.

Consulta los siguientes recursos relacionados:

Las caras de reloj que admiten parámetros de configuración pueden permitir que los usuarios personalicen una cara de reloj usando una actividad en la app para wearables, una actividad en la app portátil o ambas. Los usuarios pueden iniciar la actividad de configuración de wearables en el dispositivo wearable. También pueden iniciar la actividad de configuración complementaria desde la app portátil si está instalada.

Nota: En Wear 1.x, cuando el usuario instala una app portátil que contiene una app wearable, la app wearable se instala automáticamente en el reloj. En Wear 2.0, una app wearable nunca se instalará de manera automática en el reloj. Además, en Wear 2.0 no es necesaria una app para dispositivos portátiles. Si hubiera una y quieres usarla, debes instalarla por separado.

La cara de reloj digital de la cara de reloj de ejemplo demuestra cómo implementar actividades de configuración portátiles y wearables, y cómo actualizar una cara de reloj en respuesta a los cambios en la configuración.

Cómo especificar un intent para actividades de configuración

Si tu cara de reloj incluye actividades de configuración, agrega las siguientes entradas de metadatos a la declaración del servicio en el archivo de manifiesto de la app wearable:

    <service
        android:name=".DigitalWatchFaceService" ... />
        <!-- companion configuration activity -->
        <meta-data
            android:name=
               "com.google.android.wearable.watchface.companionConfigurationAction"
            android:value=
               "com.example.android.wearable.watchface.CONFIG_DIGITAL" />
        <!-- wearable configuration activity -->
        <meta-data
            android:name=
               "com.google.android.wearable.watchface.wearableConfigurationAction"
            android:value=
               "com.example.android.wearable.watchface.CONFIG_DIGITAL" />
        ...
    </service>
    

Proporciona valores para esas entradas que estén precedidos por el nombre del paquete de tu app. Las actividades de configuración registran filtros de intents y el sistema activa este intent cuando los usuarios quieren configurar tu cara de reloj.

Si tu cara de reloj solo incluye una actividad de configuración complementaria o para wearables, solo debes incluir la entrada de metadatos correspondiente del ejemplo anterior.

Cómo crear una actividad de configuración de wearables

Las actividades de configuración de wearables proporcionan un conjunto limitado de opciones de personalización para una cara de reloj, ya que resulta complicado navegar menús complejos en pantallas más pequeñas. Tu actividad de configuración de wearables debe proporcionar opciones binarias y pocas alternativas de selección para personalizar los aspectos principales de tu cara de reloj.

Para crear una actividad de configuración de wearables, agrega una nueva actividad a tu módulo de app para wearables y declara el siguiente filtro de intents en el archivo de manifiesto de la app para wearables:

    <activity
        android:name=".DigitalWatchFaceWearableConfigActivity"
        android:label="@string/digital_config_name">
        <intent-filter>
            <action android:name=
                "com.example.android.wearable.watchface.CONFIG_DIGITAL" />
            <category android:name=
            "com.google.android.wearable.watchface.category.WEARABLE_CONFIGURATION" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    

El nombre de la acción en este filtro de intents debe coincidir con el nombre del intent que definiste en Cómo especificar un intent para actividades de configuración.

En tu actividad de configuración, compila una IU que proporcione opciones para que los usuarios personalicen tu cara de reloj. Cuando los usuarios realicen una selección, usa la API de nivel de datos de wearables para comunicar el cambio en la configuración de la actividad de la cara de reloj.

Para obtener más detalles, consulta las clases DigitalWatchFaceWearableConfigActivity y DigitalWatchFaceUtil en la cara de reloj de ejemplo.

Cómo crear una actividad de configuración complementaria

Las actividades de configuración complementarias permiten que los usuarios accedan al conjunto completo de opciones de configuración para una cara de reloj, ya que es más fácil interactuar con menús complejos en un dispositivo portátil con pantalla más grande. Por ejemplo, una actividad de configuración en un dispositivo portátil te permite presentar a los usuarios selectores de color elaborados para escoger el color de fondo de una cara de reloj.

Nota: Solo se pueden escribir actividades de configuración para dispositivos portátiles con Android.

Para crear una actividad de configuración complementaria, agrega una actividad nueva al módulo de tu app para dispositivos portátiles y declara el siguiente filtro de intents en el archivo de manifiesto de la app:

    <activity
        android:name=".DigitalWatchFaceCompanionConfigActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name=
                "com.example.android.wearable.watchface.CONFIG_DIGITAL" />
            <category android:name=
            "com.google.android.wearable.watchface.category.COMPANION_CONFIGURATION" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    

En tu actividad de configuración, compila una IU que proporcione opciones para personalizar todos los elementos configurables de tu cara de reloj. Cuando los usuarios realicen una selección, usa la API de nivel de datos de wearables para comunicar el cambio en la configuración de la actividad de la cara de reloj.

Para obtener más información, consulta la clase DigitalWatchFaceCompanionConfigActivity en el ejemplo de cara de reloj.

Cómo crear un servicio de objetos de escucha en la app para wearables

Para recibir parámetros de configuración actualizados de las actividades de configuración, crea un servicio que implemente la interfaz WearableListenerService de la API de nivel de datos de wearables en tu app para wearables. La implementación de tu cara de reloj puede rediseñar la cara de reloj cuando se modifiquen los parámetros de configuración.

Para obtener más detalles, consulta las clases DigitalWatchFaceConfigListenerService y DigitalWatchFaceService en el ejemplo de cara de reloj.