LiveCard

Dodano w poziomie API XE12
zajęcia publiczne

LiveCard

Te zajęcia pozwalają tworzyć aktywne karty i publikować je na osi czasu.

Więcej informacji o tworzeniu kart na żywo znajdziesz w przewodniku dla deweloperów na temat aktywnych kart.

Żywotna karta

Karty na żywo wymagają kontekstu od dłuższego czasu przez cały czas ich publikacji, dlatego należy nimi zarządzać w tle: Service. Następnie możesz opublikować aktywną kartę zaraz po uruchomieniu usługi lub w odpowiedzi na inne zdarzenia, które usługa monitoruje. I podobnie, należy cofnąć publikację kart, gdy nie będą już istotne lub gdy usługa zostanie zniszczona.

Podczas publikowania karty możesz wybrać, jaki ma to wpływ na użytkowników. Podczas publikowania dyskretnego karta jest wstawiana na osi czasu bez widocznego efektu. Aby ją zobaczyć, użytkownik musi ją przesunąć. Opublikowaną kartę możesz też automatycznie wyświetlać bezpośrednio po jej opublikowaniu. Jest to często przydatne, gdy głównym interfejsem aplikacji jest karta aktywna, a nie aktywność.

Wyświetlam treści na aktywnej karcie

Karta aktywna może wyświetlać treść z zasobu układu lub przez umożliwienie renderowania kodu bezpośrednio na jego powierzchni roboczej. Wybierz metodę, która najlepiej pasuje do Twojej aplikacji na podstawie tego, jak często musisz aktualizować zawartość karty i czy renderujesz głównie widżety czy grafikę swobodną.

Zawyżanie układu za pomocą widoków zdalnych

Jeśli Twoja aplikacja wymaga tylko standardowych widżetów i rzadkich aktualizacji (co najmniej kilka sekund między odświeżeniami), utwórz kartę za pomocą klasy RemoteViews. Obiekt RemoteViews umożliwia oś czasu Google Glass uruchamianą w ramach niezależnego procesu od własnego kodu aplikacji. Umożliwia załadowanie utworzonego wcześniej układu.

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

Pamiętaj, że gdy opublikujesz kartę za pomocą RemoteViews, zmiany w widokach wywołanych przez metody set* nie będą widoczne na osi czasu, chyba że ponownie wywołasz setViews na aktywnej karcie, aby wymusić aktualizację.

Rysowanie bezpośrednio na aktywnej karcie

Jeśli Twoja aplikacja wymaga częstszych aktualizacji (kilka razy na sekundę) lub renderowania bardziej wyrafinowanej grafiki niż standardowa widżety, włącz bezpośrednie renderowanie i dodaj SurfaceHolder.Callback na ekranie karty.

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

Możesz potem rysować bezpośrednio na powierzchni w wątku w tle lub w odpowiedzi na zdarzenia zewnętrzne (np. aktualizacje czujników lub lokalizacji). Użyj metod surfaceCreated i surfaceDestroyed, aby uruchomić lub zatrzymać logikę renderowania, gdy karta jest widoczna lub ukryta.

Pamiętaj, że metody wywołania zwrotnego właściciela platformy nie są wywoływane w głównym wątku UI.

Obsługa aktywnej karty

Karta na żywo musi zawierać działanie (PendingIntent umożliwiające uruchomienie aktywności, usługi lub transmisji), które zostanie wykonane, gdy użytkownik kliknie kartę. Zwykle wykonuje się to działanie, które powoduje wyświetlenie menu opcji lub przeniesienie użytkownika do innej części aplikacji. Udostępnij 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 na żywo, które nie zawierają akcji, nie są wyświetlane.

Zajęcia zagnieżdżone
enum | typ wyliczeniowy LiveCard.OpublikujTryb Określa sposób prezentowania karty użytkownikowi po jej opublikowaniu. 
Stałe
Ciąg EKSPERYMENT_Z_KARTY_LIVE Wartość logiczna wskazująca, że Intent został aktywowany głosowo na podstawie karty na żywo.
Konstruktorzy publiczny
Metody publiczne
LiveCard
SurfaceHolder,
wartość logiczna
nieważny
nieważny
LiveCard
LiveCard
setDirectrenderEnabled(wartość logiczna włączona)
LiveCard
setRenderer (mechanizm renderowania GlRenderer)
LiveCard
LiveCard
setVoiceActionEnabled(wartość logiczna włączona)
nieważny
Metody dziedziczone

Stałe

Dodano w poziomie API XE21

publiczna statyczna, ostateczna ciąg znaków EXTRA_FROM_LIVECARD_VOICE

Wartość logiczna wskazująca, że Intent został aktywowany głosowo na podstawie karty na żywo.

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

Konstruktorzy publiczny

Dodano w API poziomu XE16

