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 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Métodos públicos | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
LiveCard | |||||||||||
SurfaceHolder | |||||||||||
boolean | |||||||||||
void |
navigate()
|
||||||||||
void |
publish(modo LiveCard.PublishMode)
|
||||||||||
LiveCard |
setAction(intent PendingIntent)
|
||||||||||
LiveCard |
setDirectRenderingEnabled(habilitación booleana)
|
||||||||||
LiveCard |
setRenderer(procesador GlRenderer)
|
||||||||||
LiveCard |
setViews(vistas RemoteViews)
|
||||||||||
LiveCard |
setVoiceActionEnabled(habilitación booleana)
|
||||||||||
void |
Métodos heredados | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Constantes
Constructores públicos
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
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
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.
Consulta también
público booleano isPublished ()
Muestra true
si la tarjeta está publicada actualmente.
público anular navegar ()
Envía al usuario a esta tarjeta en el cronograma.
Arroja
IllegalStateException | si la tarjeta no está publicada |
---|
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 |
---|
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
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
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
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
Consulta también
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
público anular anular la publicación ()
Anula la publicación de esta tarjeta del cronograma.