Aplicaciones Wear independientes

Una aplicación Wear OS puede funcionar independientemente de un teléfono. Los usuarios pueden completar tareas en un reloj, sin acceso a un teléfono Android o iOS.

Consulte los siguientes recursos relacionados:

  • Verificar Muestra de Aplicación Remota

Planifica tus aplicaciones

Puedes usar la función de múltiples APK (múltiples APK) de Google Play para publicar más de un APK en la misma lista de aplicaciones. Un APK de reloj debe distribuirse utilizando esa función; no incrustes un APK de reloj en un APK de teléfono. Para obtener información sobre cómo configurar tu aplicación para su distribución a través de Google Play Store, consulta Empaquetar y distribuir aplicaciones de Wear y Cómo funcionan varios APK.

Nota: Para calificar para la promoción en Google Play Store on Wear (es decir, en on watch Play Store), la aplicación debe funcionar de forma independiente desde un teléfono. Se requiere soporte para iOS y Android.

Generalmente, el nivel de API mínimo y de destino para una aplicación independiente y para Wear 2.0 es el nivel 25. El nivel mínimo del SDK puede ser 23 solo si está utilizando el mismo APK para Wear 1.0 y 2.0 (y, por lo tanto, tiene un APK Wear 1.0 integrado).

Nota: Debido a un problema de latencia que afecta a la disponibilidad de una aplicación en Wear 1.relojes x, si construyes un APK Wear 2.0 independiente y sigues teniendo un APK Wear 1.0, realiza las dos cosas siguientes:

  • Proporciona una versión independiente del APK de Wear y
  • Sigue incrustando una versión del APK de Wear en el APK de tu teléfono

Precaución: Si publicas una actualización de tu APK de teléfono de producción existente que ha eliminado un APK de Wear integrado, los usuarios de producción que actualicen el APK de teléfono antes de instalar tu APK de Wear independiente perderán su aplicación de Wear existente y sus datos. Si publicas una actualización en tu APK de teléfono de producción existente, sigue incrustando tu APK de reloj en ese APK de teléfono.

Se requieren permisos de tiempo de ejecución para las aplicaciones independientes.

Para obtener información sobre las solicitudes de red y el acceso a la red de gran ancho de banda, consulte Acceso a la red y sincronización.

Identificar una aplicación como independiente

Las aplicaciones Wear deben tener un elemento meta-data en el archivo de manifiesto de Android, como hijo del elemento <application>. El nombre del elemento meta-data es com.google.android.wearable.standalone y el valor debe ser true o false. El elemento indica si la aplicación del reloj es una aplicación independiente y, por lo tanto, no requiere una aplicación Android del lado del teléfono para funcionar. Si la configuración del elemento es true, tu app puede estar disponible en Play Store en relojes emparejados a iPhones, siempre que tus APK activos en todos los canales (por ejemplo, en el canal beta) tengan el elemento establecido en true. Si no todos los APK (alfa, beta y de producción) que se sirven actualmente a los usuarios tienen la configuración anterior, la aplicación no estará disponible cuando un usuario busque en un reloj vinculado a un iPhone.

Una aplicación de reloj puede considerarse como una de las siguientes:

  • Completamente independiente de una aplicación de teléfono
  • semiindependiente (no se requiere una aplicación de teléfono y solo proporcionaría funciones opcionales)
  • Dependiente de una aplicación de teléfono

Si una aplicación de reloj es completamente independiente o semiindependiente, se considera que está en la categoría independiente. Debe indicar esta categorización en Google Play Store configurando el valor de este elemento meta-data en true:

<application>... <meta-data android:name="com.google.android.wearable.standalone" android:value="true" />...</application>

Dado que un usuario de iPhone o un usuario de un teléfono Android que no tenga Play Store puede instalar una aplicación independiente (es decir, una aplicación independiente o semiindependiente), la aplicación watch debe utilizarse sin la aplicación phone.

Si una aplicación de reloj depende de una aplicación de teléfono, establezca el valor del elemento meta-data anterior en false. Establecer el elemento en false significa que la aplicación watch solo debe instalarse en un reloj que esté emparejado con un teléfono que tenga Play Store.

