Google Glass je futuristična tehnologija, ki obljublja revolucijo v načinu uporabe naših naprav za interakcijo s svetom. Toda kaj je tako posebnega pri razvoju stekla z vidika razvijalca? Odgovor je 'Nič!' Pravzaprav z vidika izkušeni razvijalec za Android , Google Glass je le še ena naprava Android z zelo majhnim zaslonom in omejenimi funkcijami!
Dejstvo, da lahko vsakdo, ki ima znanje o razvoju Androida, postane član te 'elitne' skupnosti futurističnih evangelistov, ki jih je mogoče nositi, je del tega, zaradi česar je Google Glass tako čudovit. Seveda se boste morali naučiti nekaj novih stvari, na primer razlike med “Potopitvijo” in “Aktivno kartico”, toda kot boste videli, krivulja učenja ni strma.
Namen te vadnice Google Glass je postaviti temelje za razvoj katere koli aplikacije Glass z ustvarjanjem preproste aplikacije, ki zajema vse običajne korake. Moj cilj je prihraniti nekaj časa pri raziskavah in poskusih in napakah ter vam omogočiti, da čim prej zaženete svojo prvo aplikacijo Glass.
V tej vadnici bomo najprej preučili, kako nastaviti razvojno okolje in povezati Google Glass z računalnikom. Nato bomo ustvarili preprosto aplikacijo Glass Hello, ki bo vključevala glasovne ukaze po meri in integracijo z začetnim menijem Glass. Ko boste svojo prvo aplikacijo razvili in zagnali na vašem Glassu, se boste naučili osnov navigacije v aplikacijah Glass, glasovno aktiviranih menijev in dinamičnega ustvarjanja vsebine.
Steklo je še vedno v nekakšni fazi 'beta testiranja', za kar je Google izumil izraz 'raziskovalni program'. Ne glede na to, Glass še ni nekaj, kar bi lahko dobili v trgovini, kot je pametni telefon. Na žalost razvojna orodja za Android še vedno nimajo emulatorja, s katerim lahko razvijete svojo aplikacijo brez dejanske strojne opreme.
Če želite torej zagnati in odpraviti napake v svoji aplikaciji, boste morali s programom Explorer dobiti dejanski Google Glass. Če se želite pridružiti obisku programa strani za prijavo in se prijavite za dostop. Po odobritvi pripravite kreditno kartico in počakajte, da bo kozarec dostavljen. Raziskovalčeva različica Glass trenutno stane 1.500 USD, vendar naj bi se cena znatno znižala, preden naprava pride v trgovine.
Zaradi pomanjkanja kakršnega koli emulatorja morate imeti dejansko strojno opremo Google Glass, da bi lahko razvili aplikacijo v tej vadnici (ali kateri koli aplikaciji Glass), toda če je pridobitev takšne, je zunaj vašega proračuna, ne bodite malodušni bo vseeno vredno spremljati. V tej vadnici se bo pokazalo, da je razvoj za Glass skoraj enako kot razvoj za katero koli drugo platformo Android!
Če še vedno niste uporabljali Googla Glass, vendar ste nad njim navdušeni kot jaz, si oglejte ta dva videoposnetka, saj bi vam morala dati dovolj informacij za razumevanje osnov uporabniškega vmesnika.
Obstaja še več uporabnih videoposnetkov za nastavitev in navigacijo tukaj in veliko več podrobnosti o uporabniškem vmesniku tukaj .
To Razvijalca Google Glass vadnica podaja naslednje predpostavke:
V redu, začnimo!
Prva stvar, ki jo morate storiti, je, da na steklu omogočite način za odpravljanje napak. Kaj takega morate narediti v vsaki napravi Android, ki jo uporabljate za razvoj svojih aplikacij, da je to morda znano. Če želite omogočiti odpravljanje napak, povlecite do Nastavitve '->' Informacije o napravi 'In nato tapnite, da odprete meni naprave. Izberite “ Vklopite odpravljanje napak 'In bo omogočeno.
Nato morate pripraviti svoje razvojno okolje. Trenutna različica Google Glass zahteva, da uporabljate API različice 19, zato se prepričajte, da je nameščen. Prav tako morate imeti nameščen komplet za razvoj stekla. Če tega še niste storili, z upraviteljem Android SDK namestite ta dva paketa.
Naredimo torej naš prvi kos 'Steklovine'. (Da, Google je skoval drug izraz! »Glassware« je ime za katero koli aplikacijo, ki se izvaja v Google Glassu). Začeli bomo z razvojem dobrega starega 'Hello World!' aplikacijo. Tako kot večina glavnih razvojnih okolij za Android, tudi Android Studio samodejno zapolni nove aplikacije s predlogo za prikaz te slavne fraze. Kot rezultat, dobite 'Hello World!' zagon in delovanje je zgolj vaja pri temeljni uvajanju aplikacij.
V Android Studio kliknite » Nov projekt «In izpolnite projektni obrazec. Lahko uporabite nekaj podobnega temu:
Ko izbirate dejavnike oblike in API, izberite » Steklo «In API 19
Izberite “ Aktivnost potapljanja 'Kot vašo zagonsko dejavnost.
Se spomnite, da sem omenil, da se boste morali naučiti razlike med Immersion in Live Card? Googlove Članek o uporabniškem vmesniku razlaga različne vrste zaslon Glass. Tu je kratek povzetek:
Karte v živo so dodani na časovno premico Glass in v realnem času prikazujejo informacije o nečem s pomočjo visokofrekvenčnih posodobitev. Nenehno se izvajajo v ozadju, tudi če uporabniki komunicirajo z različnimi karticami. To uporabnikom omogoča večopravilnost s stalnim dostopom do različnih vrst informacij v realnem času.
Potopitve so popolnoma prilagodljivi zasloni, ki delujejo zunaj časovne izkušnje. Ti vam omogočajo oblikovanje lastnega uporabniškega vmesnika in obdelavo uporabniškega vnosa, kot se vam zdi primerno. To bomo uporabili!
Na naslednjem zaslonu čarovnika pustite privzete vrednosti za » Ime 'In' Naslov 'In kliknite' Končaj '.
Po Gradle poskrbi za vaše odvisnosti in pripravi vaš projekt, čas je, da ga priklopite v Glass. Zdaj je to futuristični razvoj!
Če predpostavimo, da so vsi vaši gonilniki za Android ADB nameščeni in da vaš sistem prepozna vaš Glass, bi morali imeti Glass na seznamu naprav.
Če ste napravo prvič povezali z računalnikom, bo Glass zahteval odobritev / zaupanje. Samo tapnite kozarec, da omogočite povezavo, in že bi morali biti pripravljeni.
Kliknite » Teči «In namestite svoj» Privzeti APK «z» MainActivity «kot zagonsko dejavnost za zagon v napravi» USB «.
Po nekaj sekundah bi morali videti nekaj takega na zaslonu Glass:
Hura! Vaša aplikacija deluje na Googlu Glass! In vse, kar ste morali storiti, je, da ob ustvarjanju aplikacije izpolnite nekaj privzetih vrednosti!
Ker nismo določili drugače, bo Glass aplikacijo prikazal pod imenom »Pokaži predstavitev«. Če povlečete nazaj do začetnega zaslona in nato tapnete, da odprete meni aplikacije, bo prikazan takole:
V redu, zagnali ste ga, vendar to ni videti kot prava aplikacija za Glass in ne želite, da se aplikacija zažene s 'Show demo'.
V tej vadnici ga bomo le malo prilagodili, da bomo dobili pravi občutek.
Prvič, nočete zavzeti nobenega majhnega zaslona Glass s to grdo naslovno vrstico dejavnosti »Hello World Immersion« in zagotovo ne želite, da je zaslon siv s črno pisavo. Da bi to popravili, moramo samo preklopiti temo na našem Androidu in pustiti, da za to poskrbi Glass OS.
Odpri res/values/styles.xml
za urejanje. Vsebovati mora naslednjo vsebino:
android:Theme.Holo.Light
Samo spremenite android:Theme.DeviceDefault
do AndroidManifest.xml
. To naj samodejno poskrbi za postavitev in barve aplikacij s privzeto temo Glass.
Ok, naslednja stvar, ki jo želimo narediti v tej vadnici za razvoj stekla, je, da nastavimo našo aplikacijo tako, da ima pravilno ime in lep glasovno nadzorovan zagon. Odprite Android Manifest (
DEVELOPMENT
oznaka:
DEVELOPMENT
Razlog, zaradi katerega želite uporabiti voice_trigger.xml
dovoljenj, tako da se lahko igrate z glasovnimi kontrolami po meri. Google je precej strog glede tega, kateri glasovni ukazi so dovoljeni v odobrenih aplikacijah Glass, in vsi novi ukazi morajo biti odobreni. Ker je ta vadnica namenjena učenju in te vloge ne boste oddali v uradno trgovino s steklovino, vas ne bi smelo skrbeti. Samo vklopite res/xml/
in boste imeli dostop do »glasovnih ukazov, ki niso na seznamu«. Za več informacij o tem preberite tej strani GDK .
Odpri android:label='@string/app_name'
za urejanje. Tu je definiran glasovni ukaz za zagon aplikacije. Nahajati se mora v @string/app_name
mapo. Morali bi dobiti vsebino, podobno tej:
Hello Glass
Namesto da bi rekli »Pokaži mi predstavitev«, da zaženemo našo aplikacijo, izgovorimo samo ime aplikacije. Vsebino datoteke spremenite v:
android:label='@string/app_name'
Če se vrnete v datoteko manifesta, boste morda opazili, da je vaš res/values/strings.xml
je bil samodejno posodobljen, tako da uporablja tudi niz virov app_name
namesto trdo kodirane Hello Glass
vrednost, kot je bila prej. Če ta nastavitev ni bila posodobljena, nastavite vrednost na voice_trigger.xml
.
In kako točno je ime vaše aplikacije? Če odprete network='true'
, bo vaš FEATURE_VOICE_COMMANDS
je treba navesti kot:
onCreate
To bi moralo zaokrožiti stvari za vaš prvi program Hello Glass. Poglejmo, kako to deluje zdaj!
Na začetnem zaslonu lahko rečete 'Ok steklo' , da odprete glasovni meni. Vaša aplikacija je zdaj na seznamu glasovno aktiviranih ukazov.
S to vadnico, ki vas vodi, je tako videti zdaj začetni zaslon aplikacije Glass.
Če rečeš ' Pozdravljen kozarec 'Začela bi se vaša aplikacija in dobili bi standardizirano izkušnjo s steklom:
Če ne želite z glasom aktivirati aplikacije, se preprosto dotaknite začetnega zaslona in v meniju boste videli, da je vaša aplikacija na voljo:
Zelo pomembno je, da ste zelo pozorni na vmesnik vaše aplikacije in interakcijo vaših uporabnikov z njo. Ne pozabite, da vaši uporabniki niso vedno sposobni uporabiti svojega glasu - na primer med gledanjem predavanja ali predstavitve. Lahko pa imajo polne roke dela in ne morejo uporabljati dotika. Predlagam, da omogočite interakcijo z menijem na dotik in z glasom, kadar koli je to mogoče, kar uporabnikom omogoča vzporedno krmarjenje po vaši aplikaciji z uporabo glasu in sledilne ploščice.
Zdaj, ko ste zadovoljni z razvojem Glass in ste ustvarili Hello Glass, je čas, da ustvarite resnično aplikacijo, ki bo omogočila delovanje novih funkcij Glass. Zgradimo aplikacijo, ki vam omogoča brskanje po profilih najboljših razvijalcev ApeeScape na podlagi razvojne platforme.
Struktura našega primera aplikacije Glass bo preprosta:
Na hitro ponovimo, kaj ste že dodali poleg znanja o Androidu:
S tem znanjem zaženite in zaženite novo aplikacijo. Aplikacijo Hello Glass lahko posodobite od zgoraj ali pa zaženete novo aplikacijo, ki sledi istim korakom. Poimenujte to aplikacijo “ Top Finder ', In vnesite MainActivity
datoteka izgleda takole.
getWindow().requestFeature(WindowUtils.FEATURE_VOICE_COMMANDS);
The res/menu
omejitev pove steklu, naj pri zagonu te aplikacije preveri omrežno povezljivost, ki jo bomo morali povezati s seznami razvijalcev ApeeScape. Če povezave ni, bo Glass prikazal opozorilno sporočilo.
Naj bo domači zaslon naše aplikacije videti nekako takole:
Ko vidite 'Ok steklo' sporočilo na zaslonu pomeni, da ima aplikacija na tem mestu glasovno aktiviran meni. Ko govorim besedno zvezo 'Ok steklo' tukaj aktivira glasovni meni za to lokacijo. Ta stavek je vnaprej določil Glass in ga ne morete spremeniti.
Lahko si omislite 'Ok steklo' kot 'aplikacijski meni', tako kot ste ga uporabljali pri razvoju pametnega telefona / tabličnega računalnika, in ima popolnoma enako vlogo. Ko bi se na zaslonu »pogosto dotaknili« ikone menija z aplikacijami (pogosto 3 pike ali vrstice), morate odpreti meni aplikacije Android, morate 'Ok steklo' , da odprete glasovno aktiviran meni v aplikaciji Glassware.
Da bi omogočili 'Ok steklo' meni, ki ga morate zahtevati main.xml
iz API-ja. Če želite to narediti, dodajte naslednjo vrstico v onCreatePanelMenu
vodnik v vašem MainActivity
:
@Override public boolean onCreatePanelMenu(int featureId, Menu menu){ if (featureId == WindowUtils.FEATURE_VOICE_COMMANDS || featureId == Window.FEATURE_OPTIONS_PANEL) { getMenuInflater().inflate(R.menu.main, menu); return true; } return super.onCreatePanelMenu(featureId, menu); }
Vsaka dejavnost, ki vključuje to funkcijo, bo upodobljena z 'Ok steklo' besedilo spodaj na sredini.
Naslednja stvar, ki jo morate storiti, je ustvariti meni za glavni zaslon. V vašem findDevelopers
mapa ustvari novo definicijo menija XML z imenom public void findDevelopers(String platform){ } @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { if (featureId == WindowUtils.FEATURE_VOICE_COMMANDS || featureId == Window.FEATURE_OPTIONS_PANEL) { switch (item.getItemId()) { case R.id.find_android: findDevelopers('Android'); break; case R.id.find_javascript: findDevelopers('Java Script'); break; case R.id.find_ios: findDevelopers('iOS'); break; } return true; } return super.onMenuItemSelected(featureId, item); }
. Da bomo stvari poenostavili, bomo omogočili samo tri platforme za razvijalce ApeeScape, vendar spremembe lahko vnesete, kot želite.
Vsebovati mora naslednjo vsebino:
res/drawable/logo.png
Morda se sprašujete, zakaj sem namesto Androidov, JavaScript in iOS izbral precej dolge naslove menijev. No, razlog je zelo preprost. Fantje iz razvojne ekipe za Glass še vedno izboljšujejo prepoznavanje glasu. Priporočljivo je, da v menijih uporabite dve ali tri besede, da jih bo Glass lažje prepoznal.
Sem že omenil, da 'Ok steklo' meni se ne razlikuje od običajnega menija aplikacije Android. Priključitev menija k dejavnosti je praktično enako. Preglasite MainActivity
v vašem private CardScrollView mCardScroller; private View mView; private GestureDetector mGestureDetector;
in napihnite glavni meni, ki ste ga pravkar ustvarili:
buildView
Zdaj moramo dodati upravljalnik menijev. Preden to storite, ustvarite eno prazno metodo z imenom private View buildView() { Card card = new Card(this); card.setText(R.string.app_name); card.setImageLayout(Card.ImageLayout.LEFT); card.addImage(R.drawable.logo); return card.getView(); }
. Na to se bomo vrnili kasneje, da začnemo iskati in prikažemo rezultate. Po tem lahko preglasite upravljalnik menijev.
onCreate
Zdaj je čas, da domači zaslon aplikacije Google Glass naredimo lep. Uvozite logotip ApeeScape v svojo aplikacijo kot protected void onCreate(Bundle bundle) { super.onCreate(bundle); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); getWindow().requestFeature(WindowUtils.FEATURE_VOICE_COMMANDS); mView = buildView(); mCardScroller = new CardScrollView(this); mCardScroller.setAdapter(new CardScrollAdapter() { @Override public int getCount() { return 1; } @Override public Object getItem(int position) { return mView; } @Override public View getView(int position, View convertView, ViewGroup parent) { return mView; } @Override public int getPosition(Object item) { if (mView.equals(item)) { return 0; } return AdapterView.INVALID_POSITION; } }); // Handle the TAP event. mCardScroller.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { openOptionsMenu(); } }); mGestureDetector = createGestureDetector(this); setContentView(mCardScroller); }
. Uporabil sem to sliko:
V vašem MainActivity
razred, naredite naslednje spremembe.
Prepričajte se, da so na začetku razreda navedene naslednje zasebne spremenljivke:
private GestureDetector createGestureDetector(Context context) { GestureDetector gestureDetector = new GestureDetector(context); //Create a base listener for generic gestures gestureDetector.setBaseListener( new GestureDetector.BaseListener() { @Override public boolean onGesture(Gesture gesture) { if (gesture == Gesture.TAP) { openOptionsMenu(); return true; } else if (gesture == Gesture.TWO_TAP) { // do something on two finger tap return true; } else if (gesture == Gesture.SWIPE_RIGHT) { // do something on right (forward) swipe return true; } else if (gesture == Gesture.SWIPE_LEFT) { // do something on left (backwards) swipe return true; } else if (gesture == Gesture.SWIPE_DOWN){ finish(); } return false; } }); gestureDetector.setFingerListener(new GestureDetector.FingerListener() { @Override public void onFingerCountChanged(int previousCount, int currentCount) { // do something on finger count changes } }); gestureDetector.setScrollListener(new GestureDetector.ScrollListener() { @Override public boolean onScroll(float displacement, float delta, float velocity) { // do something on scrolling return true; } }); return gestureDetector; } @Override public boolean onGenericMotionEvent(MotionEvent event) { if (mGestureDetector != null) { return mGestureDetector.onMotionEvent(event); } return false; }
Spremenite findDevelopers
način prilagajanja postavitve kartice:
DeveloperModel.java
In spremenite svoj java/models
vodnik, da bo takšen:
public class DeveloperModel implements Serializable { private String name; public String getName(){ return name; } public void setName(String name){ this.name=name; } private String platform; public String getPlatform(){ return platform; } public void setPlatform(String platform){ this.platform=platform; } private String image; public String getImage(){ return image; } public void setImage(String image){ this.image=image; } }
Kot sem že rekel, želimo vključiti tudi meni, ki se aktivira z dotikom 'Ok steklo' , zato samo omogočite poteze, kot bi to storili v svoji aplikaciji za Android. V CardScrollAdapter
dodajte naslednje metode razred:
DeveloperAdapter.java
To bi moralo biti to! Zdaj lahko zaženete aplikacijo in preizkusite oba načina aktiviranja menija. Če rečeš 'Ok steklo' na zaslonu se prikažejo trije elementi menija, in če tapnete steklo, se odpre pomični meni. Za krmarjenje po menijskih elementih lahko povlečete naprej in nazaj.
Takole je videti glasovni meni:
In tukaj je meni s kretnjami:
Če izberete element menija, se nič ne bo zgodilo kot java/adapters
metoda še ni uvedena.
Še naprej bomo uporabljali privzeto postavitev Glass Card s sliko na levi strani, besedilom na desni in nekaj informacijami o nogi. Za več informacij o najboljših praksah za oblikovanje kartic glejte Google Glass slog vodnik .
Naš profil razvijalca je opredeljen s preprostimi lastnostmi:
Torej, poskrbimo za pravilno strukturo razredov v naši aplikaciji. Ustvarite nov razred z imenom public class DeveloperAdapter extends CardScrollAdapter { private List mCards; private List mData; public DeveloperAdapter(List cards){ this.mCards = cards; } @Override public int getCount() { return mCards.size(); } @Override public Object getItem(int i) { return mCards.get(i); } @Override public View getView(int i, View view, ViewGroup viewGroup) { return mCards.get(i).getView(); } @Override public int getPosition(Object o) { return this.mCards.indexOf(o); } }
v vašem ResultsActivity
mapo. Želimo si, da bi bil ta razred serializirati, saj bo vseboval profile, ki so na seznamu.
MainActivity
Želimo, da so naše kartice tesno povezane s podatki našega profila razvijalca. Ker privzeto java/com.helloglass
je nekoliko splošen glede na svoj podatkovni model, zato ga moramo razširiti in narediti po svoje. Ustvari extends Activity
v vašem developer.xml
mapa:
ResultsActivity
Ne želimo, da se naši rezultati iskanja dodajo na začetni zaslon aplikacije, zato bomo ustvarili novo dejavnost, ki bo iskala in prikazovala rezultate. Ustvari novo dejavnost, MainActivity
, poleg vašega ResultsActivity
(verjetno v public static final String SEARCH = 'search'; private String mPlatform='Android';
).
Prepričajte se, da je ResultsActivity
.
Nato moramo določiti meni za naše kartice profilov razvijalcev. Ustvarite nov meni, MainActivity
, z naslednjo vsebino:
private CardScrollView mCardScroller; private List mCards; private GestureDetector mGestureDetector;
Za omogočanje prenosa parametrov med findDevelopers
in ResultsActivity
dodajte naslednje vrstice na začetek private void findDevelopers(String platform){ for (int i=1; i<=10; i++){ Card card = new Card(this); card.setText(platform+' '+Integer.toString(i)); card.setTimestamp(platform); card.setImageLayout(Card.ImageLayout.LEFT); card.addImage(R.drawable.ic_person_50); mCards.add(card); } mCardScroller.setSelection(0); }
razred:
MainActivity
Ne pozabite dodati nove dejavnosti v datoteko manifesta:
findDevelopers
Nastavitev začetnega zaslona ResultsActivity
in konfiguriranje kartic je zelo podobno tistemu, ki smo ga počeli platform
Najprej preverite, ali imate na začetku definirane kartice in drsnik:
public void findDevelopers(String platform){ Intent resultsIntent = new Intent(this, ResultsActivity.class); resultsIntent.putExtra(ResultsActivity.SEARCH, platform); startActivity(resultsIntent); }
Ustvarite začasno metodo iskanja, na katero se bomo kasneje vrnili, da jo bomo izvedli. Dodajanje novih kart na seznam profilov je tako preprosto kot dodajanje elementov v polje. To metodo bomo poimenovali ResultsActivity
tudi, toda ta pripada @Override public boolean onCreatePanelMenu(int featureId, Menu menu){ if (featureId == WindowUtils.FEATURE_VOICE_COMMANDS || featureId == Window.FEATURE_OPTIONS_PANEL) { getMenuInflater().inflate(R.menu.developer, menu); return true; } return super.onCreatePanelMenu(featureId, menu); }
:
ResultsActivity
Zdaj se vrnite na vaš openOptionsMenu()
in posodobitev onGesture(Gesture gesture)
tam za začetek private GestureDetector createGestureDetector(Context context) { // … @Override public boolean onGesture(Gesture gesture) { if (gesture == Gesture.TAP) { openOptionsMenu(); return true; } else if // …
in podajte v @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { if (featureId == WindowUtils.FEATURE_VOICE_COMMANDS || featureId == Window.FEATURE_OPTIONS_PANEL) { switch (item.getItemId()) { case R.id.developer_fav: Toast.makeText(getApplicationContext(), 'Favorite', Toast.LENGTH_LONG).show(); break; case R.id.developer_hire: Toast.makeText(getApplicationContext(), 'Message', Toast.LENGTH_LONG).show(); break; case R.id.go_back: break; } return true; } return super.onMenuItemSelected(featureId, item); }
lastnina:
ic_person_50.png
Priložite svoj meni za razvijalce na resdrawable
. Meni boste lahko odprli na kateri koli profilni kartici.
onCreate
Tako kot prej omogočite poteze za upravljanje sledilne ploščice na steklu, ko ResultsActivity
se prikaže. Za to preprosto pokličite MainActivity
v vašem @Override protected void onCreate(Bundle bundle) { super.onCreate(bundle); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); getWindow().requestFeature(WindowUtils.FEATURE_VOICE_COMMANDS); mCardScroller = new CardScrollView(this); mCards = new ArrayList(); if(getIntent().hasExtra(SEARCH)){ mPlatform = getIntent().getStringExtra(SEARCH); } findDevelopers(mPlatform); mCardScroller.setAdapter(new DeveloperAdapter(mCards)); // Handle the TAP event. mCardScroller.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { openOptionsMenu(); } }); mGestureDetector = createGestureDetector(this); setContentView(mCardScroller); }
metoda:
onResume
Dejanjem, povezanim z razvijalci, dodajte tudi upravljalnik menijev. Zaenkrat bomo pustili preprosta Toast sporočila.
onPause
Vsaka aplikacija mora uporabljati nekaj lepih vizualnih elementov, ikon itd. Skupina Google Glass je zagotovila zelo velik nabor običajnih standardiziranih ikon, ki jih lahko razvijalci Glass uporabljajo v svojih aplikacijah. Tu lahko najdete celoten nabor standardnih ikon Glass in pisav v njihovi knjižnici
Za zdaj potrebujete samo eno ikono MainActivity
, zato jo prenesite na svoj MainActivity
mapo. To ikono bomo uporabili namesto prenosa slike razvijalca.
Zadnja stvar, ki je za zdaj ostala v naši vadnici za razvoj aplikacij Glass, je preglasiti našo
na , kjer bomo preverili, s katere razvojne platforme je bila posredovana in zapolnite naš seznam.Lahko zapustite
|_+_|in metode enake kot v vašem
|_+_|.
Če svojo aplikacijo zaženete zdaj, lahko preverite, kako se vaši profili razvijalcev ustvarjajo sproti na podlagi menija, izbranega v
. Spet imate možnost prikaza menija z uporabo 'Ok steklo' ali s tapkanjem sledilne ploščice ali z glasovnim aktiviranjem. Trenutno je videti profil »10. razvijalca za Android«:
S tapkanjem se odpre meni na dotik:
In rekel 'Ok steklo' prikaže glasovni meni:
Povlecite s seznama navzdol, da se vrnete na začetni zaslon aplikacije.
Za konec stvari zapolnimo meni z resničnimi informacijami za 10 najboljših razvijalcev za ApeeScape JavaScript , Android , in ios .
Boste morali prenesti njihove slike profila in jih dati na voljo prek HTTP ali pa preprosto uporabiti URL-je neposredno iz toptal.com .
Ker je gradnja spletnega pajka samo zato, da dobite imena najboljših razvijalcev v ApeeScape, morda preveč ovinek za ta članek, sem ustvaril datoteke JSON, ki jih lahko uporabite za Android , JavaScript , in ios .
V svoji aplikaciji morate najprej zahtevati dostop do interneta iz sistema Android. V datoteko manifesta dodajte naslednjo vrstico
|_+_|
Upoštevajte, da vam Glass ne bo mogel blokirati glavne niti z neposredno uporabo zahtev HTTP. Prenose JSON in posamezne slike boste morali obravnavati asinhrono. Uporabite lahko asinhronizacijsko nalogo, ustvarite lastno storitev za prenos ali namen ali kar koli želite pri svojem vsakdanjem delu.
Izdelava te funkcije ni značilna za Google Glass, zato bom preskočila odrezke kode. Če napredujete in začnete delati še zadnji del funkcije, bi morale biti vaše profilne kartice videti takole:
Upam, da ste se zabavali, ko ste spremljali to vadnico za razvoj Googla Glass in ustvarili svojo prvo aplikacijo Glassware. Do zdaj bi vas že zanimalo, da se pisanje aplikacij za Glass ne razlikuje veliko od katere koli druge platforme Android.
Na tej točki ste se naučili, kako razširiti začetni zaslon z glasovnim vklopom Google Glass, kako ustvariti lastne glasovno aktivirane menije in kako kombinirati glasovne kontrole z gestami na dotik. Prav tako morate razumeti koncepte in osnovne gradnike za uporabniški vmesnik za Glass, kot so kartice, postavitve in elementi. Videli ste, kako dinamično ustvarjate kartice in kako se premikate med različnimi dejavnostmi.
Če se želite poglobiti, pojdite na Googlove vire za razvijalce na developers.google.com/glass . Ko začnete graditi bolj zapletene aplikacije, se bo izkazal za zelo koristen vir.
Opozarjamo vas, da je Glass še v fazi razvoja in je verjetno še veliko izboljšav, ki jih je treba izvesti, preden pride na potrošniški trg. Glede na to imam za vas eno pomembno opombo:
Na področju prepoznavanja glasu je ostalo še kar nekaj dela in morda se boste ujeli, kako kričite na svojega namišljenega prijatelja, medtem ko poskušate začeti s svojo dejavnostjo ali vnesti nekaj informacij. Brez skrbi - vsi, ki preizkusijo razvoj Google Glass, se počutijo enako, zato niste sami.
Tehnologija se bo izboljšala in steklo bo v kratkem pripravljeno za prodajo. Zagotovo bo naredil velike valove, ko pride v trgovine, zato upam, da ste tako navdušeni kot jaz, da ste med prvimi, ki so v ospredju te razburljive tehnologije!
Zadreti se : Posnetki zaslona v tem članku so narejeni z uporabo [e-pošta zaščitena] .