LiveCard

In API-Ebene XE12 hinzugefügt
öffentliche Klasse

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
LiveCard(Context-Kontext, String-Tag)
Public Methods
LiveCard
SurfaceHolder
boolean
voidm
voidm
LiveCard
LiveCard
setDirectRenderingEnabled(boolesch aktivieren)
LiveCard
LiveCard
setViews(RemoteViews-Ansichten)
LiveCard
setVoiceActionEnabled(boolesch aktivieren)
voidm
Übernommene Methoden

Konstanten

In API-Ebene XE21 hinzugefügt

<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.

Konstanter Wert: <ph type="x-smartling-placeholder"></ph> &quot;android.intent.extra.EXTRA_FROM_LIVECARD&quot;

Public Constructors

In API-Ebene XE16 hinzugefügt

<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

In API-Ebene XE16 hinzugefügt

<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
In API-Ebene XE12 hinzugefügt

<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
In API-Ebene XE12 hinzugefügt

<ph type="x-smartling-placeholder"></ph> öffentlich Boolescher Wert isPublished ()

Gibt true zurück, wenn die Karte gerade veröffentlicht ist.

In API-Ebene XE16 hinzugefügt

<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
In API-Ebene XE12 hinzugefügt

<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
In API-Ebene XE12 hinzugefügt

<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
In API-Ebene XE12 hinzugefügt

<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
In API-Ebene XE16 hinzugefügt

<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
In API-Ebene XE12 hinzugefügt

<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
In API-Ebene XE21 hinzugefügt

<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
In API-Ebene XE12 hinzugefügt

<ph type="x-smartling-placeholder"></ph> öffentlich voidm Veröffentlichung aufheben ()

Hebt die Veröffentlichung dieser Karte in der Zeitachse auf.