Nota: Incluso si el valor es false, la aplicación watch se puede instalar antes de instalar la aplicación phone. Por lo tanto, si una aplicación de reloj detecta que un teléfono complementario carece de una aplicación de teléfono necesaria, la aplicación de reloj debe solicitar al usuario que instale la aplicación de teléfono.

Definir una aplicación como una aplicación Wear

Debes asegurarte de que la etiqueta <uses-feature> esté definida en el archivo de manifiesto de Android de tu aplicación. Debe indicar que es una aplicación watch, por ejemplo, android:name="android.hardware.type.watch" de la siguiente manera:

<manifest>... <uses-feature android:name="android.hardware.type.watch" />...</manifest>

Código compartido y almacenamiento de datos

El código se puede compartir entre una aplicación Wear y una aplicación para teléfono. Opcionalmente, el código que es específico de un factor de forma puede estar en un módulo separado.

Por ejemplo, el código común para redes puede estar en una biblioteca compartida.

Puedes usar las API de almacenamiento estándar de Android para almacenar datos localmente, como lo harías en un teléfono. Por ejemplo, puede usar las API de SharedPreferences o la biblioteca de persistencia de sala.

Detecta la aplicación en otro dispositivo

La aplicación del reloj puede detectar si la aplicación del teléfono correspondiente está disponible y viceversa.

Su aplicación para teléfono o reloj puede usar CapabilityClient para anunciar la presencia de la aplicación en un dispositivo emparejado. Puede hacerlo de forma estática y dinámica. Cuando una aplicación se encuentra en un nodo de la red Wear de un usuario (es decir, en un teléfono, un reloj emparejado o en la nube), CapabilityClient permite que otra aplicación detecte si está instalada. Para obtener más información, consulte Capacidades de publicidad.

Si una de tus aplicaciones no puede detectar la otra, puedes habilitar a un usuario para que abra la lista de Play Store en su dispositivo remoto. Esta es una solución para aplicaciones de relojes que requieren la presencia de su aplicación de teléfono acompañante para funcionar correctamente. Un requisito previo es comprobar la presencia de Play Store en el dispositivo remoto.

Tenga en cuenta que no todos los teléfonos son compatibles con Play Store (como iPhones, etc.).

Esta sección describe las mejores prácticas para estos escenarios:

  • La aplicación de reloj independiente necesita la aplicación de teléfono
  • La aplicación de teléfono necesita la aplicación de reloj independiente

Revise el ejemplo que muestra esta funcionalidad. Para obtener más información sobre las clases que se describen a continuación, consulte la Referencia de la API de Wear. En esa referencia también se incluye información sobre la clase PhoneDeviceType, que contiene un método getPhoneDeviceType() que permite a la aplicación Wear comprobar si un teléfono complementario es un dispositivo Android o iOS.

Especifique nombres de capacidad para detectar sus aplicaciones

Para la aplicación correspondiente a cada tipo de dispositivo (reloj o teléfono), especifique una cadena única para el nombre de la capacidad en el archivo res/values/wear.xml.

Por ejemplo, en su módulo móvil, el archivo wear.xml podría incluir lo siguiente:

En su módulo wear, el archivo wear.xml incluiría un valor diferente para el nombre de la capacidad, como el siguiente:

Para obtener más información, consulte Capacidades de publicidad.

Detección de aplicaciones y apertura de una URL desde un reloj

