Google Glass est une technologie futuriste qui promet de révolutionner la façon dont nous utilisons nos appareils pour interagir avec le monde. Mais du point de vue du développeur, qu’y a-t-il de si spécial à développer pour le verre? La réponse est 'Rien!' En fait, du point de vue de un développeur Android expérimenté , Google Glass n'est qu'un autre appareil Android avec un très petit écran et des fonctionnalités limitées!
Le fait que toute personne ayant des connaissances en développement Android puisse devenir membre de cette communauté «d'élite» d'évangélistes futuristes de la technologie portable fait partie de ce qui rend Google Glass si génial. Bien sûr, vous devrez apprendre quelques nouvelles choses, telles que la différence entre «Immersion» et «Carte active», mais comme vous le verrez, la courbe d'apprentissage n'est pas raide.
Le but de ce didacticiel Google Glass est de jeter les bases du développement de toute application Glass, grâce à la création d'une application simple qui englobe toutes les étapes courantes. Mon objectif est de vous faire gagner du temps dans la recherche et les essais et erreurs, et de vous permettre d'exécuter votre première application Glass dès que possible.
Dans ce didacticiel, nous allons d'abord expliquer comment configurer votre environnement de développement et connecter votre Google Glass à votre ordinateur. Ensuite, nous créerons une simple application Glass «Hello World» qui comprendra des commandes vocales personnalisées et une intégration avec le menu de démarrage de Glass. Une fois que vous aurez développé et exécuté votre première application sur votre Glass, vous apprendrez les bases de la navigation dans les applications Glass, les menus activés par la voix et la création de contenu dynamique.
Glass est encore dans une sorte de phase de «beta testing», pour laquelle Google a inventé le terme «Explorer Program». Quel que soit le nom que vous lui donnez, Glass n'est pas encore quelque chose que vous pouvez obtenir en magasin comme un smartphone. Malheureusement, les outils de développement Android ne disposent toujours pas d'un émulateur que vous pouvez utiliser pour développer votre application sans matériel réel.
Ainsi, pour exécuter et déboguer votre application, vous devrez mettre la main sur un véritable Google Glass via le programme Explorer. Pour rejoindre le programme, visitez la page d'inscription et inscrivez-vous pour y accéder. Une fois approuvée, préparez votre carte de crédit et attendez que votre verre vous soit livré. La version Explorer de Glass coûte actuellement 1 500 USD, mais le prix devrait baisser considérablement avant que l'appareil n'atteigne les magasins.
En raison de l'absence d'émulateur, il est nécessaire que vous disposiez du matériel réel de Google Glass pour développer l'application dans ce didacticiel (ou de toute application Glass), mais si vous en obtenez un ne dépasse pas votre budget, ne vous découragez pas - il vaudra la peine de suivre de toute façon. Ce qui deviendra évident dans le didacticiel, c'est que le développement pour Glass est presque identique à celui de toute autre plate-forme Android!
Si vous n'avez toujours pas utilisé Google Glass, mais que vous en êtes aussi enthousiasmé que moi, jetez un œil à ces deux vidéos, car elles devraient vous donner suffisamment d'informations pour comprendre les bases de l'interface utilisateur.
Il existe des vidéos encore plus utiles pour la configuration et la navigation Ici , et bien d'autres détails sur l'interface utilisateur Ici .
Cette Développeur Google Glass Le didacticiel fait les hypothèses suivantes:
Très bien, commençons!
La première chose à faire est d'activer le mode de débogage sur votre Glass. Vous devez faire quelque chose comme ça sur chaque appareil Android que vous utilisez pour le développement de vos applications, cela peut donc vous être familier. Pour activer le débogage, faites glisser vers ' Paramètres '->' Info appareil », Puis appuyez sur pour ouvrir le menu de l'appareil. Sélectionnez ' Activer le débogage »Et il sera activé.
Ensuite, vous devez préparer votre environnement de développement. La version actuelle de Google Glass nécessite que vous utilisiez la version 19 de l'API, alors assurez-vous qu'elle est installée. De plus, vous devez avoir installé votre kit de développement de verre. Utilisez votre gestionnaire de SDK Android pour installer ces deux packages si vous ne l'avez pas déjà fait.
Alors faisons notre premier morceau de «Verrerie». (Oui, Google a inventé un autre terme! 'Glassware' est le nom de toute application exécutée sur Google Glass). Nous allons commencer par développer un bon vieux 'Hello World!' application. Comme la plupart des principaux environnements de développement Android, Android Studio remplit automatiquement les nouvelles applications avec un modèle pour afficher cette phrase célèbre. En conséquence, obtenir 'Hello World!' la mise en service n'est qu'un exercice de déploiement d'application fondamental.
Dans Android Studio, cliquez sur ' Nouveau projet »Et remplissez le formulaire de projet. Vous pouvez utiliser quelque chose de similaire à ceci:
Lors de la sélection des facteurs de forme et de l'API, assurez-vous de sélectionner ' Verre 'Et API 19
Sélectionnez ' Activité d'immersion »Comme activité de démarrage.
Vous vous souvenez que j'ai mentionné que vous devrez apprendre la différence entre Immersion et Live Card? Google Article sur l'interface utilisateur explique les différents types d'écrans en verre. Voici un bref résumé:
Cartes en direct sont ajoutés à la chronologie Glass et affichent des informations en temps réel sur quelque chose via des mises à jour haute fréquence. Ils sont constamment exécutés en arrière-plan même lorsque les utilisateurs interagissent avec différentes cartes. Cela permet aux utilisateurs d'effectuer plusieurs tâches avec un accès constant à différents types d'informations en temps réel.
Immersions sont des écrans entièrement personnalisables qui s'exécutent en dehors de l'expérience de la chronologie. Ceux-ci vous permettent de concevoir votre propre interface utilisateur et de traiter les entrées utilisateur comme bon vous semble. C'est ce que nous allons utiliser!
Dans l'écran suivant de l'assistant, laissez les valeurs par défaut pour ' Nom ' et ' Titre 'Et cliquez sur' terminer ».
Après Gradle prend soin de vos dépendances et prépare votre projet, il est temps de mettre votre plug-in Glass. Maintenant, c'est un développement futuriste!
En supposant que tous vos pilotes Android ADB sont en place et que votre Glass est reconnu par votre système, vous devriez obtenir votre Glass dans votre liste d'appareils.
Si c'est la première fois que vous connectez votre appareil à un ordinateur, votre Glass demandera que l'approbation / la confiance soit établie. Appuyez simplement sur votre verre pour permettre la connexion et vous devriez être prêt.
Cliquez sur ' Courir »Et déployez votre« APK par défaut »avec« MainActivity »comme activité de démarrage pour le lancement sur le périphérique« USB ».
Après quelques secondes, vous devriez voir quelque chose comme ça sur votre écran Glass:
Hourra! Votre application fonctionne sur Glass! Et tout ce que vous aviez à faire est de renseigner quelques valeurs par défaut lorsque vous avez créé l'application!
Comme nous n'avons pas spécifié différemment, Glass affichera votre application sous le nom «Afficher la démo». Si vous revenez à l'écran de démarrage, puis appuyez pour ouvrir le menu de l'application, vous le verrez répertorié comme suit:
Ok, vous l'avez lancé, mais cela ne ressemble pas à une vraie application Glass, et vous ne voulez pas que l'application soit lancée par 'Afficher la démo'.
Dans ce tutoriel, nous allons juste le peaufiner un peu pour obtenir le vrai sentiment.
Tout d'abord, vous ne voulez pas occuper votre petit écran en verre avec cet horrible en-tête de la barre de titre d'activité 'Hello World Immersion', et vous ne voulez certainement pas que votre écran soit gris avec une police noire. Pour résoudre ce problème, nous devons simplement changer le thème sur notre Android et laisser Glass OS s'en occuper.
Ouvrir res/values/styles.xml
pour l'édition. Il doit avoir le contenu suivant:
android:Theme.Holo.Light
Changez simplement android:Theme.DeviceDefault
à AndroidManifest.xml
. Cela devrait prendre en charge automatiquement la mise en page et les couleurs de l'application, en utilisant le thème par défaut de Glass.
Ok, la prochaine chose que nous voulons faire dans ce didacticiel de développement Glass est de configurer notre application pour qu'elle ait un nom propre et une belle commande vocale. Ouvrez votre manifeste Android (
DEVELOPMENT
marque:
DEVELOPMENT
La raison pour laquelle vous souhaitez utiliser voice_trigger.xml
les autorisations vous permettent de jouer avec des commandes vocales personnalisées. Google est assez strict sur les commandes vocales autorisées dans les applications Glass approuvées, et toutes les nouvelles commandes doivent être approuvées. Étant donné que ce tutoriel est à des fins d'apprentissage et que vous ne soumettrez pas cette application à la boutique officielle de verrerie, vous ne devriez pas vous en soucier. Allumez simplement res/xml/
autorisations et vous aurez accès aux «commandes vocales non répertoriées». Pour plus d'informations à ce sujet, veuillez lire cette page GDK .
Ouvrir android:label='@string/app_name'
pour l'édition. C'est là que la commande vocale pour démarrer votre application est définie. Il doit être situé dans @string/app_name
dossier. Vous devriez obtenir un contenu similaire à celui-ci:
Hello Glass
Au lieu de dire 'Montre-moi une démo' pour démarrer notre application, disons simplement le nom de l'application. Modifiez le contenu du fichier en:
android:label='@string/app_name'
Si vous revenez à votre fichier manifeste, vous remarquerez peut-être que votre res/values/strings.xml
a été automatiquement mis à jour pour utiliser également la chaîne de ressources app_name
au lieu du codé en dur Hello Glass
valeur comme avant. Si ce paramètre n'a pas été mis à jour, assurez-vous de définir la valeur sur voice_trigger.xml
.
Et quel est le nom de votre application, exactement? Si vous ouvrez network='true'
, votre FEATURE_VOICE_COMMANDS
devrait être répertorié comme:
onCreate
Cela devrait clore les choses pour votre première application Hello Glass. Voyons comment cela fonctionne maintenant!
Depuis votre écran d'accueil, vous pouvez dire 'Ok verre' pour afficher le menu vocal. Votre application est maintenant dans la liste des commandes vocales.
Si tu le dis ' Bonjour verre «Votre application doit démarrer et vous devez bénéficier d'une expérience Glass standardisée:
Si vous ne souhaitez pas utiliser votre voix pour activer l'application, vous pouvez simplement appuyer sur votre écran d'accueil et vous verrez que votre application est disponible dans le menu:
Il est très important que vous portiez une attention particulière à l'interface de votre application et à l'interaction de vos utilisateurs avec elle. N'oubliez pas que vos utilisateurs ne sont pas toujours en mesure d'utiliser leur voix - par exemple, lorsqu'ils regardent une conférence ou une présentation. Alternativement, ils peuvent avoir les mains pleines et être incapables d'utiliser le toucher. Je vous suggère de fournir à la fois une interaction tactile et vocale dans le menu chaque fois que possible, permettant à vos utilisateurs de naviguer dans votre application en utilisant la voix et le pavé tactile en parallèle.
Maintenant que vous êtes à l'aise avec le développement de Glass et que vous avez créé Hello Glass, il est temps de créer une véritable application qui mettra en œuvre les nouvelles fonctionnalités de Glass. Créons une application qui vous permet de parcourir les profils des meilleurs développeurs ApeeScape en fonction de la plate-forme de développement.
La structure de notre exemple d'application Glass sera simple:
Récapitulons rapidement ce que vous avez déjà ajouté en plus de vos connaissances sur Android:
En utilisant ces connaissances, lancez votre nouvelle application et exécutez-la. Vous pouvez soit mettre à jour l'application Hello Glass ci-dessus, soit démarrer une nouvelle application en suivant les mêmes étapes. Nommez cette application ' Top Finder ”, Et faites votre MainActivity
fichier ressemble à ceci.
getWindow().requestFeature(WindowUtils.FEATURE_VOICE_COMMANDS);
Le res/menu
La contrainte indique à glass de vérifier la connectivité réseau lors du démarrage de cette application, que nous devrons connecter aux listes de développeurs ApeeScape. S'il n'y a pas de connexion, Glass affichera un message d'avertissement.
Faisons en sorte que l'écran d'accueil de notre application ressemble à ceci:
Quand vous voyez le 'Ok verre' message sur votre écran, cela signifie que l'application a un menu activé par la voix à cet endroit. Parler la phrase 'Ok verre' ici active le menu vocal pour cet emplacement. Cette phrase est prédéfinie par Glass et vous ne pouvez pas la modifier.
Vous pouvez penser à 'Ok verre' comme un «menu d'application», tout comme vous l'avez utilisé dans le développement de votre smartphone / tablette, et il a exactement le même rôle. Comme vous le feriez 'appuyez' sur 'l'icône du menu de l'application' sur votre écran (souvent 3 points ou lignes) pour ouvrir un menu d'application Android, vous devez dire 'Ok verre' pour ouvrir le menu à commande vocale dans votre application Verrerie.
Afin d'activer le 'Ok verre' menu que vous devez demander main.xml
de l'API. Pour ce faire, ajoutez la ligne suivante dans votre onCreatePanelMenu
gestionnaire dans votre 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); }
Chaque activité qui comprend cette fonctionnalité sera rendue avec 'Ok verre' texte en bas au centre.
La prochaine chose que vous devez faire est de créer un menu pour l'écran principal. Dans votre findDevelopers
dossier crée une nouvelle définition de menu XML nommée 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); }
. Pour simplifier les choses, nous n'activerons que trois plates-formes de développement ApeeScape, mais n'hésitez pas à apporter les modifications à votre guise.
Il doit avoir le contenu suivant:
res/drawable/logo.png
Vous vous demandez peut-être pourquoi j'ai choisi des titres de menu plutôt longs au lieu de simplement Android, JavaScript et iOS. Eh bien, la raison est très simple. Les membres de l'équipe de développement de Glass continuent d'améliorer la reconnaissance vocale. Il est recommandé d'utiliser deux ou trois mots dans vos menus afin que Glass les reconnaisse plus facilement.
J'ai déjà mentionné que le 'Ok verre' Le menu n'est pas différent de votre menu d'application Android standard. Joindre un menu à une activité est pratiquement la même chose. Remplacez simplement le MainActivity
handler dans votre private CardScrollView mCardScroller; private View mView; private GestureDetector mGestureDetector;
, et gonflez le menu principal que vous venez de créer:
buildView
Nous devons maintenant ajouter un gestionnaire de menu. Avant de faire cela, créez une méthode vide nommée 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(); }
. Nous y reviendrons plus tard pour lancer une recherche et afficher les résultats. Après cela, vous pouvez remplacer votre gestionnaire de menu.
onCreate
Il est maintenant temps de rendre joli l'écran d'accueil de notre exemple d'application Google Glass. Importez un logo ApeeScape dans votre application en tant que 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); }
. J'ai utilisé cette image:
Dans votre MainActivity
classe, apportez les modifications suivantes.
Assurez-vous que les variables privées suivantes sont déclarées au début de la classe:
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; }
Modifiez le findDevelopers
méthode pour personnaliser la disposition de la carte:
DeveloperModel.java
Et changez votre java/models
handler pour être comme ceci:
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; } }
Comme je l'ai déjà dit, nous voulons inclure un menu activé par le robinet avec 'Ok verre' , alors activez simplement les gestes comme vous le feriez dans votre application Android. Ajoutez les méthodes suivantes dans votre CardScrollAdapter
classe:
DeveloperAdapter.java
Ça devrait être ça! Vous pouvez maintenant démarrer votre application et essayer les deux méthodes d'activation du menu. Si tu le dis 'Ok verre' vous obtenez trois éléments de menu affichés à l'écran, et si vous appuyez sur la vitre, un menu déroulant sera ouvert. Pour parcourir les éléments du menu, vous pouvez faire glisser votre doigt vers l'arrière et vers l'avant.
Voici à quoi ressemble le menu vocal:
Et voici le menu gestuel:
Si vous sélectionnez un élément de menu, rien ne se passera car votre java/adapters
La méthode n’a pas encore été mise en œuvre.
Nous continuerons d'utiliser la disposition par défaut de la carte en verre, avec une image sur le côté gauche, du texte sur la droite et des informations de pied de page. Pour plus d'informations sur les bonnes pratiques de conception de vos cartes, veuillez consulter le Google Glass guide de style .
Notre profil de développeur est défini par des propriétés simples:
Alors, assurons-nous d'avoir la bonne structure de classes dans notre application. Créez une nouvelle classe nommée 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); } }
dans votre ResultsActivity
dossier. Nous voulons que cette classe soit sérialisable, car il contiendra des profils qui sont dans une liste.
MainActivity
Nous voulons que nos cartes soient étroitement liées aux données de notre profil de développeur. Parce que la valeur par défaut java/com.helloglass
est un peu générique en ce qui concerne son modèle de données, nous devons l'étendre et le faire nôtre. Créer extends Activity
dans votre developer.xml
dossier:
ResultsActivity
Nous ne voulons pas que nos résultats de recherche soient ajoutés sur l'écran d'accueil de l'application, nous allons donc créer une nouvelle activité qui effectuera la recherche et affichera les résultats. Créez une nouvelle activité, MainActivity
, à côté de votre ResultsActivity
(probablement dans public static final String SEARCH = 'search'; private String mPlatform='Android';
).
Assurez-vous que ResultsActivity
.
Ensuite, nous devons spécifier un menu pour nos cartes de profil de développeur. Créez un nouveau menu, MainActivity
, avec le contenu suivant:
private CardScrollView mCardScroller; private List mCards; private GestureDetector mGestureDetector;
Pour activer le passage de paramètres entre findDevelopers
et ResultsActivity
ajoutez les lignes suivantes au début de 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); }
classe:
MainActivity
Assurez-vous d'ajouter votre nouvelle activité à votre fichier manifeste:
findDevelopers
Configuration de l'écran initial de ResultsActivity
et la configuration des cartes est très similaire à ce que nous avons fait sur platform
. Vérifiez d'abord que vous avez défini vos cartes et votre scroller au début:
public void findDevelopers(String platform){ Intent resultsIntent = new Intent(this, ResultsActivity.class); resultsIntent.putExtra(ResultsActivity.SEARCH, platform); startActivity(resultsIntent); }
Créez une méthode de recherche temporaire sur laquelle nous reviendrons plus tard pour implémenter. L'ajout de nouvelles cartes à la liste de profils est aussi simple que l'ajout d'éléments à un tableau. Nous nommerons cette méthode ResultsActivity
aussi, mais celui-ci appartient à @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
Revenez maintenant à votre openOptionsMenu()
et mettre à jour onGesture(Gesture gesture)
là pour démarrer votre private GestureDetector createGestureDetector(Context context) { // … @Override public boolean onGesture(Gesture gesture) { if (gesture == Gesture.TAP) { openOptionsMenu(); return true; } else if // …
et passez dans le @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); }
propriété:
ic_person_50.png
Attachez votre menu développeur à resdrawable
. Vous pourrez ouvrir le menu sur n'importe quelle carte de profil.
onCreate
Comme précédemment, activez les gestes pour gérer le pavé tactile de votre Glass lorsque ResultsActivity
est affiché. Pour ce faire, il suffit d'appeler MainActivity
dans votre @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); }
méthode:
onResume
Ajoutez également un gestionnaire de menu aux actions liées aux développeurs. Nous allons laisser de simples messages Toast pour le moment.
onPause
Chaque application doit utiliser de jolis éléments visuels, des icônes, etc. L'équipe de Google Glass a fourni un très grand ensemble d'icônes standardisées communes que les développeurs de Glass peuvent utiliser gratuitement dans leurs applications. Vous pouvez trouver un ensemble complet d'icônes de verre standard ainsi que des polices dans leur bibliothèque
Pour l'instant, vous n'avez besoin que d'une icône MainActivity
, alors téléchargez-la sur votre MainActivity
dossier. Nous utiliserons cette icône au lieu de télécharger une photo du développeur.
La dernière chose qui reste pour l'instant dans notre didacticiel de développement d'applications Glass est de remplacer notre
handler sur , où nous vérifierons de quelle plate-forme de développement a été transférée et remplissez notre liste.Vous pouvez partir
|_+_|et méthodes identiques à celles de votre
|_+_|.
Si vous démarrez votre application maintenant, vous pouvez vérifier à la volée comment vos profils de développeur sont créés en fonction du menu sélectionné sur
. Encore une fois, vous avez la possibilité d'afficher votre menu en utilisant 'Ok verre' ou en appuyant sur le pavé tactile ou en utilisant l'activation vocale. Voici à quoi ressemble le profil '10e développeur Android' pour le moment:
Appuyer sur fait apparaître le menu tactile:
Et dire 'Ok verre' fait apparaître le menu vocal:
Faites glisser votre doigt depuis la liste vers le bas pour revenir à l'écran d'accueil de votre application.
Pour conclure, remplissons le menu avec des informations réelles pour les 10 meilleurs développeurs ApeeScape pour JavaScript , Android , et iOS .
Vous devrez télécharger leurs photos de profil et les rendre disponibles via HTTP, ou simplement utiliser les URL directement depuis toptal.com .
Étant donné que la création d'un robot d'exploration Web uniquement pour obtenir les noms des principaux développeurs dans ApeeScape peut être trop compliqué pour cet article, j'ai créé des fichiers JSON que vous pouvez utiliser pour Android , JavaScript , et iOS .
Dans votre application, la première chose à faire est de demander l'accès à Internet à partir de votre système d'exploitation Android. Ajoutez la ligne suivante à votre fichier Manifest
|_+_|
Sachez que Glass ne vous permettra pas de bloquer le thread principal en utilisant directement les requêtes HTTP. Vous devrez gérer les téléchargements JSON et les images individuelles de manière asynchrone. Vous pouvez utiliser une tâche asynchrone, créer votre propre service ou intention de téléchargement, ou ce que vous préférez dans votre travail quotidien.
La création de cette fonctionnalité n'est pas spécifique à Google Glass, je vais donc ignorer les extraits de code. Si vous allez de l'avant et que cette dernière fonctionnalité fonctionne, vos cartes de profil devraient ressembler à ceci:
J'espère que vous vous êtes amusé à suivre ce tutoriel de développement de Google Glass et à créer votre première application Glassware. À présent, vous devriez être à l'aise avec l'idée que l'écriture d'applications pour Glass n'est pas très différente de toute autre plate-forme Android.
À ce stade, vous avez appris à étendre l'écran d'accueil à activation vocale de Google Glass, à créer vos propres menus à commande vocale et à combiner les commandes vocales avec des gestes tactiles. Vous devez également comprendre les concepts et les éléments de base de Glass UI, tels que les cartes, les mises en page et les éléments. Vous avez vu comment créer dynamiquement des cartes et naviguer entre différentes activités.
Pour aller plus loin, accédez aux ressources de développement de Google à l'adresse développeurs.google.com/glass . Lorsque vous commencez à créer des applications plus complexes, cela s'avère être une ressource très utile.
N'oubliez pas que Glass est toujours en phase de développement et que de nombreuses autres améliorations seront probablement mises en œuvre avant d'arriver sur le marché grand public. Dans cet esprit, j'ai une remarque importante pour vous:
Il reste encore beaucoup de travail sur la reconnaissance vocale et vous pourriez vous surprendre à crier après votre ami imaginaire en essayant de démarrer votre activité ou de remplir certaines informations. Ne vous inquiétez pas, tous ceux qui essaient le développement de Google Glass ressentent la même chose, vous n'êtes donc pas seul.
La technologie s'améliorera et le verre sera prêt pour la vente au détail en un rien de temps. Il ne manquera pas de faire de grandes vagues une fois qu'il arrivera dans les magasins, alors j'espère que vous êtes aussi enthousiaste que moi d'être l'un des premiers à être à la pointe de cette technologie passionnante!
Hurler : Les captures d'écran de cet article sont réalisées à l'aide de [email protected] .