Android Wear + Wearable ChannelApi openChannel no se abre con nodo remoto?
Al abrir un canal a través de un nodo local :
Wearable.NodeApi.getLocalNode(googleApiClient)
… el onChannelOpened Listener se activa correctamente .
- Envío de datos de la aplicación para móviles a Android Retraso de uso
- Emulador Android Wear y modo ambiente
- Emulador de emparejamiento de par con emulador de Android
- Android Wear detecta "Mute"
- El resultado Wearable.NodeApi.getConnectedNodes nunca se llama
Sin embargo, al abrir un canal a través de un nodo remoto :
Wearable.NodeApi.getConnectedNodes(googleApiClient)
… el OnChannelOpened Listener nunca se dispara y, posteriormente, nunca puede compartir archivos a través de este canal.
Sé que openChannel se requiere para ambos dispositivos, pero los oyentes del canal están encendiendo solamente en el dispositivo que lo abrió localmente … ¿Cómo el dispositivo alejado envía o recibe archivos también si no sabe que está conectado? Aquí está el desglose entre los dos dispositivos
Usable:
- Guardar archivo local – con éxito
- .openChannel con el nodo local (usable) – exitoso
- .sendFile to channel – exitoso
Manejo retenido:
- .openChannel con nodo remoto (usable) – falla
- .receiveFile from channel – fall
- Mostrar archivo – fallar
- WearableListenerService sólo se inicia después de instalar la aplicación - entonces nunca más
- ¿Es posible obtener datos PPG (Photoplethysmogram) de un reloj inteligente a través de Android?
- Instalar APK firmado no instala la aplicación en Android Wear
- Androide-desgaste que encaja el desgaste viejo (en caché) apk en el lanzamiento móvil apk
- No se puede ejecutar la aplicación inicial de Android Wear Hello World en eclipse
- ¿Cómo se agrega un módulo de reloj a un proyecto de Android Studio existente?
- WearableListenerService onMessageReceived no se llama al dispositivo
- Android Wear: Programe la pantalla de despertador
Resolución de problemas
Aquí hay algunas cosas para comprobar:
-
¿Está recibiendo eventos de mensajes o actualizaciones de elementos de datos? Si llama a
Wearable.MessageApi.sendMessage
, ¿recibe unonMessageReceived
en el otro dispositivo? Si no, podría haber algo incorrecto con la configuración deWearableListenerService
en el otro nodo o con la forma en que se empaqueta su aplicación (por ejemplo, su microapp y la aplicación están en paquetes diferentes o están firmadas con diferentes claves). -
¿Está ejecutando la última versión de la aplicación Android Wear ? Se ha agregado recientemente la API de canal y es posible que su reloj todavía no haya recibido la actualización para admitirla. La versión 1.1.1.1889093 debería estar bien.
Cómo usar la API de canal
A propósito, suena como usted puede simplificar su uso de canales. No es necesario abrir canales tanto al nodo local como al nodo remoto. La forma en que normalmente utilizaría la API es:
-
Decida si desea iniciar el canal desde el reloj o desde el teléfono. En este caso, suena como si estuvieras empezando desde el reloj.
-
En la aplicación de reloj, llame a
Wearable.ChannelApi.openChannel
, apuntando a la aplicación de teléfono. Este método devuelve unPendingResult<OpenChannelResult>
. Cuando se complete correctamente, obtendrá un objetoChannel
. Este es el lado del reloj del canal, y se puede usar para enviar un archivo. -
En la aplicación de teléfono, incluya un
WearableListenerService
, que debe obtener un eventoonChannelOpened
. A ese método se le pasará un objetoChannel
, que es el lado del teléfono del canal. Puede llamar areceiveFile
en ese objeto.
Así como se puede ver, sólo debe tener una llamada a openChannel
: al nodo remoto.
- Ver la ruta del archivo en un gestor de archivos según la intención de Android
- ¿Cómo puedo evitar que Android bloquee automáticamente mientras la actividad (aplicación) está enfocada?