La aplicación del reloj puede detectar si el teléfono acompañante de un usuario tiene la aplicación del teléfono:

  1. Usa CapabilityClient para comprobar si la aplicación de tu teléfono está instalada en el teléfono emparejado. Para obtener más información, consulte la muestra.
  2. Si la aplicación de teléfono no está instalada en el teléfono, utiliza el método PhoneDeviceType.getPhoneDeviceType() para comprobar el tipo de teléfono.
  3. Si se devuelve PhoneDeviceType.DEVICE_TYPE_ANDROID, el teléfono es un teléfono Android. Llama a RemoteIntent.startRemoteActivity() en el dispositivo Wear para abrir la app store en el teléfono. Utilice el URI de mercado para la aplicación de su teléfono (que puede ser diferente del URI de su teléfono). Por ejemplo, use un URI de mercado como: market://details?id=com.example.android.wearable.wear.finddevices
  4. Si se devuelve PhoneDeviceType.DEVICE_TYPE_IOS, significa que el teléfono es un teléfono iOS (sin Play Store disponible). Abra la App Store en el iPhone llamando a RemoteIntent.startRemoteActivity() en el dispositivo Wear. Puede especificar la URL de iTunes de su aplicación, por ejemplo, . En un iPhone, desde Wear OS, no puedes determinar mediante programación si la aplicación de tu teléfono está instalada. Como práctica recomendada, proporcione un mecanismo al usuario (por ejemplo, un botón) para activar manualmente la apertura de la tienda de aplicaciones.

Tenga en cuenta que con la API RemoteIntent descrita anteriormente, puede especificar que se abra cualquier URL en el teléfono desde el reloj y que no se requiera ninguna aplicación para teléfono.

Detalles para detectar el tipo de teléfono emparejado

Aquí hay un fragmento que utiliza el método getPhoneDeviceType() para verificar el tipo de teléfono al que está emparejado el reloj:

Kotlin

var phoneDeviceType: Int = PhoneDeviceType.getPhoneDeviceType(context)

Java

int phoneDeviceType = PhoneDeviceType.getPhoneDeviceType(context);

El valor devuelto por el método getPhoneDeviceType() es uno de los siguientes:

Valor de retorno Descripción
DEVICE_TYPE_ANDROID El teléfono acompañante es un dispositivo Android.
DEVICE_TYPE_IOS El teléfono acompañante es un dispositivo iOS.
DEVICE_TYPE_ERROR_UNKNOWN Se produjo un error al determinar el tipo de teléfono emparejado; se debe realizar otra comprobación más adelante.

Detección de aplicaciones a partir de un teléfono Android

Su teléfono Android puede detectar si los dispositivos Wear de un usuario tienen su aplicación de reloj:

  1. Con NodeClient, busque todos los relojes conectados al teléfono del usuario. Para obtener más información, consulte la muestra.
  2. Con CapabilityClient, compruebe cuál de los relojes del usuario tiene instalada su aplicación.
  3. Si su aplicación no está instalada en todos los relojes del usuario (compare los resultados del Paso 1 con los resultados del Paso 2), permita que el usuario abra Play Store en los dispositivos Wear restantes del teléfono a través del método RemoteIntent.startRemoteActivity(). Específicamente, usa el URI de mercado para la aplicación Wear(que puede ser diferente del URI de la aplicación de tu teléfono). Por ejemplo, use un URI de mercado como: market://details?id=com.example.android.wearable.wear.finddevices

Datos de ubicación para relojes emparejados a iPhones

Para relojes emparejados a iPhones, los desarrolladores deben usar el Proveedor de ubicación Fusionada (FLP) para obtener datos de ubicación en un reloj. Consulte Detección de la ubicación en el desgaste.

Si el teléfono acompañante está disponible, FLP utiliza el teléfono acompañante para los datos de ubicación.

Obtenga solo los datos necesarios

En general, al obtener datos de Internet, debe obtener solo los datos necesarios. De lo contrario, puede introducir latencia innecesaria, uso de memoria y uso de batería.

Cuando un reloj está conectado a través de una conexión Bluetooth LE, la aplicación puede tener acceso a un ancho de banda de solo 4 kilobytes por segundo, dependiendo del reloj. Por lo tanto, se recomiendan los siguientes pasos:

  • Audite sus solicitudes y respuestas de red para obtener datos adicionales que solo son para una aplicación de teléfono
  • Reducir las imágenes grandes antes de enviarlas a través de una red a un reloj

Para los casos en que se necesita una red de gran ancho de banda, consulte Acceso a redes de gran ancho de banda.

Ejemplos de código adicionales

El ejemplo de WearVerifyRemoteApp demuestra además el uso de las API cubiertas en esta página.

You might also like

Deja una respuesta

Tu dirección de correo electrónico no será publicada.