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
- Identificar una aplicación como independiente
- Definir una aplicación como una aplicación Wear
- Código compartido y almacenamiento de datos
- Detecta la aplicación en otro dispositivo
- Especifique nombres de capacidad para detectar sus aplicaciones
- Detección de aplicaciones y apertura de una URL desde un reloj
- Detalles para detectar el tipo de teléfono emparejado
- Kotlin
- Java
- Detección de aplicaciones a partir de un teléfono Android
- Datos de ubicación para relojes emparejados a iPhones
- Obtenga solo los datos necesarios
- Ejemplos de código adicionales
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:
- 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. - 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. - Si se devuelve
PhoneDeviceType.DEVICE_TYPE_ANDROID
, el teléfono es un teléfono Android. Llama aRemoteIntent.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
- 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 aRemoteIntent.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:
- Con
NodeClient
, busque todos los relojes conectados al teléfono del usuario. Para obtener más información, consulte la muestra. - Con
CapabilityClient
, compruebe cuál de los relojes del usuario tiene instalada su aplicación. - 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.