LiveCard

Se agregó en el nivel de API XE12.
clase pública

LiveCard

Esta clase te permite crear tarjetas activas y publicarlas en el cronograma.

Para obtener más información sobre cómo crear tarjetas activas, consulta la Guía para desarrolladores sobre las tarjetas en vivo

Duración de una tarjeta activa

Las tarjetas en tiempo real requieren un contexto de larga duración para poseerlas durante todo el tiempo en que se estén publicados, por lo que debes administrarlos en segundo plano Service. Luego, puedes publicará una tarjeta activa no bien se inicie el servicio o en respuesta a otros eventos que los supervisores de servicios. Del mismo modo, deberías anular la publicación de las tarjetas cuando ya no sean relevantes o cuando se destruye el servicio.

Cuando publicas una tarjeta publicada, puedes elegir cómo afecta esto a los usuarios. Cuando publicas silenciosamente, La tarjeta se insertará en la línea de tiempo sin ningún efecto visible: los usuarios deberán deslizar el dedo para la tarjeta para verlo. También puedes hacer que la tarjeta publicada se muestre automáticamente justo después de publicados. Esto suele ser útil cuando la interfaz de usuario principal de tu aplicación es una tarjeta activa y no una actividad.

Cómo mostrar contenido en una tarjeta de transmisión en vivo

Una tarjeta dinámica puede mostrar contenido de un recurso de diseño o permitiendo que tu código se renderice directamente en la superficie de dibujo. Elige el método más adecuado según tu aplicación según la frecuencia con la que necesites actualizar el contenido de la tarjeta y si estás renderizando principalmente widgets o gráficos de formato libre.

Cómo aumentar un diseño con vistas remotas

Si tu aplicación solo requiere widgets estándar y actualizaciones poco frecuentes (alrededor de unos pocos segundos o entre actualizaciones) y, luego, crea tu tarjeta con la ayuda de la clase RemoteViews. El objeto RemoteViews permite que el cronograma de Glass se ejecute en un proceso independiente de el código de tu propia aplicación, aumenta un diseño que creaste.

     LiveCard liveCard; // initialized elsewhere
     RemoteViews views = new RemoteViews(context.getPackageName(),
             R.layout.my_layout);
     liveCard.setViews(views);
 

Ten en cuenta que una vez que se publica una tarjeta que usa RemoteViews, los cambios en las vistas de La llamada a métodos set* no estará visible en el cronograma, a menos que llames explícitamente setViews en la tarjeta publicada nuevamente para forzar una actualización.

Cómo dibujar directamente en la superficie de la tarjeta activa

Si tu aplicación requiere actualizaciones más frecuentes (varias veces por segundo) o renderización más gráficos más elaborados que los que admiten los widgets estándar, permite la renderización directa y agrega una SurfaceHolder.Callback a la superficie de la tarjeta.

     LiveCard liveCard; // initialized elsewhere
     liveCard.setDirectRenderingEnabled(true);
     liveCard.getSurfaceHolder().addCallback(callback);
 

Luego, puedes dibujar directamente en la superficie dentro de un subproceso en segundo plano o en respuesta a un eventos (por ejemplo, actualizaciones de la ubicación o del sensor). Usa surfaceCreated y Métodos surfaceDestroyed para iniciar y detener la lógica de renderización cuando la tarjeta esté mostrar u ocultar.

Ten en cuenta que los métodos de devolución de llamada del contenedor de la superficie no se invocan en el subproceso de IU principal.

Cómo controlar la selección de tarjetas en tiempo real

Una tarjeta en tiempo real debe proporcionar una acción (un PendingIntent para iniciar una actividad, o realizar una transmisión) que se ejecutarán cuando el usuario toque la tarjeta para seleccionarla. Normalmente, usarás esta acción para iniciar una actividad que muestra un menú de opciones o toma al usuario en otra parte de la aplicación. Como mínimo, debes proporcionar una opción que permite al usuario quitar la tarjeta publicada del cronograma.

     LiveCard liveCard; // initialized elsewhere
     Intent intent = new Intent(context, MyActivity.class);
     liveCard.setAction(PendingIntent.getActivity(context, 0, intent, 0));
 

No se mostrarán las tarjetas en tiempo real que no tengan ninguna acción.

Categorías anidadas
enum LiveCard.PublishMode Determina la forma en que se presenta la tarjeta al usuario cuando se publica.
Constantes
String EXTRA_FROM_LIVECARD_VOICE Extra booleano que denota un Intent se activó por voz desde una tarjeta activa.
Constructores públicos
LiveCard(contexto Context, etiqueta String)
Métodos públicos
LiveCard
attach(servicio de Service)
SurfaceHolder
boolean
void
void
LiveCard
LiveCard
setDirectRenderingEnabled(habilitación booleana)
LiveCard
setRenderer(procesador GlRenderer)
LiveCard
LiveCard
setVoiceActionEnabled(habilitación booleana)
void
Métodos heredados

