Wzór zadania w toku

W tym przewodniku opisano komponenty, które składają się w trwające zadanie w formie stopera. Bieżące zadanie wyświetla w czasie aktywną kartę, dopóki użytkownik się w nie uczestniczy i umożliwia mu przejście do aktualnej karty i wyjście z niej w razie potrzeby.

Poznasz też wskazówki dotyczące projektowania, programowania i dystrybucji, które są ważne przy tworzeniu własnego oprogramowania Glassware.

Zanim zaczniesz

Pełne źródło stopera jest dostępne na GitHubie. Zaimportuj go do Android Studio, zanim zaczniesz, ponieważ jest to bardzo ważne w tym przewodniku.

  1. Na ekranie Szybki start kliknij Zapłać z kontroli wersji > Git.
  2. Skopiuj URL klona z Stopera.
  3. Wklej adres URL klona do pola Vcs Repository URL (URL repozytorium Vcs) i kliknij klon.
  4. Kliknij Tak na następnym ekranie.
  5. Kliknij OK na następnym ekranie.
  6. Utwórz projekt i uruchom go na połączonym urządzeniu Glass, klikając przycisk Odtwórz. Sprawdź szczegóły wywołania w przykładzie README.

Czego się nauczysz

Dowiesz się, jak wykorzystać komponenty z pakietu SDK do Androida, aby stworzyć zadanie trwające, w ramach stopera, a następnie dodać GDK do projektu Glass. Oto lista tematów, które będą dostępne:

  • Tworzenie niestandardowego widoku, aby rysować na aktywnej karcie
  • Tworzenie usługi do zarządzania aktywną kartą
  • Udostępnienie menu, które pozwala użytkownikom usunąć aktywną kartę z osi czasu
  • Zadeklarowanie aktywatora głosowego w celu uruchomienia stopera z głównego menu głosowego

Struktura

Zanim zaczniesz programować, poświęć trochę czasu na projektowanie szkła. Dzięki temu wiesz, jaki przepływ interfejsu najlepiej działa w Google Glass, jakie polecenia głosowe zobaczysz i jak będą wyglądały Twoje karty.

Oczywiście zaprojektowanie oprogramowania Glass to proces powtarzalny, a niektóre elementy, które teraz projektujesz, ulegną zmianie, ale znaczna część pracy na początku ma kluczowe znaczenie dla zapewnienia znakomitych wrażeń.

Przepływ interfejsu

Projektowanie interfejsu to proste ćwiczenie, które umożliwia wizualizację Glassware przed napisaniem wiersza kodu. Zajmujemy się całą pracą nad szklanymi oprawami, które opracowujemy.

Przyjrzyjmy się głównym elementom stopera, aby zorientować się, jak działa ten interfejs i jak ważny może być proces jego tworzenia.

Główny interfejs użytkownika

Stoper zawiera tylko jeden główny przepływ, który jest dość prosty.

Gdy użytkownik wywoła metodę Glassware, wyświetli się 3-sekundowy odliczanie przed upływem czasu. Stoper odlicza czas do momentu, aż użytkownik usunie go z osi czasu za pomocą pozycji menu Zatrzymaj.

Polecenie głosowe

Polecenie głosowe powinno znajdować się na wczesnym etapie procesu projektowania. Polecenia głosowe umożliwiają użytkownikom uruchamianie Glass w menu głosowym (na karcie zegara) w Google Home. W razie potrzeby odgrywają ważną rolę w projektowaniu oprogramowania Glassware.

Na przykład polecenie Publikuj aktualizację działa dobrze w modelu pożaru, w którym użytkownicy wypowiadają tekst, a Glassware przetwarza go bez dalszej interwencji użytkownika. Dzięki temu użytkownicy mogą szybko wrócić do tego, co robią.

Z drugiej strony, na przykład w Zagranie w grę warto zwykle trafić na ekran powitalny, aby użytkownicy mogli się zorientować. To polecenie głosowe prawdopodobnie jest wciągające, dlatego możesz spodziewać się dodatkowych ekranów i menu, które pozwolą uruchomić grę. Natychmiast po uruchomieniu użytkownikom polecenie głosowe zwykle nie jest korzystne dla gier.

Stoper używa polecenia głosowego Uruchom stoper. Po wywołaniu polecenia głosowego stoper zaczyna się po krótkim, pełnoekranowym ekranie odliczania, który jest lepszy niż uruchomienie elementu menu. W przypadku bieżących zadań najlepiej jest skupić się na tym, aby użytkownicy jak najszybciej skorzystali z interfejsu.

Układy kart

Niezależnie od tego, czy tworzysz karty interaktywne, czy karty LiveOps, w miarę możliwości korzystaj z CardBuilder lub układów XML.

Aby stworzyć najlepsze oprogramowanie Glass, często trzeba utworzyć własny układ, więc przestrzegaj wytycznych dotyczących interfejsu.