public LiveCard (kontekst, ciąg)

Tworzy aktywną kartę z podanym tagiem.

Pamiętaj, że karta pojawi się dopiero po jej opublikowaniu.

Parametry
sytuacja kontekst aplikacji;
tag niepusty tag do karty; służy do debugowania

Metody publiczne

Dodano w API poziomu XE16

public LiveCard dołącz (usługa)

Dołącz tło Service, aby po opublikowaniu tej karty nastąpiło uruchomienie na pierwszym planie.

Usługa zostanie automatycznie usunięta z pierwszego planu po cofnięciu publikacji aktywnej karty.

Parametry
usługa zostanie uruchomione w prasie
Zwraca
  • ten obiekt na potrzeby łańcucha połączeń
Dodano w poziomie API XE12

publicznie SurfaceHolder getSurfaceHolder ()

Gdy włączone jest renderowanie bezpośrednie, użytkownik otrzymuje dostęp do Surface, na którym może rysować.

Zwróć wartość SurfaceHolder, aby uzyskać dostęp do platformy zarządzanej. Metody zmiany kształtu i typu powierzchni nie są operacją.

Pamiętaj, że wywołania zwrotne tego obiektu nie są wykonywane w wątku użytkownika.

Dodano w poziomie API XE12

publiczne wartość logiczna isOpublikowano ()

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

Dodano w API poziomu XE16

public void nawigacja ()

Wysyła użytkownika na tę kartę na osi czasu.

Wyrzuca
ExceptionStateState jeśli karta nie została opublikowana;
Dodano w poziomie API XE12

publiczne nieważne publish (tryb LiveCard.publishMode)

Publikuje tę kartę na osi czasu.

Karta zostanie wyświetlona tylko wtedy, gdy zawiera działanie, a renderowanie bezpośrednie jest włączone lub ustawiono widoki zdalne.

Parametry
tryb określa sposób wyświetlania karty użytkownikowi
Dodano w poziomie API XE12

publicznie LiveCard setAction (PendingIntent)

Zmienia działanie wykonane po wybraniu karty.

Parametry
intencja zostaną uruchomione po wybraniu karty
Zwraca
  • ten obiekt na potrzeby łańcucha połączeń
Dodano w poziomie API XE12

publicznie LiveCard setDirectrenderEnabled (wartość logiczna włączona)

Umożliwia renderowanie bezpośrednie.

W tym trybie treść karty musi być renderowana bezpośrednio w Surface.

Tę metodę można wywołać tylko wtedy, gdy karta nie została opublikowana. W przeciwnym razie zostanie wywołany wyjątek.

Parametry
włącz Określa, czy ma być włączone renderowanie bezpośrednie.
Zwraca
  • ten obiekt na potrzeby łańcucha połączeń
Zobacz również
Dodano w API poziomu XE16

publicznie LiveCard setRenderer (render GlRenderer)

Dodaje mechanizm renderowania oparty na OpenGL.

Wyrenderer będzie używany do rysowania na żądanej powierzchni (automatycznie) na potrzeby bezpośredniego renderowania.

Zwraca
  • ten obiekt na potrzeby łańcucha połączeń
Dodano w poziomie API XE12

publicznie LiveCard setViews (Wyświetlenia zdalne)

Zmienia atrybuty interfejsu RemoteViews używane do wyświetlania interfejsu tej karty.

Tę metodę należy też wywołać po wprowadzeniu zmian bezpośrednio w zdalnych widokach opublikowanej karty. Takie zmiany nie zostaną odzwierciedlone na osi czasu.

Ta metoda nie działa, jeśli włączone jest renderowanie bezpośrednie.

Parametry
wyświetleń interfejs karty
Zwraca
  • ten obiekt na potrzeby łańcucha połączeń
Dodano w poziomie API XE21

publicznie LiveCard setVoiceActionEnabled (wartość logiczna włączona)

Włącza komendę głosową, gdy karta jest wyświetlana na osi czasu.

Po ustawieniu karta nasłuchuje komunikatu „OK Glass” na osi czasu, a gdy wypowiadana jest fraza zabezpieczająca, uruchamia intencję określoną metodą setAction(PendingIntent). Jeśli intencja uruchomi działanie, które implementuje kontekstowe menu głosowe, zostanie ono automatycznie otwarte w przypadku pierwszych elementów menu (np. jakby w oknie było wypowiadane „OK Google”). Ta funkcja pozwala wdrożyć kontekstowe menu głosowe na kartach na żywo.

Parametry
włącz Określa, czy komenda głosowa powinna być włączona.
Zwraca
  • ten obiekt na potrzeby łańcucha połączeń
Zobacz również
Dodano w poziomie API XE12

public void cofnięcie publikacji ()

Cofnięcie publikacji tej karty na osi czasu.