Google Glass on futuristinen tekniikka, joka lupaa mullistaa sen, miten käytämme laitteitamme vuorovaikutuksessa maailman kanssa. Mutta mitä kehittäjän näkökulmasta on niin erikoista lasin kehittämisessä? Vastaus on 'Ei mitään!' Itse asiassa kokenut Android-kehittäjä , Google Glass on vain yksi Android-laite, jolla on hyvin pieni näyttö ja rajoitetut ominaisuudet!
Se, että kuka tahansa, jolla on Android-kehitystietoa, voi liittyä tämän futurististen puettavien teknologioiden evankelistien eliittiyhteisön jäseneksi, on osa sitä, mikä tekee Google Glassista niin mahtavan. Toki sinun on opittava muutama uusi asia, kuten ero upottamisen ja aktiivisen kortin välillä, mutta kuten näette, oppimiskäyrä ei ole jyrkkä.
Tämän Google Glass -opetusohjelman tarkoituksena on luoda perusta minkä tahansa Glass-sovelluksen kehittämiselle luomalla yksinkertainen sovellus, joka sisältää kaikki yleiset vaiheet. Tavoitteenani on säästää aikaa tutkimuksessa ja erehdyksissä ja antaa sinun suorittaa ensimmäinen Glass-sovelluksesi mahdollisimman pian.
Tässä opetusohjelmassa käymme ensin läpi, miten voit määrittää kehitysympäristön ja liittää Google Glassin tietokoneeseesi. Sitten luomme yksinkertaisen “Hello World” Glass -sovelluksen, joka sisältää mukautetut äänikomennot ja integroinnin Glass start -valikkoon. Kun ensimmäinen sovelluksesi on kehitetty ja käynnissä Glass-laitteellasi, opit navigoinnin perusteet Glass-sovelluksissa, ääniohjattujen valikoiden ja dynaamisen sisällön luomisen.
Glass on edelleen eräänlaisessa 'beetatestaus' -vaiheessa, jolle Google on keksinyt termin 'Explorer-ohjelma'. Kuitenkin nimität sen, Glass ei ole vielä jotain, jonka voit saada myymälästä kuin älypuhelin. Valitettavasti Android-kehitystyökaluissa ei vieläkään ole emulaattoria, jonka avulla voit kehittää sovellustasi ilman todellista laitteistoa.
Siten sovelluksesi ajamiseksi ja virheenkorjaamiseksi sinun on saatava kätesi todelliseen Google Glassiin Explorer-ohjelman kautta. Liittyäksesi ohjelman vierailuun rekisteröintisivu ja kirjaudu sisään. Kun olet hyväksynyt, valmistele luottokorttisi ja odota, että lasisi toimitetaan. Glassin Explorer-versio maksaa tällä hetkellä 1500 dollaria USD, mutta hinnan odotetaan laskevan huomattavasti ennen laitteen saapumista myymälöihin.
Emulaattorin puuttumisen vuoksi on välttämätöntä, että sinulla on todellinen Google Glass -laitteisto sovelluksen kehittämiseksi tässä opetusohjelmassa (tai missä tahansa Glass-sovelluksessa), mutta jos sellaisen hankkiminen on budjettisi ulkopuolella, älä lannistu - se on joka tapauksessa syytä seurata. Opetusohjelmassa käy ilmi, että Glassin kehittäminen on melkein sama kuin minkä tahansa muun Android-alustan kehittäminen!
Jos et ole vielä käyttänyt Google Glassia, mutta olet siitä yhtä innoissani kuin minä, katso nämä kaksi videota, koska niiden pitäisi antaa sinulle tarpeeksi tietoa ymmärtääksesi käyttöliittymän perusteet.
Asennuksessa ja navigoinnissa on vielä enemmän hyödyllisiä videoita tässä ja monia muita tietoja käyttöliittymästä tässä .
Tämä Google Glass -kehittäjät opetusohjelma tekee seuraavat oletukset:
Selvä, aloitetaan!
Ensimmäinen asia, joka sinun on tehtävä, on ottaa virheenkorjaustila käyttöön Glass-laitteellasi. Sinun on tehtävä jotain tällaista jokaisella Android-laitteella, jota käytät sovellusten kehittämiseen, joten tämä saattaa olla tuttua. Ota virheenkorjaus käyttöön pyyhkäisemällä kohtaan ' asetukset '->' Laitetieto ”Ja napauta sitten avataksesi laitevalikon. Valitse “ Ota virheenkorjaus käyttöön ”Ja se otetaan käyttöön.
Seuraavaksi sinun on saatava kehitysympäristösi valmiiksi. Google Glassin nykyinen versio edellyttää, että käytät API-versiota 19, joten varmista, että se on asennettu. Lisäksi sinun on asennettava Glass Development Kit. Asenna nämä kaksi pakettia Android SDK Managerin avulla, ellet ole vielä tehnyt niin.
Tehdään siis ensimmäinen lasitavaramme. (Kyllä, Google on keksinyt toisen termin! 'Lasitavara' on nimi kaikille Google Glassissa toimiville sovelluksille.) Aloitamme kehittämällä vanhan hyvän 'Hello World!' sovellus. Kuten useimmat tärkeimmät Android-kehitysympäristöt, Android Studio täyttää uudet sovellukset automaattisesti mallilla tämän kuuluisan lauseen esittämiseksi. Tämän seurauksena 'Hello World!' käyttöönotto on vain harjoituksen perustavanlaatuista sovelluksen käyttöönottoa.
Napsauta Android Studiossa Uusi projekti ”Ja täytä projektilomake. Voit käyttää jotain vastaavaa tähän:
Kun valitset lomakekertoimia ja sovellusliittymää, muista valita Lasi ”Ja API 19
Valitse “ Upotusaktiviteetti ”Aloitustoiminnallesi.
Muistatko, että mainitsin, että sinun on opittava ero upottamisen ja live-kortin välillä? Googlen Käyttöliittymäartikkeli selittää erityyppiset lasiseulat. Tässä on lyhyt yhteenveto:
Live-kortit lisätään Glass-aikajanalle ja näyttävät reaaliaikaisia tietoja jostakin suurtaajuisten päivitysten avulla. Ne juoksevat jatkuvasti taustalla, vaikka käyttäjät olisivat vuorovaikutuksessa eri korttien kanssa. Tämän avulla käyttäjät voivat suorittaa useita tehtäviä ja saada jatkuvasti reaaliaikaisia tietoja.
Upotukset ovat täysin muokattavia näyttöjä, jotka näkyvät aikajanakokemuksen ulkopuolella. Näiden avulla voit suunnitella oman käyttöliittymän ja käsitellä käyttäjän syötteitä niin kuin haluat. Tätä käytämme!
Jätä ohjatun toiminnon seuraavaan näyttöön oletusarvot Nimi 'Ja' Otsikko Ja napsauta Viedä loppuun ”.
Jälkeen Gradle huolehtii riippuvuuksistasi ja saa projektisi valmiiksi, on aika laittaa Glass-pistoke pistorasiaan. Nyt tämä on futuristista kehitystä!
Olettaen, että kaikki Android ADB -ohjaimesi ovat paikallaan ja järjestelmä tunnistaa Glassisi, sinun pitäisi saada Glass laitteesi luetteloon.
Jos kytket laitteen ensimmäistä kertaa tietokoneeseen, Glass pyytää hyväksynnän / luottamuksen vahvistamista. Napauta vain lasiasi yhteyden muodostamiseksi ja sinun pitäisi olla valmis.
Klikkaus ' Juosta ”Ja asenna” Oletus-APK ”ja” MainActivity ”käynnistystapana” USB ”-laitteella käynnistämistä varten.
Muutaman sekunnin kuluttua sinun pitäisi nähdä jotain tällaista Glass-näytölläsi:
Hurraa! Hakemuksesi toimii Glass! Ja sinun tarvitsi vain täyttää muutama oletusarvo sovellusta luodessasi!
Koska emme määrittäneet toisin, Glass näyttää sovelluksesi nimellä Näytä esittely. Jos pyyhkäiset takaisin aloitusnäyttöön ja napautat sitten avataksesi sovellusvalikon, näet sen luettelossa seuraavasti:
Ok, sait sen toimimaan, mutta tämä ei näytä todelliselta Glass-sovellukselta, etkä halua sovelluksen käynnistävän 'Näytä esittely' -toiminnolla.
Tässä opetusohjelmassa me vain säätää sitä hieman saadaksemme todellisen tunteen.
Ensinnäkin, et halua ottaa mitään pienestä lasinäytöstäsi tällä ruma 'Hello World Immersion' -otsikon otsikkorivillä, etkä todellakaan halua näytön olevan harmaa mustalla kirjasimella. Tämän korjaamiseksi meidän on vain vaihdettava teema Androidissamme ja annettava Glass OS: n hoitaa se.
Avaa res/values/styles.xml
muokkausta varten. Sen pitäisi olla seuraava sisältö:
android:Theme.Holo.Light
Muuta vain android:Theme.DeviceDefault
kohteeseen AndroidManifest.xml
Tämän pitäisi huolehtia sovelluksen ulkoasusta ja väreistä automaattisesti Lasin oletusteeman avulla.
Ok, seuraava asia, jonka haluamme tehdä tässä Glass-kehityksen opetusohjelmassa, on perustaa sovelluksellemme oikea nimi ja mukava ääniohjattu käynnistys. Avaa Android-manifestisi (
DEVELOPMENT
tag:
DEVELOPMENT
Syy, jota haluat käyttää voice_trigger.xml
käyttöoikeuksien avulla voit pelata mukautetuilla ääniohjaimilla. Google on melko tiukka siitä, mitkä äänikomennot ovat sallittuja hyväksytyissä Glass-sovelluksissa, ja kaikki uudet komennot on hyväksyttävä. Koska tämä opetusohjelma on tarkoitettu oppimistarkoituksiin, etkä lähetä tätä hakemusta viralliselle lasitavarakaupalle, sinun ei pitäisi huolehtia siitä. Käynnistä vain res/xml/
käyttöoikeudet ja sinulla on pääsy 'piilotettuihin äänikomentoihin'. Lisätietoja tästä lue tällä GDK-sivulla .
Avaa android:label='@string/app_name'
muokkausta varten. Tässä määritetään äänikomento sovelluksen käynnistämiseksi. Sen tulisi sijaita @string/app_name
kansio. Sinun pitäisi hankkia tämän kaltaista sisältöä:
Hello Glass
Sen sijaan, että sanot 'Näytä minulle esittely' aloittaessamme sovelluksen, sanotaan vain sovelluksen nimi. Muuta tiedoston sisältö:
android:label='@string/app_name'
Jos palaat luettelotiedostoon, saatat huomata, että res/values/strings.xml
on päivitetty automaattisesti käyttämään myös resurssimerkkijonoa app_name
kovakoodatun Hello Glass
sijasta arvo kuin se oli aiemmin. Jos tätä asetusta ei päivitetty, muista asettaa arvoksi voice_trigger.xml
.
Mikä on sovelluksesi nimi, tarkalleen? Jos avaat network='true'
, FEATURE_VOICE_COMMANDS
tulisi luetella seuraavasti:
onCreate
Tämän pitäisi kerätä asioita ensimmäiselle Hello Glass -sovelluksellesi. Katsotaanpa, miten se toimii nyt!
Aloitusnäytössä voit sanoa 'Ok lasi' esiin äänivalikko. Sovelluksesi on nyt ääniohjattujen komentojen luettelossa.
Tämän opastusohjeen avulla Glass Glass -sovelluksen aloitusnäyttö näyttää tältä.
Jos sanot ' Hei lasi ”Hakemuksesi pitäisi alkaa ja sinun pitäisi saada standardoitu Glass-kokemus:
Jos et halua käyttää ääntäsi sovelluksen aktivoimiseksi, voit vain napauttaa aloitusnäyttöäsi ja näet, että sovelluksesi on käytettävissä valikossa:
On erittäin tärkeää, että kiinnität tarkkaa huomiota sovelluksesi käyttöliittymään ja käyttäjien vuorovaikutukseen sen kanssa. Muista, että käyttäjät eivät aina pysty käyttämään ääntään esimerkiksi katsellessaan luentoa tai esitystä. Vaihtoehtoisesti heillä voi olla kätensä täynnä ja he eivät voi käyttää kosketusta. Ehdotan, että tarjoat sekä kosketus- että ääni-valikon vuorovaikutuksen aina kun mahdollista, jolloin käyttäjät voivat navigoida sovelluksessasi samanaikaisesti äänen ja kosketuslevyn avulla.
Nyt kun olet tyytyväinen Glass-kehitykseen ja olet luonut Hello Glassin, on aika luoda todellinen sovellus, joka tuo uudet Glass-ominaisuudet toimimaan. Rakennetaan sovellus, jonka avulla voit selata parhaiden ApeeScape-kehittäjien profiileja kehitysympäristön perusteella.
Esimerkkilasisovelluksen rakenne on yksinkertainen:
Kerrataan nopeasti, mitä olet jo lisännyt Android-tietosi päälle:
Tämän tiedon avulla saat uuden sovelluksesi käyttöön. Voit joko päivittää Hello Glass -sovelluksen ylhäältä tai käynnistää uuden sovelluksen noudattamalla samoja vaiheita. Nimeä tämä sovellus Top Finder ”Ja tee MainActivity
tiedosto näyttää tältä.
getWindow().requestFeature(WindowUtils.FEATURE_VOICE_COMMANDS);
res/menu
rajoitus käskee lasin tarkistamaan verkkoyhteydet aloitettaessa tätä sovellusta, joka meidän on yhdistettävä ApeeScape-kehittäjien luetteloihin. Jos yhteyttä ei ole, Glass näyttää varoitusviestin.
Tehdään sovelluksemme aloitusnäyttö näyttämään tältä:
Kun näet 'Ok lasi' viesti näytöllä tarkoittaa, että sovelluksella on ääniohjattu valikko kyseisessä paikassa. Lausun lausuminen 'Ok lasi' tässä aktivoidaan äänivalikko tälle sijainnille. Glass on määrittänyt tämän lauseen etkä voi muuttaa sitä.
Voit ajatella 'Ok lasi' 'sovellusvalikkona', aivan kuten olet käyttänyt älypuhelimesi / tablet-laitteesi kehityksessä, ja sillä on täsmälleen sama rooli. Kuten 'napautat' näytöllä olevaa 'Sovellusvalikkokuvaketta' (usein 3 pistettä tai viivaa) avataksesi Android-sovellusvalikon, sinun on sanottava 'Ok lasi' avataksesi ääniohjatun valikon Glassware-sovelluksessa.
Jotta 'Ok lasi' valikko, jota sinun on pyydettävä main.xml
sovellusliittymästä. Voit tehdä tämän lisäämällä seuraavan rivin onCreatePanelMenu
-kenttään käsittelijä 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); }
Jokainen toiminto, johon tämä ominaisuus sisältyy, renderoidaan 'Ok lasi' teksti keskellä alareunaa.
Seuraava asia, mitä sinun tarvitsee tehdä, on luoda valikko päänäytölle. Omassa findDevelopers
kansio luo uusi XML-valikkomääritelmä nimeltä 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); }
. Yksinkertaisuuden lisäämiseksi otamme käyttöön vain kolme ApeeScape-kehittäjäalustaa, mutta voit tehdä muutokset haluamallasi tavalla.
Sen pitäisi olla seuraava sisältö:
res/drawable/logo.png
Saatat ihmetellä, miksi valitsin melko pitkät valikkotiedot yksinkertaisen Androidin, JavaScriptin ja iOS: n sijaan. No, syy on hyvin yksinkertainen. Glass-kehitystiimin kaverit parantavat edelleen äänentunnistusta. Valikoissa on suositeltavaa käyttää kahta tai kolmea sanaa, jotta Glass tunnistaa ne helpommin.
Mainitsin jo, että 'Ok lasi' -valikko ei eroa tavallisesta Android-sovellusvalikosta. Valikon liittäminen aktiviteettiin on käytännössä sama. Ohita vain MainActivity
käsittelijä private CardScrollView mCardScroller; private View mView; private GestureDetector mGestureDetector;
ja täytä juuri luomasi päävalikko:
buildView
Nyt meidän on lisättävä valikkokäsittelijä. Ennen kuin teet sen, luo yksi tyhjä menetelmä nimeltä 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(); }
. Palaamme asiaan myöhemmin aloittaaksemme haun ja näyttääksemme tuloksia. Tämän jälkeen voit ohittaa valikkokäsittelijän.
onCreate
Nyt on aika tehdä esimerkkinä oleva Google Glass -sovelluksen aloitusnäyttö kauniiksi. Tuo ApeeScape-logo sovellukseesi muodossa 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); }
. Käytin tätä kuvaa:
Omassa MainActivity
luokassa, tee seuraavat muutokset.
Varmista, että seuraavat yksityiset muuttujat ilmoitetaan luokan alussa:
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; }
Muuta findDevelopers
tapa mukauttaa kortin asettelua:
DeveloperModel.java
Ja vaihda java/models
käsittelijä olla tällainen:
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; } }
Kuten sanoin aiemmin, haluamme sisällyttää napautuksella aktivoidun valikon yhdessä 'Ok lasi' , joten ota vain eleet käyttöön kuten Android-sovelluksessasi. Lisää seuraavat menetelmät CardScrollAdapter
-kansioon luokka:
DeveloperAdapter.java
Sen pitäisi olla se! Voit nyt käynnistää sovelluksesi ja kokeilla molempia valikon aktivointimenetelmiä. Jos sanot 'Ok lasi' saat kolme valikkokohtaa näytöllä, ja jos napautat lasia, vieritettävä valikko avautuu. Voit selata valikkokohteita pyyhkäisemällä taaksepäin ja eteenpäin.
Äänivalikko näyttää tältä:
Ja tässä on elevalikko:
Jos valitset valikkokohdan, mitään ei tapahdu, kun java/adapters
menetelmä on vielä toteutettava.
Jatkamme lasikortin oletusasettelun käyttöä, kuvan vasemmalla puolella, tekstin oikealla puolella ja alatunnistetietoja. Lisätietoja korttien suunnittelun parhaista käytännöistä on Google Glassissa tyyliopas .
Kehittäjäprofiilimme on määritelty yksinkertaisilla ominaisuuksilla:
Joten, varmistetaan, että sovelluksessamme on oikea luokkarakenne. Luo uusi luokka nimeltä 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); } }
omassa ResultsActivity
kansio. Haluamme tämän luokan olevan sarjoitettavissa, koska se sisältää profiileja, jotka ovat luettelossa.
MainActivity
Haluamme, että korttimme on tiukasti sidottu kehittäjäprofiilidataan. Koska oletus java/com.helloglass
on hieman yleinen tietomallinsa suhteen, meidän on laajennettava sitä ja tehtävä siitä oma. Luo extends Activity
omassa developer.xml
kansio:
ResultsActivity
Emme halua, että hakutuloksemme lisätään sovelluksen aloitusnäyttöön, joten luomme uuden toiminnan, joka tekee haun ja näyttää tulokset. Luo uusi toiminto, MainActivity
, ResultsActivity
-viestin vieressä (todennäköisesti public static final String SEARCH = 'search'; private String mPlatform='Android';
).
Varmista, että se ResultsActivity
.
Seuraavaksi meidän on määritettävä valikko kehittäjäprofiilikortillemme. Luo uusi valikko MainActivity
, jonka sisältö on seuraava:
private CardScrollView mCardScroller; private List mCards; private GestureDetector mGestureDetector;
Parametrien välittämisen findDevelopers
välillä salliminen ja ResultsActivity
lisää seuraavat rivit 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); }
: n alkuun luokka:
MainActivity
Muista lisätä uusi toiminto luettelotiedostoon:
findDevelopers
ResultsActivity
: N aloitusnäytön määrittäminen ja korttien määrittäminen on hyvin samanlainen kuin mitä teimme platform
Tarkista ensin, että sinulla on alussa määritetyt korttisi ja rullasi:
public void findDevelopers(String platform){ Intent resultsIntent = new Intent(this, ResultsActivity.class); resultsIntent.putExtra(ResultsActivity.SEARCH, platform); startActivity(resultsIntent); }
Luo väliaikainen hakumenetelmä, jota palataan myöhemmin toteuttamaan. Uusien korttien lisääminen profiililuetteloon on yhtä helppoa kuin kohteiden lisääminen ryhmään. Nimeämme tämän menetelmän ResultsActivity
myös, mutta tämä kuuluu @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
Palaa nyt takaisin openOptionsMenu()
ja päivitä onGesture(Gesture gesture)
siellä aloittaaksesi private GestureDetector createGestureDetector(Context context) { // … @Override public boolean onGesture(Gesture gesture) { if (gesture == Gesture.TAP) { openOptionsMenu(); return true; } else if // …
ja välitä @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); }
omaisuus:
ic_person_50.png
Liitä kehittäjävalikkosi kohtaan resdrawable
. Voit avata valikon millä tahansa profiilikortilla.
onCreate
Aivan kuten aiemmin, ota eleet käyttöön lasin kosketuslevyn käsittelemiseksi, kun ResultsActivity
näytetään. Voit tehdä sen vain soittamalla MainActivity
omassa @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); }
menetelmä:
onResume
Lisää myös valikkokäsittelijä kehittäjään liittyviin toimintoihin. Jätämme toistaiseksi yksinkertaiset Toast-viestit.
onPause
Jokaisessa sovelluksessa tulisi käyttää hienoja visuaalisia elementtejä, kuvakkeita jne. Google Glass -tiimi on toimittanut erittäin suuren joukon yleisiä standardoituja kuvakkeita, joita Glass-kehittäjät voivat käyttää ilmaiseksi sovelluksissaan. Löydät täyden sarjan tavallisia Glass-kuvakkeita ja fontteja heidän kirjastossaan
Toistaiseksi tarvitset vain yhden kuvakkeen MainActivity
, joten lataa se MainActivity
-kansioon kansio. Käytämme tätä kuvaketta sen sijaan, että lataamme kuvan kehittäjältä.
Viimeinen asia, joka on jäljellä Glass-sovelluskehitysoppaastamme, on
-säätimen ohittaminen käsittelijä -palvelussa, jossa tarkistamme, mistä kehitysympäristöstä edelleen välitettiin ja täytä luettelomme.Voit lähteä
|_+_|ja menetelmät samat kuin
|_+_|
Jos käynnistät sovelluksesi nyt, voit tarkistaa, miten kehittäjäprofiilit luodaan lennossa,
-valikossa valitun valikon perusteella. Jälleen sinulla on mahdollisuus näyttää valikkosi käyttämällä 'Ok lasi' tai napauttamalla kosketuslevyä tai käyttämällä ääniaktivointia. Kymmenes Android-kehittäjäprofiili näyttää tällä hetkellä tältä:
Napauttaminen tuo esiin kosketusvalikon:
Ja sanomalla 'Ok lasi' tuo esiin äänivalikon:
Pyyhkäise alaspäin luettelosta palataksesi sovelluksesi aloitusnäyttöön.
Täydennämme asiat täyttämällä valikko todellisilla tiedoilla 10 parhaimmalle ApeeScape-kehittäjälle JavaScript , Android ja iOS .
Sinun on ladattava heidän profiilikuvansa ja asetettava ne saataville HTTP: n kautta tai vain käytettävä URL-osoitteita suoraan osoitteesta toptal.com .
Koska web-indeksoijan rakentaminen vain ApeeScape-sovelluksen huippukehittäjien nimien saamiseksi saattaa olla liian kiertotie tälle artikkelille, olen luonut JSON-tiedostot, joita voit käyttää Android , JavaScript ja ios .
Ensinnäkin sinun on sovelluksessasi pyydettävä Internet-yhteyttä Android-käyttöjärjestelmältäsi. Lisää seuraava rivi Manifest-tiedostoon
|_+_|
Huomaa, että Glass ei salli sinun estää pääketjua käyttämällä HTTP-pyyntöjä suoraan. Sinun on käsiteltävä JSON-latauksia ja yksittäisiä kuvia asynkronisella tavalla. Voit käyttää asynkronointitehtävää, luoda oman latauspalvelun tai aikomuksen tai mitä haluat päivittäisessä työssäsi.
Tämän toiminnon luominen ei ole vain Google Glassille, joten ohitan koodinpätkät. Jos etsit eteenpäin ja saat tämän viimeisen toiminnallisuuden toimimaan, profiilikorttisi pitäisi näyttää tältä:
Toivon, että sinulla oli hauskaa seurata tätä Google Glass -kehitysopasta ja rakentaa ensimmäistä lasituotesovellustasi. Tähän mennessä sinun pitäisi olla tyytyväinen ajatukseen siitä, että Glass-sovellusten kirjoittaminen ei ole paljon erilainen kuin mikään muu Android-alusta.
Tässä vaiheessa olet oppinut laajentamaan Google Glass -ääniaktivoitua aloitusnäyttöä, luomaan omat ääniohjatut valikot ja yhdistämään ääniohjaimet kosketuseleisiin. Sinun tulisi myös ymmärtää Glass-käyttöliittymän käsitteet ja peruselementit, kuten kortit, asettelut ja elementit. Olet nähnyt, kuinka voit luoda kortteja dynaamisesti ja kuinka liikkua eri toimintojen välillä.
Sukella syvemmälle siirtymällä Googlen kehittäjäresursseihin osoitteessa developers.google.com/glass . Kun aloitat monimutkaisempien sovellusten rakentamisen, se osoittautuu erittäin hyödylliseksi resurssiksi.
Muistathan, että Glass on edelleen kehitysvaiheessa ja todennäköisesti on vielä paljon muita parannuksia ennen kuin se saapuu kuluttajamarkkinoille. Tässä mielessä minulla on yksi tärkeä huomautus sinulle:
Äänentunnistuksessa on jäljellä melko paljon työtä, ja saatat huomata itsesi huutavan kuvitteellista ystävääsi yrittäessäsi aloittaa toimintasi tai täyttää joitain tietoja. Ei hätää - kaikki, jotka kokeilevat Google Glass -kehitystä, tuntevat saman, joten et ole yksin.
Teknologia paranee, ja lasi on valmis vähittäiskauppaan hetkessä. Se varmasti tuottaa isoja aaltoja, kun se tulee kauppoihin, joten toivon, että olet yhtä innoissaan kuin minäkin ensimmäisistä, jotka ovat tämän jännittävän tekniikan eturintamassa!
Huutaa : Tämän artikkelin näyttökuvat tehdään käyttämällä [sähköposti suojattu] .