Cómo crear apps de Wear OS para China

Cuando crees apps de Wear OS para China, tendrás que tener en cuenta los teléfonos que no vienen con los Servicios de Google Play preinstalados. En esta página, se explican los cambios comunes que es posible que los desarrolladores internacionales deban adoptar para el mercado chino.

Usa la versión correcta de los Servicios de Google Play

La versión 10.2.0 de los Servicios de Google Play proporciona compatibilidad a nivel mundial con la API de proveedor de ubicación combinada y la API de Data Layer. Los desarrolladores deben contar con esta versión si usan estas API. En otros casos, esta dependencia es opcional.

Si bien los Servicios de Google Play ahora incluyen nuevas API para las apps de Wear, las apps de Wear OS para China deben seguir usando las API relacionadas con GoogleApiClient. Consulta Cómo acceder a la API de wearables.

API de proveedor de ubicación combinada

Si usas la API de proveedor de ubicación combinada, debes incluir la siguiente dependencia en el archivo build.gradle de tu módulo de Wear:

    dependencies {
        ...
        compile 'com.google.android.gms:play-services-location:10.2.0'
    }
    

API de Data Layer

Importante: A partir de Wear 2.0, ya no se recomienda el uso de la API de Data Layer, ya que las apps ahora pueden acceder a Internet directamente, lo que simplifica el desarrollo de código. Además, los dispositivos Wear sincronizados con iOS no admiten la API de Data Layer.

Si tu app usa la API de Data Layer, debes agregar la siguiente línea al archivo build.gradle de tu módulo de Wear. Esta línea requiere que se use la versión 10.2.0 de la biblioteca cliente:

    dependencies {
        ...

        compile 'com.google.android.gms:play-services-wearable:10.2.0'

        ...

    }
    

Además, debes agregar la siguiente línea al archivo build.gradle de tu módulo para dispositivos móviles. Reemplaza la dependencia de los Servicios de Google Play por una referencia a la versión 10.2.0.

    dependencies {
        ...

        compile 'com.google.android.gms:play-services-wearable:10.2.0'

    }
    

Autenticación

Antes de implementar la autenticación, revisa los casos prácticos para ver si es realmente necesaria. Por ejemplo, en el caso de una app que brinda el pronóstico del tiempo, es probable que no se necesite acceder y, por consiguiente, no se requiere autenticación.

En caso de que sí se requiera, te recomendamos que uses OAuth 2.0, o bien la entrada en el dispositivo como medida de resguardo. De manera alternativa, puedes pasar un token de seguridad mediante Data Layer. Sin embargo, no se recomienda su uso, ya que no es compatible con dispositivos Wear OS sincronizados con dispositivos iOS.

Notificaciones conectadas

Las notificaciones conectadas no se admiten en China. Las notificaciones de teléfono se conectan con Wear OS únicamente si el dispositivo Wear está conectado al teléfono mediante Bluetooth.

Compatibilidad con la ubicación y la asignación de coordenadas

Debes usar el elemento FusedLocationProvider a fin de detectar la ubicación del usuario en China, de la misma manera que lo haces para el resto del mundo. De esta manera, se garantiza que tu app tenga en cuenta la información más precisa independientemente del hardware de reloj y de la plataforma de teléfono a la que esté sincronizado el reloj. Además, tendrás los beneficios de la optimización de batería integrada en la plataforma de Wear OS.

Cuando integras FusedLocationProvider con los SDK de mapa de terceros, debes tener en cuenta la compatibilidad de coordenadas entre los proveedores. FusedLocationProvider informa la ubicación de acuerdo con el estándar WGS84. Asegúrate de convertir los sistemas de coordenadas, según corresponda.

Compatibilidad con Google Fit

En China se admiten el contador de pasos acumulados, los minutos de actividad y los puntos cardio de Google Fit, con un historial de hasta siete días. Es posible acceder sin proporcionar credenciales de usuario.

Compatibilidad con el emulador

Puedes usar la versión china de la imagen del emulador de Wear OS para probar tu app, ya que es compatible con Android Studio 3.0 y versiones posteriores.

Para probar tus apps en la versión china del emulador, haz lo siguiente:

  1. Asegúrate de tener instalada la versión 26.1.2 del emulador de Android.
  2. Descarga Wear OS para imágenes de China desde el administrador de SDK.
  3. Elige la opción para usar Wear OS con la imagen de China cuando crees un perfil de AVD.
  4. Ejecuta Wear OS para el emulador de China a fin de comenzar con el desarrollo.

Inicia un canal de Bluetooth y Wi-Fi específico de la app

Wear OS enruta las solicitudes de red automáticamente. En la mayoría de los casos, no hay ningún requisito para que la app abra un canal de Bluetooth y Wi-Fi específico de la app.

Si una app solicita un canal de Bluetooth y Wi-Fi específico de la app en China, la solicitud fallará silenciosamente. Aparecerá un diálogo emergente en el que se solicitará la confirmación del usuario. Al confirmar, se abrirá el canal. Este proceso ocurre cada vez que se llama a BluetoothAdapter.enable() o WifiManager.setEnabled(true) (es decir, no solo en el primer uso).

Nota: Para que una app orientada a Android 10 (API nivel 29) llame a WifiManager.setEnabled(), debe ser una app del sistema o un controlador de política de dispositivos (DPC).

Modo de revisión de permisos

En China, los dispositivos con Wear OS para China se ejecutan en Permission Review Mode, lo que impone algunos límites en el uso de las apps con un elemento targetApiLevel cuyo nivel es inferior a 23:

  • Si bien los permisos se otorgan durante la instalación, cuando se inicia por primera vez una app con un targetApiLevel, aparece un diálogo en el que se le solicita al usuario que confirme los permisos para esta app.
  • Ningún componente de la app (como los receptores de emisión, los servicios, las actividades, etc.) responderá a los eventos correspondientes antes de que la app se use por primera vez.

Como resultado, te recomendamos usar el targetApiLevel 23 o una versión posterior, y adoptar las prácticas recomendadas de permisos durante el tiempo de ejecución.

Usa otras API de los Servicios de Google Play

Si tu app usa las API de los Servicios de Google Play en lugar de la API de wearable, entonces debe verificar si estas API están disponibles para usar durante el tiempo de ejecución y responder según corresponda. Existen dos formas de verificar la disponibilidad de las API de los Servicios de Google Play:

  1. Usa una instancia de GoogleApiClient independiente para conectarte a otras API. Esta interfaz contiene devoluciones de llamada que se usan para alertar a tu app sobre el éxito o la falla de la conexión. En caso de que la conexión falle, ConnectionResult mostrará API_UNAVAILABLE. Para aprender a controlar las fallas de conexión, consulta Cómo acceder a las API de Google.
  2. Usa el método addApiIfAvailable() de GoogleApiClient.Builder para conectarte a las API requeridas. Una vez activada la devolución de llamada onConnected(), usa el método hasConnectedApi() para asegurarte de que cada una de las API solicitadas esté conectada correctamente.

Cómo distribuir apps en China

A fin de llegar de manera eficiente a los usuarios de Wear OS para China, puedes distribuir tu app mediante tiendas de apps de Wear OS de terceros: