Google Glass er en futuristisk teknologi som lover å revolusjonere hvordan vi bruker enhetene våre til å samhandle med verden. Men fra en utviklers synspunkt, hva er så spesielt med å utvikle for glasset? Svaret er 'ingenting!' Faktisk sett fra perspektivet til en erfaren Android-utvikler , Google Glass er bare en annen Android-enhet med en veldig liten skjerm og begrensede funksjoner!
Det faktum at alle med Android-utviklingskunnskap kan bli medlem av dette 'elite' -fellesskapet av futuristiske bærbare teknologi-evangelister, er en del av det som gjør Google Glass så fantastisk. Jo, du må lære noen nye ting, for eksempel forskjellen mellom 'Immersion' og 'Active Card', men som du vil se er læringskurven ikke bratt.
Hensikten med denne Google Glass-opplæringen er å legge grunnlaget for å utvikle en hvilken som helst Glassapp, gjennom opprettelsen av en enkel app som omfatter alle de vanlige trinnene. Målet mitt er å spare deg for tid til forskning og prøving og feiling, og gjøre det mulig for deg å kjøre din første Glass-applikasjon så snart som mulig.
I denne veiledningen vil vi først gå gjennom hvordan du konfigurerer utviklingsmiljøet ditt og kobler Google Glass til datamaskinen din. Deretter lager vi en enkel “Hello World” Glass-app som inkluderer tilpassede talekommandoer og integrering med Glass-startmenyen. Når du først har utviklet din første applikasjon og kjører på Glass, vil du lære det grunnleggende om navigering i Glass-applikasjoner, stemmeaktiverte menyer og dynamisk innholdsoppretting.
Glass er fremdeles i en slags 'beta-testing' -fase, som Google har oppfunnet begrepet 'Explorer-program'. Uansett hvordan du heter det, er Glass ennå ikke noe du kan få i butikken som en smarttelefon. Dessverre har Android-utviklingsverktøy fortsatt ikke en emulator som du kan bruke til å utvikle applikasjonen din uten egentlig maskinvare.
Derfor, for å kjøre og feilsøke søknaden din, må du få tak i en faktisk Google Glass gjennom Explorer-programmet. For å delta i programmet besøk påmeldingssiden og registrer deg for tilgang. Når du er godkjent, må du klargjøre kredittkortet og vente på at glasset ditt skal leveres. Explorer-versjonen av Glass koster for tiden $ 1500 USD, men prisen forventes å komme betydelig ned før enheten kommer i butikk.
På grunn av mangel på noen emulator er det nødvendig at du har faktisk Google Glass-maskinvare for å utvikle appen i denne opplæringen (eller en hvilken som helst Glass-app), men hvis du får en som er utenfor budsjettet ditt, ikke føl deg motløs - det vil være verdt å følge med uansett. Det som kommer til syne i opplæringen er at utvikling for Glass er nesten det samme som å utvikle seg for andre Android-plattformer!
Hvis du fremdeles ikke har brukt Google Glass, men er like begeistret for det som meg, kan du ta en titt på disse to videoene, da de burde gi deg nok innspill til å forstå det grunnleggende i brukergrensesnittet.
Det er enda mer nyttige videoer for oppsett og navigering her , og mange flere detaljer om brukergrensesnittet her .
Dette Google Glass-utvikler tutorial gir følgende antakelser:
Ok, la oss komme i gang!
Det første du må gjøre er å aktivere feilsøkingsmodus på Glass. Du må gjøre noe slikt på alle Android-enheter du bruker til utvikling av appene dine, så dette kan være kjent. For å aktivere feilsøking, sveip til “ Innstillinger '->' Enhetsinformasjon ”Og trykk deretter for å åpne enhetsmenyen. Å velge ' Slå på feilsøking ”Og den blir aktivert.
Deretter må du gjøre utviklingsmiljøet ditt klart. Den nåværende versjonen av Google Glass krever at du bruker API-versjon 19, så sørg for at den er installert. Du må også ha Glass Development Kit installert. Bruk Android SDK Manager til å installere disse to pakkene hvis du ikke allerede har gjort det.
Så la oss lage vårt første stykke 'Glassware'. (Ja, Google har laget et nytt begrep! 'Glassware' er navnet på alle applikasjoner som kjører på Google Glass). Vi begynner med å utvikle en god gammel 'Hello World!' applikasjon. Som de fleste større Android-utviklingsmiljøer, fyller Android Studio automatisk ut nye apper med en mal for å vise denne berømte frasen. Som et resultat får 'Hello World!' oppe og går er bare en øvelse i grunnleggende distribusjon av apper.
I Android Studio klikker du “ Nytt prosjekt ”Og fyll ut prosjektskjemaet. Du kan bruke noe som ligner på dette:
Når du velger formfaktorer og API, må du sørge for å velge “ Glass ”Og API 19
Å velge ' Immersion Activity ”Som oppstartsaktivitet.
Husker du at jeg nevnte at du må lære forskjellen mellom nedsenking og live-kort? Googles Brukergrensesnittartikkel forklarer de forskjellige typene av glassskjerm. Her er et raskt sammendrag:
Live kort blir lagt til Glass tidslinjen og viser sanntidsinformasjon om noe gjennom høyfrekvente oppdateringer. De løper stadig i bakgrunnen, selv når brukerne kommuniserer med forskjellige kort. Dette tillater brukere å multitaske med konstant tilgang til forskjellige typer sanntidsinformasjon.
Nedsenkelser er fullt tilpassbare skjermer som kjører utenfor tidslinjeopplevelsen. Disse lar deg designe ditt eget brukergrensesnitt og behandle brukerinngang, men du vil. Dette er hva vi skal bruke!
I standardskjermbildet til veiviseren lar du standardverdiene for “ Navn ”Og” Tittel ”Og klikk“ Bli ferdig ”.
Etter Gradle tar vare på avhengighetene dine og gjør prosjektet klart, det er på tide å sette på Glasspluggen. Nå er dette futuristisk utvikling!
Forutsatt at alle Android ADB-driverne dine er på plass og Glasset ditt blir gjenkjent av systemet ditt, bør du få Glasset ditt i enhetslisten.
Hvis dette er første gang du kobler enheten til en datamaskin, vil Glass be om godkjenning / tillit for å bli etablert. Bare trykk på glasset for å tillate tilkobling, så skal du være klar.
Klikk “ Løpe ”Og distribuer din“ Standard APK ”med“ MainActivity ”som oppstartsaktivitet for lansering på“ USB ”-enhet.
Etter noen sekunder bør du se noe slikt på Glassskjermen:
Hurra! Søknaden din kjører på Glass! Og alt du måtte gjøre er å fylle ut noen standardverdier når du opprettet appen!
Siden vi ikke spesifiserte annerledes, viser Glass appen din under navnet “Vis demo”. Hvis du sveiper tilbake til Start-skjermen og deretter klikker for å åpne app-menyen, vil du se den oppført slik:
Ok, du fikk den til å kjøre, men dette ser ikke ut som en ekte Glass-applikasjon, og du vil ikke at applikasjonen skal startes av 'Show demo'.
I denne opplæringen vil vi bare tilpasse det litt for å få den virkelige følelsen.
Først vil du ikke ta opp noen av den lille glassskjermen din med denne stygge overskriften 'Hello World Immersion' -aktivitetslinjen, og du vil definitivt ikke at skjermen skal være grå med svart skrift. For å fikse dette, trenger vi bare å bytte tema på Android og la Glass OS ta seg av det.
Åpne res/values/styles.xml
for redigering. Den skal ha følgende innhold:
android:Theme.Holo.Light
Bare endre android:Theme.DeviceDefault
til AndroidManifest.xml
. Dette bør ta seg av applikasjonsoppsett og farger automatisk ved å bruke Glass-temaet.
Ok, den neste tingen vi vil gjøre i denne Glassutviklingsveiledningen, er å sette opp applikasjonen vår for å ha et riktig navn og fin stemmestyrt oppstart. Åpne Android Manifest (
DEVELOPMENT
stikkord:
DEVELOPMENT
Årsaken til at du vil bruke voice_trigger.xml
tillatelser er slik at du kan spille med tilpassede talekontroller. Google er ganske streng på hvilke talekommandoer som er tillatt i godkjente Glass-apper, og alle nye kommandoer må godkjennes. Siden denne veiledningen er for læringsformål, og du ikke vil sende inn denne applikasjonen til den offisielle Glassvarebutikken, bør du ikke bekymre deg for det. Bare slå på res/xml/
tillatelser, og du vil ha tilgang til “unoterte talekommandoer”. For mer informasjon om dette, vennligst les denne GDK-siden .
Åpne android:label='@string/app_name'
for redigering. Dette er hvor talekommandoen for å starte applikasjonen din er definert. Den skal være i @string/app_name
mappe. Du bør få innhold som ligner på dette:
Hello Glass
I stedet for å si 'Vis meg en demo' for å starte appen vår, la oss bare si navnet på appen. Endre innholdet i filen til:
android:label='@string/app_name'
Hvis du går tilbake til manifestfilen din, kan du legge merke til at res/values/strings.xml
har blitt automatisk oppdatert for å også bruke ressursstrengen app_name
i stedet for den hardkodede Hello Glass
verdi som det var før. Hvis denne innstillingen ikke ble oppdatert, må du sette verdien til voice_trigger.xml
.
Og hva er appnavnet ditt, akkurat? Hvis du åpner network='true'
, blir din FEATURE_VOICE_COMMANDS
bør oppføres som:
onCreate
Dette bør pakke opp ting for din første Hello Glass-applikasjon. La oss se hvordan det fungerer nå!
Fra startskjermen kan du si “Ok glass” for å få frem stemmemenyen. Søknaden din er nå i listen over stemmeaktiverte kommandoer.
Med denne opplæringen for å veilede deg, ser dette ut som startskjermen for Glass-appen din nå.
Hvis du sier ' Hei glass ”Søknaden din skal starte, og du bør få en standardisert Glass-opplevelse:
Hvis du ikke vil bruke stemmen din til å aktivere applikasjonen, kan du bare trykke på Start-skjermen og du vil se at applikasjonen din er tilgjengelig i menyen:
Det er veldig viktig at du følger nøye med på grensesnittet til applikasjonen din og brukernes samhandling med den. Husk at brukerne ikke alltid er i stand til å bruke stemmen sin - for eksempel mens de ser på en forelesning eller presentasjon. Alternativt kan de ha hendene fulle og ikke kunne bruke berøring. Jeg foreslår at du gir både berørings- og stemmemenyinteraksjon når det er mulig, slik at brukerne dine kan navigere gjennom applikasjonen din ved hjelp av tale og berøringsplate parallelt.
Nå som du er komfortabel med Glass-utvikling, og du har opprettet Hello Glass, er det på tide å lage et reelt program som vil sette nye Glass-funksjoner i bruk. La oss bygge en app som lar deg bla gjennom profiler fra topp ApeeScape-utviklere basert på utviklingsplattform.
Strukturen til vårt eksempel på Glassapplikasjon vil være enkel:
La oss raskt oppsummere det du allerede har lagt til på toppen av din Android-kunnskap:
Bruk denne kunnskapen til å få den nye appen din i gang. Du kan enten oppdatere Hello Glass-appen ovenfra, eller starte en ny app ved å følge de samme trinnene. Gi denne applikasjonen navnet “ Toppfinner ”, Og lag din MainActivity
filen ser slik ut.
getWindow().requestFeature(WindowUtils.FEATURE_VOICE_COMMANDS);
res/menu
begrensning forteller glasset å se etter nettverkstilkobling når du starter denne appen, som vi trenger for å koble til ApeeScape-utviklerlistene. Hvis det ikke er noen forbindelse, vil Glass vise en advarsel.
La oss få applikasjonens startskjerm til å se slik ut:
Når du ser “Ok glass” melding på skjermen betyr det at applikasjonen har stemmeaktiverte menyer på det stedet. Snakker frasen “Ok glass” her aktiverer du stemmemenyen for denne plasseringen. Denne setningen er forhåndsdefinert av Glass, og du kan ikke endre den.
Du kan tenke deg “Ok glass” som en “applikasjonsmeny”, akkurat som du har brukt i utviklingen av smarttelefonen / nettbrettet, og den har nøyaktig samme rolle. Når du “trykker” på “Programmenyikonet” på skjermen (ofte tre prikker eller linjer) for å åpne en Android-applikasjonsmeny, må du si “Ok glass” for å åpne den stemmeaktiverte menyen i Glassware-appen.
For å aktivere “Ok glass” menyen du trenger å be om main.xml
fra API. For å gjøre dette, legg til følgende linje i onCreatePanelMenu
behandler i 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); }
Hver aktivitet som har denne funksjonen inkludert blir gjengitt med “Ok glass” tekst nederst i midten.
Den neste tingen du trenger å gjøre er å lage en meny for hovedskjermen. I din findDevelopers
mappe opprette en ny XML-menydefinisjon med navnet 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); }
. For å gjøre ting enkle vil vi bare aktivere tre ApeeScape-utviklerplattformer, men gjør gjerne endringene som du vil.
Den skal ha følgende innhold:
res/drawable/logo.png
Du lurer kanskje på hvorfor jeg valgte ganske lange menytitler i stedet for bare Android, JavaScript og iOS. Årsaken er veldig enkel. Gutta fra Glass utviklingsteam forbedrer fremdeles stemmegjenkjenning. Det anbefales å bruke to eller tre ord i menyene, slik at Glass gjenkjenner dem lettere.
Jeg har allerede nevnt at “Ok glass” menyen er ikke forskjellig fra din standard Android-applikasjonsmeny. Å knytte en meny til en aktivitet er praktisk talt den samme. Bare overstyr MainActivity
behandler i private CardScrollView mCardScroller; private View mView; private GestureDetector mGestureDetector;
, og blåse opp hovedmenyen du nettopp opprettet:
buildView
Nå må vi legge til en menybehandler. Før du gjør det, opprett en tom metode som heter 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(); }
. Vi kommer tilbake til dette senere for å starte et søk og vise resultatene. Etter det kan du overstyre menybehandleren.
onCreate
Det er nå på tide å gjøre vårt eksempler på Google Glass-applikasjonens startside pen. Importer en ApeeScape-logo til applikasjonen din som 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); }
. Jeg brukte dette bildet:
I din MainActivity
klasse, gjør følgende endringer.
Forsikre deg om at følgende private variabler blir erklært i begynnelsen av klassen:
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; }
Endre findDevelopers
metode for å tilpasse kortoppsettet:
DeveloperModel.java
Og endre din java/models
handler å være slik:
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; } }
Som jeg sa før, vil vi inkludere trykkaktivert meny sammen med “Ok glass” , så bare aktiver bevegelser som du ville gjort i Android-appen din. Legg til følgende metoder i CardScrollAdapter
klasse:
DeveloperAdapter.java
Det burde være det! Du kan nå starte appen din og prøve begge metodene for menyaktivering. Hvis du sier “Ok glass” du får tre menyelementer vist på skjermen, og hvis du trykker på glasset, åpnes en rullbar meny. For å navigere gjennom menyelementene kan du sveipe frem og tilbake.
Slik ser stemmemenyen ut:
Og her er gestmenyen:
Hvis du velger et menyelement, vil ingenting skje som din java/adapters
metoden er ennå ikke implementert.
Vi vil fortsette å bruke standard Glass Card-layout, med et bilde på venstre side, tekst til høyre og litt bunntekstinformasjon. For mer informasjon om beste fremgangsmåter for utforming av kortene dine, se Google Glass stilguide .
Vår utviklerprofil er definert av enkle egenskaper:
Så, la oss sørge for å ha riktig struktur for klasser i appen vår. Opprett en ny klasse med navnet 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); } }
i ResultsActivity
mappe. Vi vil at denne klassen skal være serierbar, da den vil inneholde profiler som er på en liste.
MainActivity
Vi vil at kortene våre skal være tett bundet til utviklerprofildataene våre. Fordi standard java/com.helloglass
er litt generisk med hensyn til datamodellen, vi trenger å utvide den og gjøre den til vår egen. Opprett extends Activity
i developer.xml
mappe:
ResultsActivity
Vi ønsker ikke at søkeresultatene våre skal legges til på startskjermen for applikasjonen, så vi oppretter ny aktivitet som gjør søkeresultatene. Opprett en ny aktivitet, MainActivity
, ved siden av ResultsActivity
(sannsynligvis i public static final String SEARCH = 'search'; private String mPlatform='Android';
).
Forsikre deg om at den ResultsActivity
.
Deretter må vi spesifisere en meny for våre utviklerprofilkort. Opprett en ny meny, MainActivity
, med følgende innhold:
private CardScrollView mCardScroller; private List mCards; private GestureDetector mGestureDetector;
For å aktivere passerende parametere mellom findDevelopers
og ResultsActivity
legg til følgende linjer i begynnelsen av 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); }
klasse:
MainActivity
Sørg for å legge til den nye aktiviteten din i manifestfilen:
findDevelopers
Sette opp startskjermbildet for ResultsActivity
og konfigurering av kort er veldig likt det vi gjorde på platform
. Kontroller først at du har kortene og rulleboksen definert i begynnelsen:
public void findDevelopers(String platform){ Intent resultsIntent = new Intent(this, ResultsActivity.class); resultsIntent.putExtra(ResultsActivity.SEARCH, platform); startActivity(resultsIntent); }
Lag en midlertidig søkemetode som vi kommer tilbake til senere for å implementere. Å legge til nye kort i profillisten er like enkelt som å legge til elementer i en matrise. Vi vil kalle denne metoden ResultsActivity
også, men denne tilhører @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
Gå tilbake til openOptionsMenu()
og oppdater onGesture(Gesture gesture)
der for å starte private GestureDetector createGestureDetector(Context context) { // … @Override public boolean onGesture(Gesture gesture) { if (gesture == Gesture.TAP) { openOptionsMenu(); return true; } else if // …
og pass i @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); }
eiendom:
ic_person_50.png
Fest utviklermenyen til resdrawable
. Du vil kunne åpne menyen på hvilket som helst profilkort.
onCreate
Akkurat som tidligere, aktiver bevegelser for å håndtere pekeplaten på Glasset når ResultsActivity
er vist. For å gjøre det er det bare å ringe MainActivity
i @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); }
metode:
onResume
Legg også til en menybehandler til utviklerrelaterte handlinger. Vi legger igjen enkle Toast-meldinger for nå.
onPause
Hver applikasjon skal bruke noen fine visuelle elementer, ikoner osv. Google Glass-teamet har levert et veldig stort sett med vanlige standardiserte ikoner som er gratis for Glass-utviklere å bruke i applikasjonene sine. Du kan finne et komplett sett med standard Glass-ikoner samt skrifttyper i biblioteket deres
Foreløpig trenger du bare ett ikon MainActivity
, så fortsett og last det ned til MainActivity
mappe. Vi bruker dette ikonet i stedet for å laste ned et bilde av utvikleren.
Det siste som er igjen i utviklingsveiledningen vår for Glass-apper for øyeblikket, er å overstyre
handler på , hvor vi vil sjekke hvilken utviklingsplattform som ble videresendt fra og fyll ut listen vår.Du kan dra
|_+_|og metodene de samme som i
|_+_|.
Hvis du starter søknaden din nå, kan du sjekke hvordan utviklerprofilene dine opprettes på grunnlag av menyen valgt på
. Igjen har du et alternativ å vise menyen din ved hjelp av “Ok glass” eller ved å trykke på styreflaten eller ved å bruke stemmeaktivering. Slik ser '10. Android-utviklerprofil' ut for øyeblikket:
Ved å trykke vises berøringsmenyen:
Og si “Ok glass” henter frem stemmemenyen:
Sveip ned fra listen for å gå tilbake til startskjermen til appen din.
For å pakke inn ting, la oss fylle ut menyen med reell informasjon for de 10 beste ApeeScape-utviklerne JavaScript , Android , og iOS .
Du må laste ned profilbildene deres og gjøre dem tilgjengelige via HTTP, eller bare bruke nettadresser direkte fra toptal.com .
Siden det å bygge en web-crawler bare for å få navn på topputviklere i ApeeScape kan være for mye av en omvei for denne artikkelen, har jeg laget JSON-filer som du kan bruke til Android , JavaScript , og ios .
I appen din er det første du trenger å be om tilgang til internett fra Android OS. Legg til følgende linje i manifestfilen din
|_+_|
Vær oppmerksom på at Glass ikke vil tillate deg å blokkere hovedtråden ved å bruke HTTP-forespørsler direkte. Du må håndtere JSON-nedlastinger og individuelle bilder på en asynkron måte. Du kan bruke en asynkroniseringsoppgave, opprette din egen nedlastningstjeneste eller intensjon, eller hva du foretrekker i ditt daglige arbeid.
Å bygge denne funksjonaliteten er ikke spesifikk for Google Glass, så jeg hopper over kodebiter. Hvis du går videre og får denne siste funksjonaliteten til å fungere, bør profilkortene dine se slik ut:
Jeg håper at du hadde det gøy å følge denne utviklingsveiledningen for Google Glass og bygge din første Glassware-applikasjon. Nå skal du være komfortabel med ideen om at skriveapplikasjoner for Glass ikke er mye annerledes enn noen annen Android-plattform.
På dette tidspunktet har du lært hvordan du utvider Google Glass stemmeaktiverte startskjerm, hvordan du lager dine egne stemmeaktiverte menyer, og hvordan du kombinerer stemmekontroller med berøringsbevegelser. Du bør også forstå konseptene og grunnleggende byggesteiner for Glass UI, for eksempel kort, oppsett og elementer. Du har sett hvordan du dynamisk lager kort og hvordan du navigerer mellom forskjellige aktiviteter.
For å dykke dypere, gå til Googles utviklerressurser på developers.google.com/glass . Når du begynner å bygge mer komplekse applikasjoner, vil det vise seg å være en veldig nyttig ressurs.
Vær oppmerksom på at Glass fremdeles er i utviklingsfasen, og det er sannsynligvis mange flere forbedringer som skal implementeres før det kommer til forbrukermarkedet. Med dette i bakhodet har jeg en viktig merknad til deg:
Det er ganske mye arbeid igjen med stemmegjenkjenning, og du kan ta deg selv til å rope til din imaginære venn mens du prøver å starte aktiviteten din eller fylle ut litt informasjon. Ingen bekymringer der - alle som prøver Google Glass-utvikling føler det samme, så du er ikke alene.
Teknologien vil bli bedre, og glass vil være klart for detaljhandel på kort tid. Det kommer sikkert til å lage store bølger når den kommer i butikkene, så jeg håper du er like spent som jeg er på å være en av de første som er ute i forkant av denne spennende teknologien!
Rop ut : Skjermbilder i denne artikkelen er laget med [e-postbeskyttet] .