Constantes

Se agregó en el nivel de API XE21.

público estático final Cadena . EXTRA_FROM_LIVECARD_VOICE

Extra booleano que denota un Intent se activó por voz desde una tarjeta activa.

Valor de la constante: "android.intent.extra.EXTRA_FROM_LIVECARD" .

Constructores públicos

Se agregó en el nivel de API XE16.

público LiveCard (Contexto el contexto, cadena etiqueta)

Crea una tarjeta publicada con la etiqueta especificada.

Ten en cuenta que las tarjetas no aparecerán hasta que se publiquen explícitamente.

Parámetros
Contexto el contexto de la aplicación
etiqueta etiqueta no nula para la tarjeta; esto es para fines de depuración

Métodos públicos

Se agregó en el nivel de API XE16.

público LiveCard . adjuntar (Servicio)

Adjuntar un archivo Service de fondo para que cuando se reciba esta tarjeta publicado, el servicio determinado se configurará para ejecutarse en primer plano.

El servicio se quitará automáticamente del primer plano cuando esta Se anuló la publicación de la tarjeta publicada.

Parámetros
servicio se configurará para ejecutarse anterior
Muestra
  • este objeto para el encadenamiento de llamadas
Se agregó en el nivel de API XE12.

público SurfaceHolder . getSurfaceHolder ()

Cuando está habilitada la renderización directa, brinda acceso al Surface en el que se dibuja.

Ten en cuenta que el objeto SurfaceHolder que se muestra debe usarse solo como un medio para acceder a la plataforma administrada. Los métodos para alterar la forma y el tipo de la superficie son no-ops.

Ten en cuenta también que las devoluciones de llamada para este objeto no se realizan en el subproceso de IU.

Se agregó en el nivel de API XE12.

público booleano isPublished ()

Muestra true si la tarjeta está publicada actualmente.

Se agregó en el nivel de API XE16.

público anular navegar ()

Envía al usuario a esta tarjeta en el cronograma.

Arroja
IllegalStateException si la tarjeta no está publicada
Se agregó en el nivel de API XE12.

público anular publicar (modo LiveCard.PublishMode)

Publica esta tarjeta en el cronograma.

La tarjeta solo se mostrará si incluye una acción y si la renderización directa está habilitada o se configuraron vistas remotas.

Parámetros
Standard determina cómo se presenta la tarjeta al usuario
Se agregó en el nivel de API XE12.

público LiveCard . setAction (intent PendingIntent)

Cambia la acción realizada cuando se selecciona la tarjeta.

Parámetros
intent se activará cuando se seleccione la tarjeta
Muestra
  • este objeto para el encadenamiento de llamadas
Se agregó en el nivel de API XE12.

público LiveCard . setDirectRenderingEnabled (habilitación booleana)

Habilita la renderización directa.

En este modo, el contenido de la tarjeta deberá procesarse directamente en un Surface.

Ten en cuenta que solo se puede llamar a este método cuando la tarjeta no está publicada y, de lo contrario, arroja una excepción.

Parámetros
habilitar si se debe habilitar la renderización directa
Muestra
  • este objeto para el encadenamiento de llamadas
Consulta también
Se agregó en el nivel de API XE16.

público LiveCard . setRenderer (procesador de GlRenderer)

Agrega un procesador basado en OpenGL.

El renderizador se usará para dibujar en una superficie solicitada (automáticamente) para y procesamiento.

Muestra
  • este objeto para el encadenamiento de llamadas
Se agregó en el nivel de API XE12.

público LiveCard . setViews (RemoteViews)

Cambia el RemoteViews que se usa para mostrar la IU de esta tarjeta.

También se debe llamar a este método después de realizar cualquier cambio directamente en las vistas remotas de una tarjeta publicada, o esos cambios no se reflejarán en el cronograma.

Este método no tiene efecto si la renderización directa está habilitada.

Parámetros
vistas la IU de la tarjeta
Muestra
  • este objeto para el encadenamiento de llamadas
Se agregó en el nivel de API XE21.

público LiveCard . setVoiceActionEnabled (habilitación booleana)

Habilita una acción de voz cuando la tarjeta se muestra en el cronograma.

Cuando se establece, la tarjeta detecta un mensaje de "Ok Glass". cuando se muestra en la línea de tiempo y, cuando se pronuncia esta frase de guarda, activa el intent establecido por el setAction(PendingIntent). Si el intent inicia una que implementa menús de voz contextuales, la actividad abierto en los primeros elementos del menú (como si se hablara de “vasito Ok) dentro de la actividad a sí mismo). Esta función permite implementar menús de voz contextuales en las tarjetas en vivo.

Parámetros
habilitar si se debe habilitar la acción de voz
Muestra
  • este objeto para el encadenamiento de llamadas
Consulta también
Se agregó en el nivel de API XE12.

público anular anular la publicación ()

Anula la publicación de esta tarjeta del cronograma.