LiveCard

Dodano na poziomie interfejsu API XE12
klasa publiczna

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
attach(usługa usługa)
SurfaceHolder
wartość logiczna
nieważne
nieważne
LiveCard
LiveCard
setDirectRenderingEnabled(włączenie wartości logicznej)
LiveCard
setRenderer(mechanizm renderowania GlRenderer)
LiveCard
LiveCard
setVoiceActionEnabled(włączenie wartości logicznej)
nieważne
Metody dziedziczone

Stałe

Dodano na poziomie interfejsu API XE21

publiczne statyczny finał Ciąg EXTRA_FROM_LIVECARD_VOICE

Dodatkowa wartość logiczna oznaczająca, że element Intent został aktywowany głosem z aktywnej karty.

Wartość stała: "android.intent.extra.EXTRA_FROM_LIVECARD"

Konstruktorki publiczne

Dodano na poziomie interfejsu API XE16

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

Dodano na poziomie interfejsu API XE16

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ń
Dodano na poziomie interfejsu API XE12

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.

Dodano na poziomie interfejsu API XE12

publiczne Wartość logiczna isPublished ()

Zwraca wartość true, jeśli karta jest obecnie opublikowana.

Dodano na poziomie interfejsu API XE16

publiczne nieważne nawiguj ()

Kieruje użytkownika na tę kartę na osi czasu.

Rzuty
IllegalStateException jeśli karta nie została opublikowana
Dodano na poziomie interfejsu API XE12

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
Dodano na poziomie interfejsu API XE12

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ń
Dodano na poziomie interfejsu API XE12

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ż
Dodano na poziomie interfejsu API XE16

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ń
Dodano na poziomie interfejsu API XE12

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ń
Dodano na poziomie interfejsu API XE21

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ż
Dodano na poziomie interfejsu API XE12

publiczne nieważne cofnij publikację ()

Cofanie publikacji tej karty na osi czasu.