LiveCard

Aggiunta nel livello API XE12
classe pubblica

LiveCard

Questo corso ti consente di creare schede attive e pubblicarle nella sequenza temporale.

Per ulteriori informazioni su come creare schede attive, consulta la Guida per gli sviluppatori sulle schede attive.

La vita di una scheda pubblicata

Le schede live richiedono un contesto di lunga durata per essere loro proprietarie pubblicate, quindi dovresti gestirle in background Service. Puoi quindi pubblicare una scheda dal vivo non appena viene avviato il servizio o in risposta ad altri eventi che il monitoraggio del servizio. Allo stesso modo, dovresti annullare la pubblicazione delle schede quando non sono più pertinenti o quando viene eliminato il servizio.

Quando pubblichi una scheda pubblicata, puoi scegliere l'impatto che avrà sugli utenti. Quando pubblichi in modalità silenziosa, la scheda verrà inserita nella sequenza temporale senza alcun effetto visibile: gli utenti devono scorrere per la scheda per vederla. Puoi anche fare in modo che la scheda live venga visualizzata automaticamente subito dopo pubblicato. Ciò è spesso utile quando l'interfaccia utente principale dell'applicazione è una scheda online. e non un'attività.

Visualizzazione dei contenuti in una scheda pubblicata

Una scheda live può mostrare contenuti provenienti da una risorsa di layout o consentendo il rendering del codice direttamente sulla superficie di disegno. Scegli il metodo più appropriato per la tua applicazione sulla frequenza con cui devi aggiornare i contenuti della scheda e se il rendering principale è widget o grafiche in formato libero.

gonfiare un layout utilizzando le visualizzazioni remote

Se la tua applicazione richiede solo widget standard e aggiornamenti non frequenti (circa alcuni secondi o più a lungo tra un aggiornamento e l'altro), quindi crea la tua scheda con l'aiuto del corso RemoteViews. L'oggetto RemoteViews consente alla sequenza temporale di Glass, che viene eseguita in un processo separato da il codice della tua applicazione, gonfia un layout che hai creato.

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

Tieni presente che, una volta pubblicata una scheda che utilizza RemoteViews, le modifiche apportate alle visualizzazioni la chiamata ai metodi set* non sarà visibile nella sequenza temporale a meno che non richiami esplicitamente setViews sulla scheda pubblicata per forzare di nuovo un aggiornamento.

Disegnare direttamente sulla superficie della scheda pubblicata

Se la tua applicazione richiede aggiornamenti più frequenti (diverse volte al secondo) o un numero maggiore di una grafica elaborata rispetto al supporto standard per i widget, abilitano il rendering diretto e aggiungono un SurfaceHolder.Callback sulla superficie della carta.

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

Puoi quindi disegnare direttamente sulla superficie all'interno di un thread sullo sfondo o in risposta a eventi (ad esempio aggiornamenti di sensori o di posizione). Utilizza surfaceCreated e surfaceDestroyed metodi per avviare e interrompere la logica di rendering quando la scheda viene visualizzate o nascoste.

Tieni presente che i metodi di callback del Proprietario della superficie non sono richiamati sul thread della UI principale.

Gestione della selezione delle schede attive

Una scheda attiva deve fornire un'azione (PendingIntent per iniziare un'attività, servizio o una trasmissione) che verrà eseguita quando l'utente tocca per selezionare la carta. Normalmente userai questa azione per avviare un'attività che mostra un menu di opzioni o l'utente in un'altra parte della tua applicazione. Come minimo, dovresti offrire la possibilità che consente all'utente di rimuovere la scheda pubblicata dalla sequenza temporale.

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

Le schede attive che non contengono un'azione non verranno visualizzate.

Classi nidificate
enum LiveCard.PublishMode Determina il modo in cui la scheda viene presentata all'utente quando viene pubblicata.
Costanti
String EXTRA_FROM_LIVECARD_VOICE Extra booleano che indica che Intent è stato attivato dalla voce da una scheda in tempo reale.
Costruttori pubblici
LiveCard(contesto Context, tag String)
Metodi pubblici
LiveCard
attach(servizio servizio)
SurfaceHolder
booleano
null
null
LiveCard
LiveCard
setDirectRenderingEnabled(abilitazione booleana)
LiveCard
LiveCard
LiveCard
setVoiceActionEnabled(abilitazione booleana)
null
Metodi ereditati

Costanti

Aggiunta nel livello API XE21

pubblica statico finale Stringa EXTRA_FROM_LIVECARD_VOICE

Extra booleano che indica che Intent è stato attivato dalla voce da una scheda in tempo reale.

Valore costante: . "android.intent.extra.EXTRA_FROM_LIVECARD"

Costruttori pubblici

Aggiunta nel livello API XE16

