LiveCard
Te zajęcia pozwalają tworzyć aktywne karty i publikować je na osi czasu.
Więcej informacji o tworzeniu aktywnych kart znajdziesz tutaj: Karty na żywo – przewodnik dla programistów.
Życie karty na żywo
Karty na żywo wymagają długotrwałego kontekstu, aby były dostępne przez cały okres, w którym są dostępne.
są opublikowane, więc zarządzaj nimi w tle Service
. Następnie możesz:
opublikować kartę po uruchomieniu usługi lub w odpowiedzi na inne zdarzenia,
i monitorach usług. Cofnięcie publikacji kart, gdy przestają być istotne,
gdy usługa zostanie zniszczona.
Gdy publikujesz kartę, możesz określić, jak wpłynie to na użytkowników. Gdy publikujesz dyskretnie: karta zostanie wstawiona na oś czasu bez jakiegokolwiek widocznego efektu: użytkownicy będą musieli przesunąć palcem, kartę, aby ją wyświetlić. Aktywna karta może też wyświetlać się automatycznie zaraz po jej opublikowano. Często przydaje się to, gdy głównym interfejsem użytkownika jest aktywna karta a nie jakaś aktywność.
Wyświetlanie treści na aktywnej karcie
Aktywna karta może wyświetlać treść z zasobu układu lub umożliwić renderowanie kodu bezpośrednio na powierzchnię do rysowania. Wybierz metodę, która najlepiej pasuje do Twojej aplikacji jak często musisz aktualizować zawartość karty i czy renderujesz ją głównie widżety ani swobodną grafikę.
Dopełnianie układu za pomocą widoków zdalnych
Jeśli Twoja aplikacja wymaga tylko standardowych widżetów i rzadkich aktualizacji (około kilku sekund lub
między odświeżeniami), a następnie utwórz kartę za pomocą klasy RemoteViews
.
Obiekt RemoteViews
zezwala na oś czasu w Google Glass, która działa w osobnym procesie niż
własnego kodu aplikacji, powiększ utworzony układ.
LiveCard liveCard; // initialized elsewhere RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.my_layout); liveCard.setViews(views);
Pamiętaj, że po opublikowaniu karty korzystającej z elementu RemoteViews
zmiany w widokach zostaną wprowadzone przez:
Wywoływanie metod set*
nie będzie widoczne na osi czasu, chyba że jednoznacznie wywołasz metodę
setViews
na aktywnej karcie, aby wymusić aktualizację.
Rysowanie bezpośrednio na aktywnej karcie
Jeśli aplikacja wymaga częstszych aktualizacji (kilka razy na sekundę) lub renderowania
bardziej skomplikowana grafika niż standardowe widżety, można włączyć renderowanie bezpośrednie
SurfaceHolder.Callback
do powierzchni karty.
LiveCard liveCard; // initialized elsewhere liveCard.setDirectRenderingEnabled(true); liveCard.getSurfaceHolder().addCallback(callback);
Możesz rysować bezpośrednio na powierzchni w wątku tła lub w odpowiedzi na żądania
zdarzeń (np. aktualizacji z czujnika czy lokalizacji). Korzystaj z dokumentów surfaceCreated
oraz
Metody surfaceDestroyed
uruchamiające i zatrzymujące logikę renderowania, gdy karta jest
wyświetlane lub ukryte.
Pamiętaj, że metody wywołania zwrotnego właściciela powierzchni nie są wywoływane w głównym wątku UI.
Obsługa wyboru aktywnej karty
Opublikowana karta musi zawierać działanie (PendingIntent
to rozpoczęcie aktywności,
usługi lub transmisji), które będą uruchamiane, gdy użytkownik wybierze kartę.
Zwykle to działanie jest wykonywane w celu uruchomienia działania, które wyświetla menu opcji lub wykonuje
użytkownika do innej części aplikacji. Podaj przynajmniej opcję
która pozwala użytkownikowi usunąć aktywną kartę z osi czasu.
LiveCard liveCard; // initialized elsewhere Intent intent = new Intent(context, MyActivity.class); liveCard.setAction(PendingIntent.getActivity(context, 0, intent, 0));
Karty aktywne, dla których nie ma żadnych działań, nie będą się wyświetlać.
Zagnieżdżone klasy | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
enum | typ wyliczeniowy | LiveCard.PublishMode | Określa sposób wyświetlania karty użytkownikowi po opublikowaniu. |
Stałe | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
String | EXTRA_FROM_LIVECARD_VOICE | Dodatkowa wartość logiczna oznaczająca, że element Intent został aktywowany głosem z aktywnej karty. |
Konstruktorki publiczne | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Metody publiczne | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
LiveCard | |||||||||||
SurfaceHolder | |||||||||||
wartość logiczna | |||||||||||
nieważne |
navigate()
|
||||||||||
nieważne |
publish(tryb LiveCard.PublishMode)
|
||||||||||
LiveCard |
setAction(intencja PendingIntent)
|
||||||||||
LiveCard |
setDirectRenderingEnabled(włączenie wartości logicznej)
|
||||||||||
LiveCard |
setRenderer(mechanizm renderowania GlRenderer)
|
||||||||||
LiveCard |
setViews(widoki RemoteViews)
|
||||||||||
LiveCard |
setVoiceActionEnabled(włączenie wartości logicznej)
|
||||||||||
nieważne |
Metody dziedziczone | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Stałe
Konstruktorki publiczne
publiczne LiveCard (kontekst w kontekście kontekstu, tag ciągu znaków
Tworzy aktywną kartę z podanym tagiem.
Pamiętaj, że karta nie pojawi się, dopóki nie zostanie wyraźnie opublikowana.
Parametry
sytuacja | kontekst aplikacji |
---|---|
tag | tag o wartości niezerowej dla karty; służy do debugowania |
Metody publiczne
publiczne LiveCard załącz (Usługa)
Dołącz tło Service
, aby po otrzymaniu tej karty
opublikowanej, dana usługa będzie ustawiona tak, aby działała na pierwszym planie.
Po wykonaniu tej operacji usługa zostanie automatycznie usunięta z pierwszego planu. publikacja karty aktywnej została cofnięta.
Parametry
usługa | zostanie skonfigurowane tak, aby działało bez zmian |
---|
Zwroty
- ten obiekt do łańcucha wywołań
publiczne SurfaceHolder getSurfaceHolder ()
Gdy włączone jest renderowanie bezpośrednie, daje dostęp do elementu Surface
, na którym można rysować.
Pamiętaj, że zwróconych elementów SurfaceHolder
należy używać tylko do uzyskiwania dostępu do
na platformie zarządzanej. Nie ma żadnych metod zmiany kształtu i typu powierzchni.
Zwróć uwagę, że wywołania zwrotne dla tego obiektu nie są wykonywane w wątku interfejsu.
Zobacz również
publiczne Wartość logiczna isPublished ()
Zwraca wartość true
, jeśli karta jest obecnie opublikowana.
publiczne nieważne nawiguj ()
Kieruje użytkownika na tę kartę na osi czasu.
Rzuty
IllegalStateException | jeśli karta nie została opublikowana |
---|
publiczne nieważne opublikuj (tryb LiveCard.PublishMode)
Publikuje tę kartę na osi czasu.
Karta jest widoczna tylko wtedy, gdy zawiera działanie, włączone jest renderowanie bezpośrednie lub widoki zdalne zostały ustawione.
Parametry
tryb | określa sposób prezentowania karty użytkownikowi |
---|
publiczne LiveCard setAction (intencja PendingIntent)
Zmienia działanie wykonane po wybraniu karty.
Parametry
intencja | będzie uruchamiany po wybraniu karty |
---|
Zwroty
- ten obiekt do łańcucha wywołań
publiczne LiveCard setDirectRenderingEnabled (wartość logiczna włączona)
Włącza renderowanie bezpośrednie.
W tym trybie zawartość karty musi być renderowana bezpośrednio w interfejsie Surface
.
Pamiętaj, że tę metodę można wywołać tylko wtedy, gdy karta nie została opublikowana. W przeciwnym razie zrobić wyjątek.
Parametry
włącz | czy powinno być włączone renderowanie bezpośrednie |
---|
Zwroty
- ten obiekt do łańcucha wywołań
Zobacz również
publiczne LiveCard setRenderer (GlRenderer – mechanizm renderowania)
Dodaje mechanizm renderowania oparty na OpenGL.
Mechanizm renderowania będzie używany do rysowania na powierzchni żądanej (automatycznie) w celu jak renderowanie.
Zwroty
- ten obiekt do łańcucha wywołań
publiczne LiveCard setViews (RemoteViews)
Zmienia interfejs RemoteViews
służący do wyświetlania interfejsu tej karty.
Metodę tę należy wywołać po wprowadzeniu jakichkolwiek zmian bezpośrednio w zdalnych widokach opublikowanej karty. W przeciwnym razie te zmiany nie zostaną uwzględnione na osi czasu.
Ta metoda nie działa, jeśli włączone jest renderowanie bezpośrednie.
Parametry
wyświetlenia | UI karty |
---|
Zwroty
- ten obiekt do łańcucha wywołań
Zobacz również
publiczne LiveCard setVoiceActionEnabled (wartość logiczna włączona)
Włącza komendę głosową, gdy karta jest wyświetlana na osi czasu.
Gdy jest ustawione, nasłuchuje komunikatu „OK Glass”. gdy są wyświetlane na osi czasu.
wypowiedź strażnika uruchamia intencję ustawioną przez
Metoda setAction(PendingIntent)
. Jeśli intencja rozpocznie
działanie, które wykorzystuje kontekstowe menu głosowe,
otwieranie w pierwszych elementach menu (np. jakby było wypowiadane „OK Glass”;
). Ta funkcja umożliwia implementowanie kontekstowych menu głosowych na aktywnych kartach.
Parametry
włącz | czy należy włączyć komendy głosowe. |
---|
Zwroty
- ten obiekt do łańcucha wywołań
Zobacz również
publiczne nieważne cofnij publikację ()
Cofanie publikacji tej karty na osi czasu.