Stoper jest zgodny z ogólnymi wytycznymi dotyczącymi układu, ale ma niestandardowe układy interfejsu z użyciem standardowych komponentów Androida, takich jak widoki i układy.

Programuj

Do tworzenia kart na żywo potrzebujesz tych samych narzędzi, które są używane do programowania na urządzeniach z Androidem, a następnie przetworzysz większą część szkła z użyciem interfejsów API GDK.

Do tworzenia oprogramowania Glass często używa się popularnych komponentów Androida, ale pamiętaj, że niektóre pojęcia mogą być nieco inne. Na przykład karty aktywne możesz renderować i zarządzać nimi w usłudze Android, co nie jest typowym sposobem korzystania z usług w tradycyjnych aplikacjach na Androida. Innym przykładem są karty transmisji, które nie mają własnego kontekstu UI, więc musisz użyć aktywności powłoki, która wyświetla menu aktywnej karty. W dalszej części tego przewodnika dowiesz się, jak te komponenty są tworzone.

W pozostałych sekcjach programowania znajdziesz informacje o strukturze stopera oraz głównych elementach zaimportowanego wcześniej projektu. Dobrze jest mieć zainstalowanego Android Studio i śledzić postępy. Kod źródłowy jest komentowany, więc ta sekcja zawiera ogólne informacje o każdym pliku i przydatne wskazówki, które można zastosować do własnego oprogramowania Glassware.

Polecenie głosowe

Polecenia głosowe możesz utworzyć za pomocą pliku zasobów XML, w którym podajesz polecenie, a następnie określając zasób XML w pliku AndroidManifest.xml.

Z poleceniem stopera są powiązane te pliki:

  • res/xml/voice_trigger_start.xml – deklaruje polecenie głosowe, którego chcesz użyć.
  • AndroidManifest.xml – deklaruje usługę aktywnej karty, która ma się uruchomić, gdy wypowiesz polecenie głosowe.

Widok odliczania

Stoper pokazuje odliczanie przed czasem, zanim zostanie zarejestrowany czas, aby użytkownicy wiedzieli, że czas dobiega końca.

Z widokiem odliczania są powiązane te pliki:

  • res/layout/card_countdown.xml – określa układ przeglądarki z odliczaniem
  • src/com/google/android/glass/sample/stopwatch/CountDownView.java– określa widok odliczania,

Widok chonometru

To jest główny widok stopera. Pokazuje czas, który upłynął od zakończenia reklamy pełnoekranowej. Z widokiem licznika czasu są powiązane te pliki:

  • res/layout/card_chronometer.xml – definiuje układ widoku stopera.
  • src/com/google/android/glass/sample/stopwatch/ChronometerDrawer.java – określa sposób renderowania widoku. Usługa karty na żywo wywołuje tę klasę, aby rysować do usługi kart na żywo.
  • src/com/google/android/glass/sample/stopwatch/ChronometerView.java – widok stopera używający poprzedniego układu jako interfejsu.

Usługa stopera

To usługa, która zarządza cyklem życia i renderowaniem aktywnej karty. Z tą usługą powiązane są te pliki:

  • src/com/google/android/glass/sample/stopwatch/StopwatchService.java – zarządza kartą aktywnego stopera i obsługuje cykl życia usługi.

Karty transmisji na żywo nie mają własnego kontekstu, w którym można wyświetlić menu, ponieważ renderują interfejsy w kontekście osi czasu.

Aby ominąć to ograniczenie, musisz utworzyć przezroczystą aktywność, która będzie widoczna u góry osi czasu, a następnie wyświetlić menu aktywności, gdy użytkownik kliknie kartę na żywo.

  • src/com/google/android/glass/sample/stopwatch/MenuActivity.java – określa przezroczystą aktywność w menu, która natychmiast wyświetla menu, gdy aktywność jest widoczna.
  • res/values/styles.xml – określa przezroczysty styl stosowany w menu.
  • res/menu/stopwatch.xml – zasób menu zawierający wymagany element menu Zatrzymaj.

Plik manifestu Androida

Plik AndroidManifest.xml opisuje główne komponenty Glassware, dzięki czemu system wie, jak je uruchomić. Plik manifestu Charades zawiera te informacje:

  • Ikona i nazwa Glass. Glass będzie wyświetlać te informacje w menu głównym, jeśli na to samo polecenie głosowe odpowie więcej niż jedno urządzenie Glassware.
  • Wszystkie usługi i czynności związane ze stoperem. Jest to wymagane, aby system wiedział, jak uruchomić komponenty Glassware.
  • Polecenie głosowe i filtr intencji, które uruchamia usługę aktywnej karty, gdy zostanie wypowiedzone polecenie głosowe.
  • Kod wersji Glassware. Ten kod musi być aktualizowany (i zwykle również nazwą wersji) za każdym razem, gdy do usługi MyGlass wysyłana jest nowa wersja tego pliku APK.