pubblica . LiveCard (Contesto Contesto, tag Stringa)

Crea una scheda attiva con il tag specificato.

Tieni presente che una scheda non viene visualizzata finché non viene pubblicata esplicitamente.

Parametri
contesto il contesto dell'applicazione
tag un tag non null della carta. per eseguire il debug

Metodi pubblici

Aggiunta nel livello API XE16

pubblica LiveCard allega (servizio servizio)

Allega uno sfondo Service in modo che quando questa carta venga pubblicato, il servizio verrà impostato per l'esecuzione in primo piano.

Il servizio verrà rimosso automaticamente dal primo piano quando la pubblicazione della scheda live è stata annullata.

Parametri
servizio verrà impostato per essere eseguito in futuro
Resi
  • questo oggetto per il concatenamento delle chiamate
Aggiunta nel livello API XE12

pubblica SurfaceHolder getSurfaceHolder ()

Quando il rendering diretto è attivo, consente l'accesso all'elemento Surface su cui disegnare.

Tieni presente che il valore SurfaceHolder restituito deve essere utilizzato semplicemente come mezzo per accedere a piattaforma gestita. I metodi per alterare la forma e il tipo di superficie non sono operazioni di questo tipo.

Tieni inoltre presente che i callback per questo oggetto non vengono effettuati nel thread dell'interfaccia utente.

Aggiunta nel livello API XE12

pubblica booleano . isPublished ()

Restituisce true se la carta è attualmente pubblicata.

Aggiunta nel livello API XE16

pubblica null . navigare ()

Invia l'utente a questa scheda nella sequenza temporale.

Lanci
IllegalStateException se la scheda non è pubblicata
Aggiunta nel livello API XE12

pubblica null . pubblica (modalità LiveCard.PublishMode)

Pubblica questa scheda nella sequenza temporale.

La scheda verrà mostrata solo se ha un'azione e se il rendering diretto è abilitato oppure visualizzazioni remote sono state impostate.

Parametri
modalità determina il modo in cui la scheda viene presentata all'utente
Aggiunta nel livello API XE12

pubblica LiveCard setAction (intent PendingIntent)

Modifica l'azione eseguita quando viene selezionata la scheda.

Parametri
intent verrà attivato quando la carta sarà selezionata
Resi
  • questo oggetto per il concatenamento delle chiamate
Aggiunta nel livello API XE12

pubblica LiveCard setDirectRenderingEnabled (booleano abilitato)

Attiva il rendering diretto.

In questa modalità, i contenuti della scheda dovranno essere visualizzati direttamente in un Surface.

Tieni presente che questo metodo può essere chiamato solo quando la scheda non è pubblicata, in caso contrario genera un'eccezione.

Parametri
attiva se attivare il rendering diretto
Resi
  • questo oggetto per il concatenamento delle chiamate
Argomenti correlati
Aggiunta nel livello API XE16

pubblica LiveCard setRenderer (Renderer GlRenderer)

Aggiunge un renderer basato su OpenGL.

Il renderer verrà utilizzato per disegnare su una piattaforma richiesta (automaticamente) per per il rendering delle immagini.

Resi
  • questo oggetto per il concatenamento delle chiamate
Aggiunta nel livello API XE12

pubblica LiveCard setViews (RemoteViews)

Modifica il valore RemoteViews utilizzato per visualizzare l'UI di questa scheda.

Questo metodo deve essere chiamato anche dopo aver apportato modifiche direttamente alle viste remote una scheda pubblicata, altrimenti tali modifiche non si rifletteranno sulla cronologia.

Questo metodo non ha alcun effetto se il rendering diretto è abilitato.

Parametri
visualizzazioni nell'interfaccia utente della scheda
Resi
  • questo oggetto per il concatenamento delle chiamate
Aggiunta nel livello API XE21

pubblica LiveCard setVoiceActionEnabled (booleano abilitato)

Consente di attivare un'azione vocale quando la scheda viene mostrata nella sequenza temporale.

Se impostata, la scheda rimane in ascolto di "ok Glass" quando vengono mostrati nella sequenza temporale quando viene pronunciata questa frase di guardia, attiva l'intento stabilito dal setAction(PendingIntent). Se l'intent avvia un all'attività che implementa i menu vocali contestuali, l'attività verrà automaticamente apri le prime voci di menu (come se all'interno dell'attività si pronunciasse "ok glass" ). Questa funzionalità consente di implementare menu vocali contestuali nelle schede attive.

Parametri
attiva se attivare l'azione vocale
Resi
  • questo oggetto per il concatenamento delle chiamate
Argomenti correlati
Aggiunta nel livello API XE12

pubblica null . annullare la pubblicazione ()

Consente di annullare la pubblicazione di questa scheda dalla cronologia.