LiveCard
Mit dieser Klasse können Sie aktive Karten erstellen und auf der Zeitachse veröffentlichen.
Weitere Informationen zum Erstellen von Live-Karten findest du in der Entwicklerleitfaden zu Livekarten
Leben einer Live-Karte
Für Live-Karten ist ein lang andauernder Kontext erforderlich, damit sie während der gesamten Zeit, in der sie verwendet werden, bleiben.
veröffentlicht wurden, also solltest du sie Service
im Hintergrund verwalten. Sie können dann
eine Live-Karte veröffentlichen, sobald der Dienst gestartet wird, oder als Reaktion auf andere Ereignisse, die der
überwacht. Ebenso sollten Sie die Veröffentlichung
von Karten aufheben, wenn sie nicht mehr relevant sind
wird der Dienst zerstört.
Wenn Sie eine Live-Karte veröffentlichen, können Sie auswählen, wie sich dies auf die Nutzer auswirkt. Bei der automatischen Veröffentlichung wird die Karte ohne sichtbare Effekt in die Zeitachse eingefügt. Die Nutzenden müssen um sie zu sehen. Sie können die Live-Karte auch automatisch anzeigen lassen, veröffentlicht. Dies ist oft nützlich, wenn die Hauptbenutzeroberfläche Ihrer App eine Live-Karte ist. und keine Aktivität.
Inhalte auf einer Live-Karte anzeigen
Auf einer Live-Karte können Inhalte entweder aus einer Layoutressource angezeigt werden oder indem Ihr Code das Rendern zulässt direkt auf seine Zeichenfläche. Wählen Sie die für Ihre Anwendung am besten geeignete Methode aus. wie oft Sie den Inhalt der Karte aktualisieren müssen und ob Sie Widgets oder Freiform-Grafiken.
Layout mit Remote-Ansichten erweitern
Wenn für Ihre Anwendung nur Standard-Widgets und unregelmäßige Updates erforderlich sind (nach nur wenigen Sekunden oder
zwischen den einzelnen Aktualisierungen) und erstelle dann mithilfe der RemoteViews
-Klasse deine Karte.
Das RemoteViews
-Objekt lässt die Glass-Zeitachse, die in einem separaten Prozess ausgeführt wird,
Ihren eigenen Anwendungscode erstellen
und ein von Ihnen erstelltes Layout erweitern.
LiveCard liveCard; // initialized elsewhere RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.my_layout); liveCard.setViews(views);
Sobald eine Karte mit RemoteViews
veröffentlicht wurde, werden Änderungen an den Ansichten durch
Das Aufrufen von set*
-Methoden ist in der Zeitachse nur sichtbar, wenn Sie explizit
setViews
auf der Live-Karte noch einmal, um ein Update zu erzwingen.
Direkt auf der Live-Kartenoberfläche zeichnen
Wenn Ihre Anwendung häufiger aktualisiert werden muss (mehrmals pro Sekunde) oder mehr
als die Standard-Widgets unterstützen, ermöglichen direktes Rendering und eine
SurfaceHolder.Callback
zur Kartenoberfläche.
LiveCard liveCard; // initialized elsewhere liveCard.setDirectRenderingEnabled(true); liveCard.getSurfaceHolder().addCallback(callback);
Sie können dann innerhalb eines Hintergrundthreads oder als Reaktion auf externen Text direkt auf die Oberfläche zeichnen.
(z. B. Sensor- oder Standortaktualisierungen). Verwenden Sie die surfaceCreated
- und
surfaceDestroyed
-Methoden zum Starten und Beenden der Renderinglogik, wenn die Karte
ein- oder ausgeblendet werden.
Beachten Sie, dass die Callback-Methoden des Oberflächeninhabers nicht im Haupt-UI-Thread aufgerufen werden.
Umgang mit der Live-Kartenauswahl
Eine Live-Karte muss eine Aktion enthalten (ein PendingIntent
zum Starten einer Aktivität,
oder eine Übertragung durchführen), die ausgeführt wird, wenn der Nutzer auf die Karte tippt.
Normalerweise starten Sie mit dieser Aktion eine Aktivität, die ein Optionsmenü anzeigt oder
die Nutzer in einen anderen
Teil Ihrer App verschieben können. Auf jeden Fall sollten Sie eine Option anbieten,
mit der der Nutzer die Live-Karte aus der Zeitachse entfernen kann.
LiveCard liveCard; // initialized elsewhere Intent intent = new Intent(context, MyActivity.class); liveCard.setAction(PendingIntent.getActivity(context, 0, intent, 0));
Live-Karten ohne Aktion werden nicht angezeigt.
Verschachtelte Klassen | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
enum | LiveCard.PublishMode | Hier wird festgelegt, wie dem Nutzer die Karte bei der Veröffentlichung präsentiert wird. |
Konstanten | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
String | EXTRA_FROM_LIVECARD_VOICE | Boolesches Extra, das angibt, dass ein Intent per Sprachbefehl von einer Live-Karte aktiviert wurde. |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
LiveCard | |||||||||||
SurfaceHolder | |||||||||||
boolean | |||||||||||
voidm |
navigate()
|
||||||||||
voidm |
publish(Modus LiveCard.PublishMode)
|
||||||||||
LiveCard |
setAction(PendingIntent-Intent)
|
||||||||||
LiveCard |
setDirectRenderingEnabled(boolesch aktivieren)
|
||||||||||
LiveCard |
setRenderer(GlRenderer-Renderer)
|
||||||||||
LiveCard |
setViews(RemoteViews-Ansichten)
|
||||||||||
LiveCard |
setVoiceActionEnabled(boolesch aktivieren)
|
||||||||||
voidm |
Übernommene Methoden | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Konstanten
<ph type="x-smartling-placeholder"></ph> öffentlich Statisch letzte Zeichenfolge EXTRA_FROM_LIVECARD_VOICE
Boolesches Extra, das angibt, dass ein Intent
per Sprachbefehl von einer Live-Karte aktiviert wurde.
Public Constructors
<ph type="x-smartling-placeholder"></ph> öffentlich LiveCard (Kontext, Tag String)
Erstellt eine Live-Karte mit dem angegebenen Tag.
Beachte, dass eine Karte erst angezeigt wird, wenn sie explizit veröffentlicht wurde.
Parameter
context | im Kontext der Anwendung |
---|---|
Tag | nicht-Null-Tag für die Karte; Dies dient der Fehlerbehebung |
Public Methods
<ph type="x-smartling-placeholder"></ph> öffentlich LiveCard Anhängen (Dienst)
Füge eine Service
-Hintergrundkarte hinzu, damit diese Karte
veröffentlicht wird, wird der angegebene Dienst so eingestellt, dass er im Vordergrund ausgeführt wird.
Der Dienst wird automatisch aus dem Vordergrund entfernt, wenn Die Veröffentlichung der Live-Karte wurde aufgehoben.
Parameter
Dienst | wird wie oben beschrieben ausgeführt |
---|
Gibt Folgendes zurück:
- Dieses Objekt zur Aufrufverkettung
<ph type="x-smartling-placeholder"></ph> öffentlich SurfaceHolder getSurfaceHolder ()
Wenn das direkte Rendering aktiviert ist, wird Zugriff auf das Surface
gewährt, auf dem gezeichnet werden soll.
Beachten Sie, dass die zurückgegebene SurfaceHolder
nur als Mittel für den Zugriff auf die
verwalteten Oberfläche. Methoden zum Ändern der Form und des Oberflächentyps sind managementfrei.
Beachten Sie auch, dass Callbacks für dieses Objekt nicht im Benutzeroberflächen-Thread erfolgen.
Weitere Informationen
<ph type="x-smartling-placeholder"></ph> öffentlich Boolescher Wert isPublished ()
Gibt true
zurück, wenn die Karte gerade veröffentlicht ist.
<ph type="x-smartling-placeholder"></ph> öffentlich voidm navigieren ()
Leitet den Nutzer zu dieser Karte in der Zeitachse weiter.
Löst aus
IllegalStateException | die Karte nicht veröffentlicht wurde |
---|
<ph type="x-smartling-placeholder"></ph> öffentlich voidm Veröffentlichen (Modus LiveCard.PublishMode)
Veröffentlicht diese Karte in der Zeitachse.
Die Karte wird nur angezeigt, wenn sie eine Aktion enthält und wenn das direkte Rendering aktiviert ist oder Remote-Ansichten festgelegt wurden.
Parameter
Modus | legt fest, wie die Karte dem Nutzer präsentiert wird |
---|
<ph type="x-smartling-placeholder"></ph> öffentlich LiveCard setAction (Intent PendingIntent)
Ändert die Aktion, die ausgeführt wird, wenn die Karte ausgewählt wird.
Parameter
Intent | wird ausgelöst, wenn die Karte ausgewählt wird |
---|
Gibt Folgendes zurück:
- Dieses Objekt zur Aufrufverkettung
<ph type="x-smartling-placeholder"></ph> öffentlich LiveCard setDirectRenderingEnabled (boolesch aktivieren)
Aktiviert direktes Rendering.
In diesem Modus muss der Karteninhalt direkt in ein Surface
gerendert werden.
Diese Methode kann nur aufgerufen werden, wenn die Karte nicht veröffentlicht ist. Andernfalls wird die lösen eine Ausnahme aus.
Parameter
aktivieren | ob direktes Rendering aktiviert werden soll |
---|
Gibt Folgendes zurück:
- Dieses Objekt zur Aufrufverkettung
Weitere Informationen
<ph type="x-smartling-placeholder"></ph> öffentlich LiveCard setRenderer (GlRenderer-Renderer)
Fügt einen OpenGL-basierten Renderer hinzu.
Der Renderer wird für direktes Zeichnen auf einer Oberfläche (automatisch) verwendet, zu verbessern.
Gibt Folgendes zurück:
- Dieses Objekt zur Aufrufverkettung
<ph type="x-smartling-placeholder"></ph> öffentlich LiveCard setViews (RemoteViews-Ansichten)
Ändert den RemoteViews
, der zum Anzeigen der UI dieser Karte verwendet wird.
Diese Methode sollte auch aufgerufen werden, nachdem Änderungen direkt an den Remote-Ansichten der eine veröffentlichte Karte. Andernfalls werden diese Änderungen nicht in der Zeitachse widergespiegelt.
Diese Methode hat keine Auswirkungen, wenn das direkte Rendering aktiviert ist.
Parameter
Aufrufe | der Benutzeroberfläche der Karte |
---|
Gibt Folgendes zurück:
- Dieses Objekt zur Aufrufverkettung
Weitere Informationen
<ph type="x-smartling-placeholder"></ph> öffentlich LiveCard setVoiceActionEnabled (boolesch aktivieren)
Aktiviert eine Sprachbedienung, wenn die Karte auf der Zeitachse angezeigt wird.
Wenn diese Option aktiviert ist, reagiert die Karte auf „Ok Glass“. wenn sie auf der Zeitachse angezeigt werden.
wird dieser Guard-Satz gesprochen, wird der Intent ausgelöst, der vom
setAction(PendingIntent)
-Methode. Wenn der Intent einen
die kontextbezogene Sprachmenüs implementiert, wird die Aktivität automatisch
die ersten Menüpunkte öffnen (z. B., als würde während der Aktivität "Ok Glass" gesprochen
Mit dieser Funktion können kontextbezogene Sprachmenüs auf Live-Karten implementiert werden.
Parameter
aktivieren | ob die Sprachbedienung aktiviert werden soll |
---|
Gibt Folgendes zurück:
- Dieses Objekt zur Aufrufverkettung
Weitere Informationen
<ph type="x-smartling-placeholder"></ph> öffentlich voidm Veröffentlichung aufheben ()
Hebt die Veröffentlichung dieser Karte in der Zeitachse auf.