• Home
  • Youzik
  • Papystreaming
  • Darknet
  • Libertyland
  • Cacaoweb
  • GG maps
  • Yggtorrent
  • Zone téléchargement

Grimag

  • Accueil
  • Catégories
    • Smartphone
    • High Tech
    • Business
    • Web
    • Appli Jeux Vidéo
    • Shopping
  • Android c’est quoi ?
  • Nous Contacter
  • Nos comparatifs
    • Drone avec caméra
    • Clavier d’ordinateur
    • Onduleur
    • GPS
    • Répéteur WiFi

Développer votre application de réalité augmentée avec l’API de Wikitude



Dans  ce tuto je vais utiliser l’api de Wikitude pour développer ma propre application de réalité augmentée. Cette application de réalité augmentée affichera des lieux à visiter avec des définitions prises sur wikipedia.

D’abord, télécharger l’api de test wikitude ici et dézipper le. Créer votre projet dans eclipse et importer votre librairie. Pour cela dans propriété du projet sélectionner->Jaba build Path-> onglet Librairie ->Add external Jars.

ProjetAR

Dans mon interface xml je crée un bouton de lancement de mon application de réalité augmentée.




    
		
  

Dans la méthode oncreate de mon application, je lance mon inten de réalité augmentée avec ma méthode startARViewBasic()

/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Button b = (Button) findViewById(R.id.Button1);
         b.setOnClickListener(new View.OnClickListener() {
	        public void onClick(View v) {
	         //  je lance mon inten de réalité augmenté
                   startARViewBasic();
	        }
        });
    }   	

Pour ouvrir mon client de réalité augmentée je procède en 3 méthodes

  /**
    * j'ouvre ma vue réalité augmenté
    **/
   private void startARViewBasic() {

	   // Creation d'un intent basic  AR
	   WikitudeARIntent intent = prepareIntent();
	
	   // Titre de mon applicaiton
	   intent.addTitleText("Ma AR application");
	   
	   // lancement de mon activity
	   try {
		   lecontext.startActivity(intent);
	   }
     // erreur si l'application wikitude n'est pas installer sur votre téléphone
     catch (ActivityNotFoundException e) {
		   Toast.makeText(this, "Rien trouvé "+e.getMessage(),
		   Toast.LENGTH_SHORT).show();
		   email.setText(e.getMessage()+"/"+intent.toString());
		   //intent.toString()
	   }
   }
la méthode prepareIntent() qui collectionne les POI( point à afficher dans mon application AR)
 /**
     * prepares a Wikitude AR Intent (e.g. adds the POIs to the view)
     * 
     * @return the prepared intent
     */
    private WikitudeARIntent prepareIntent() {
	    // create the intent
	    WikitudeARIntent intent = new WikitudeARIntent(this.getApplication(),
	    null, null);
	    //add the POIs
	    this.addPois(intent);
	    return intent;
    }

Et la dernière méthode addPois la plus intéressante, est celle dans laquelle je vais renseigner nos différentes positions cartographiques que je récupère sur Google Maps.

 /**
     * adds hard-coded POIs to the intent
     * 
     * @param intent
     *            the intent
     */
    private void addPois(WikitudeARIntent intent) {
	// mon point 1 le castillet de perpignan    
      WikitudePOI poi1 = new WikitudePOI(42.700664, 2.894377, 1, "Castillet Perpignan",
	    "Le Castillet ou Castellet (en catalan) est un monument de la ville de Perpignan qui fut tour à tour porte de la ville et prison d'Etat. Aujourd'hui il abrite le Musée Catalan des Arts et Traditions Populaires (La Casa Pairal).");
	// mon point 2 le palais de rois de marjorque  à perpignan   
      WikitudePOI poi2 = new WikitudePOI(
	    42.697532,
	    2.893424,
	    1,
	    "Palais des Rois de Majorque",
	    "e palais des Rois de Majorque est un palais-forteresse de style gothique situé à Perpignan. Cet édifice fut achevé en 1309");
   // mon point 3 la cas musicale a perpignan	   
     WikitudePOI poi3 = new WikitudePOI(
	    42.699128,
	    2.90019,
	    1,
	    "Casa Musicale",
	    "La Casa musicale, est un espace entièrement dédié à la pratique de la musique et de la danse sous toutes ses formes.");
   // mon point 5 le musée de tautavel dans les PO
	    WikitudePOI poi4 = new WikitudePOI(
	    42.843046,
	    2.750473,
	    1,
	    "Musée de Tautavel",
	    "Inauguré en 1992, le nouveau Musée de Tautavel, Centre Européen de Préhistoire, est un formidable outil au service de la vulgarisation des sciences rattachées à l'archéologie et particulièrement à la préhistoire sur les périodes du quaternaire méditerranéen");
   //ma collection  de point	   
    Collection pois = new ArrayList();
	    pois.add(poi1);
	    pois.add(poi2);
	    pois.add(poi3);
	    pois.add(poi4);
	    intent.addPOIs(pois);
    }

N'oubliez pas d'installer d'abord l'application wikitude sur votre téléphone.

device1
device2
Le Code complet

package org.com.projetar;

import java.util.ArrayList;
import java.util.Collection;

import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import org.openintents.intents.WikitudeARIntent;
import org.openintents.intents.WikitudePOI;

public class ProjetAR extends Activity {
	
	private TextView email;
	Context lecontext = this;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Button b = (Button) findViewById(R.id.Button1);
        email = (TextView) findViewById(R.id.mail);
         b.setOnClickListener(new View.OnClickListener() {
	        public void onClick(View v) {
	        	startARViewBasic();
	        }
        });
    }   	
    /**
    * starts the basic AR view
    **/
   private void startARViewBasic() {

	   // Create the basic intent
	   WikitudeARIntent intent = prepareIntent();
	
	   // Optionally add a title
	   intent.addTitleText("My first AR application");
	   
	   // And launch the intent
	   try {
		   lecontext.startActivity(intent);
	   } catch (ActivityNotFoundException e) {
		   Toast.makeText(this, "Rien trouvé "+e.getMessage(),
		   Toast.LENGTH_SHORT).show();
		   email.setText(e.getMessage()+"/"+intent.toString());
		   //intent.toString()
	   }
   }
    
    /**
     * prepares a Wikitude AR Intent (e.g. adds the POIs to the view)
     * 
     * @return the prepared intent
     */
    private WikitudeARIntent prepareIntent() {
	    // create the intent
	    WikitudeARIntent intent = new WikitudeARIntent(this.getApplication(),
	    null, null);
	    //add the POIs
	    this.addPois(intent);
	    return intent;
    }
    
    

    /**
     * adds hard-coded POIs to the intent
     * 
     * @param intent
     *            the intent
     */
    private void addPois(WikitudeARIntent intent) {
	    WikitudePOI poi1 = new WikitudePOI(42.700664, 2.894377, 1, "Castillet Perpignan",
	    "Le Castillet ou Castellet (en catalan) est un monument de la ville de Perpignan qui fut tour à tour porte de la ville et prison d'Etat. Aujourd'hui il abrite le Musée Catalan des Arts et Traditions Populaires (La Casa Pairal).");
	    WikitudePOI poi2 = new WikitudePOI(
	    42.697532,
	    2.893424,
	    1,
	    "Palais des Rois de Majorque",
	    "e palais des Rois de Majorque est un palais-forteresse de style gothique situé à Perpignan. Cet édifice fut achevé en 1309");
	    WikitudePOI poi3 = new WikitudePOI(
	    42.699128,
	    2.90019,
	    1,
	    "Casa Musicale",
	    "La Casa musicale, est un espace entièrement dédié à la pratique de la musique et de la danse sous toutes ses formes.");
	    WikitudePOI poi4 = new WikitudePOI(
	    42.843046,
	    2.750473,
	    1,
	    "Musée de Tautavel",
	    "Inauguré en 1992, le nouveau Musée de Tautavel, Centre Européen de Préhistoire, est un formidable outil au service de la vulgarisation des sciences rattachées à l'archéologie et particulièrement à la préhistoire sur les périodes du quaternaire méditerranéen");
	    Collection pois = new ArrayList();
	    pois.add(poi1);
	    pois.add(poi2);
	    pois.add(poi3);
	    pois.add(poi4);
	    intent.addPOIs(pois);
    }
    
}

.
Il est temps de mettre à profit les tutoriels d’Android France:
Passez à la vitesse supérieure et investissez quelques dizaines d’euros pour acquérir les connaissances qui vous feront gagner de l’argent avec vos applications rendez-vous sur notre boutique Android-france pour ces formations en vidéo

Nov 2, 2009Gnakouri Danon

Ces articles pourraient vous intéresser :

  • Wikitude – la plate forme de réalité augmentée maintenant disponible pour les tablettes tactiles sous HoneycombWikitude – la plate forme de réalité augmentée maintenant disponible pour les tablettes tactiles sous Honeycomb
  • L’Api Layar pour réaliser des applications en réalité augmentéeL’Api Layar pour réaliser des applications en réalité augmentée
  • Réalité augmentée l’application Wikitude 3.0 dans le storeRéalité augmentée l’application Wikitude 3.0 dans le store
  • Développement-Utiliser la liste de ses contacts dans ses applications AndroidDéveloppement-Utiliser la liste de ses contacts dans ses applications Android
  • Layar – Monétisation du logiciel de réalité augmentéeLayar – Monétisation du logiciel de réalité augmentée
  • Utiliser la camera dans vos applications androidUtiliser la camera dans vos applications android
  • Développez avec la plate forme Polymer de Google – TUTO 4 Polymer et fichier json part IDéveloppez avec la plate forme Polymer de Google – TUTO 4 Polymer et fichier json part I
  • Développez avec la plate forme Polymer de Google – TUTO 4 Polymer et fichier json part IIDéveloppez avec la plate forme Polymer de Google – TUTO 4 Polymer et fichier json part II
  • Intégrer les pub de Greystripe.com dans vos applications androidIntégrer les pub de Greystripe.com dans vos applications android
  • Créer son propre menu de lancement comme la home avec SlidingDrawerCréer son propre menu de lancement comme la home avec SlidingDrawer
  • Layar – Le navigateur de réalité augmentée est disponible sur Android MarketLayar – Le navigateur de réalité augmentée est disponible sur Android Market
  • Intégrer des pub Admob dans ses applications AndroidIntégrer des pub Admob dans ses applications Android
  • Développez votre propre boussoleDéveloppez votre propre boussole
  • Développez avec la plate forme Polymer de Google – TUTO 1 Votre environnement de travailDéveloppez avec la plate forme Polymer de Google – TUTO 1 Votre environnement de travail
  • Développez avec la plate forme Polymer de Google – TUTO 2 ma première WebAppDéveloppez avec la plate forme Polymer de Google – TUTO 2 ma première WebApp
  • Utiliser du code HTML dans ses applications androidUtiliser du code HTML dans ses applications android
  • Développez une application pour android étape 21 (Modifier un ingrédient avec une boite de dialogue)Développez une application pour android étape 21 (Modifier un ingrédient avec une boite de dialogue)
  • Mobilizy propose un langage normalisé ouvert pour les navigateurs de réalité augmentéeMobilizy propose un langage normalisé ouvert pour les navigateurs de réalité augmentée
  • Développez une application pour android étape 19 (Ajout de sous menu)Développez une application pour android étape 19 (Ajout de sous menu)
  • Développez votre propre réveil (Alarme) avec votre android phoneDéveloppez votre propre réveil (Alarme) avec votre android phone
  • Utiliser des onglets dans ses applications androidUtiliser des onglets dans ses applications android
  • Wikitude driver UN GPS en réalité augmentéeWikitude driver UN GPS en réalité augmentée
  • Android 5.0 Lollipop – La capture vidéo sans ROOT est possibleAndroid 5.0 Lollipop – La capture vidéo sans ROOT est possible
  • Google publie des exemples de codes pour vos apps multi-deviceGoogle publie des exemples de codes pour vos apps multi-device

Partager :

  • Cliquez pour partager sur Twitter(ouvre dans une nouvelle fenêtre)
  • Cliquez pour partager sur Facebook(ouvre dans une nouvelle fenêtre)
  • Cliquez pour partager sur Google+(ouvre dans une nouvelle fenêtre)
  • Cliquez pour partager sur Reddit(ouvre dans une nouvelle fenêtre)
  • Plus
  • Cliquez pour envoyer par e-mail à un ami(ouvre dans une nouvelle fenêtre)
  • Cliquer pour imprimer(ouvre dans une nouvelle fenêtre)
  • Cliquez pour partager sur Pinterest(ouvre dans une nouvelle fenêtre)
  • Cliquez pour partager sur Pocket(ouvre dans une nouvelle fenêtre)


Vidéo - Le Motorola Milestone sera MultiTouchArchos 5 Internet Tablet - Mise à jour du firmware en 1.2.15
  • Vincent Madelain

    Bonjour,

    Dans votre exemple, est ce que les hard-coded POIs se retrouvent au final dans la base communautaire ou est ce que qu’il ne servent qu’à l’affichage en local sur le telephone?

    Merci

  • Guy

    @Vincent Madelain je pense qu’il reste en local sur le téléphone

  • Samuel Pineau

    Bonjour,

    en regardant votre code, je me suis aperçu que vous avez oublier de mentionner une partie du code :

    dans la déclaration des variables globales il y a “private TextView email;”
    vous l’implémentez dans la méthode “void onCreate (…)” par la ligne
    ” email = (TextView) findViewById(R.id.mail);”.

    Comment définit on la méthode “mail” dans le code xml.
    C’est vrai que je peux tout aussi bien me passer de cette méthode, car je vois pas la suite qu’elle ne sert que lorsque Wikitude n’est pas installé, mais c’est aussi par curiosité que je vous pose cette question.

    Merci d’avance
    Samuel

  • Guy

    @samuel pineau pour le moment dans se code elle ne sert à rien

  • Romain

    Bonjour,

    Une fois mon application développée en suivant ce tutoriel, j’ai, en cliquant sur le bouton “lancement” crée, le message d’erreur suivant : “Désolé ! Fermeture soudaine de l’application projetar (du processus org.com.projetar). Merci de réessayer.”
    J’ai pourtant suivi ce tutoriel avec attention et il ne me semble pas avoir commis d’erreur, pourrais-je avoir de l’aide à ce sujet ?

    Merci d’avance.

  • Guy

    @Romain est ce que tu as installé sur ton téléphone l’application wikitude

  • Romain

    Alors non, car j’ai aussi eu une erreur en essayant d’installer Wikitude (la suivante : “Failure [INSTALL_FAILED_MISSING_SHARED_LIBRARY]”).

    Parallèlement à cette erreur, je voulais avancer sur ce tutoriel tout en sachant que je serais forcément bloqué tôt ou tard mais je pensais que j’aurais eu l’erreur de ce code :
    catch (ActivityNotFoundException e) {
    Toast.makeText(this, “Rien trouvé “+e.getMessage(),
    Toast.LENGTH_SHORT).show();
    email.setText(e.getMessage()+”/”+intent.toString());
    //intent.toString()
    }

    Quoi qu’il en soit je suis bloqué et je ne sais vers quelle direction chercher.

    Merci de ton aide.

  • Romain

    Voilà, j’ai pu corriger mon erreur précédente. Cette fois l’erreur est la suivante lors du lancement de l’application :

    “Rien trouvé No Activity found to handle Intent { act=org.openIntents.action.AR_VIEW (has extras) }

    Cela est bien plus proche de l’erreur que j’attendais dû à l’absence de Wikitude. Je vais, cette fois, chercher à corriger mon erreur lors de cette installation.

    Merci.

  • Benjamin

    J’ai tester ça marche. Par contre je sais pas si c’est l’application, mais c’est archi archi lent sur mon HTC Magic. S’en ai même pas utilisable contrairement à Layar.
    Dommage, j’attendrai une nouvelle version avant de m’y mettre.

    • nadia

      est ce que vous pouvez me passer le projet j’ai suivi les mêmes étapes du tuto mais il n’arrive pas à trouver la classe WikitudeARIntent j’ai meme ajouter le fichier .jar svp

  • Romain

    Bonjour,

    J’ai pu développer ma propre application de réalité augmentée avec l’API Wikitude et grâce à ce tutoriel.
    Cependant, je me demandais s’il était possible de supprimer l’inscription “Beta” à l’écran et jusqu’à quel point cette API était exploitable ? J’entends par cette question quelles sont les fonctionnalités offertes par cette API en dehors de cette possibilité de hard-codage des POI ? Est-il possible d’effectuer des appels vers une base de données privée, par exemple ?

  • Guy

    @Romain pour enlever l’inscription beta il faudrait contacter wikitude quite fournira une api et toutes les fonctionnalités supplementaires pour une utilisation en production.

  • Ludovic B.

    Bonjour,

    J’aimerais savoir comment vous avez fait pour installer Wikitude sur l’émulateur ?

    Car j’ai la même erreur que Romain, c’est à dire : « Rien trouvé No Activity found to handle Intent { act=org.openIntents.action.AR_VIEW (has extras) }

    Merci !

  • Romain

    Salut,

    Au risque de te décevoir, personnellement, je n’ai toujours pas résolu ce problème avec l’émulateur. J’ai fini par créer mon application de réalité augmentée basée sur l’API Wikitude, sur un HTC Dream (G1) (sous Android 1.5) et le résultat est tout à fait satisfaisant.
    De plus, créer une application de ce type sur l’émulateur n’est pas vraiment probant étant donné que tu n’as pas, de base sur l’émulateur, la gestion de la caméra et du positionnement GPS.
    En espérant que tu réussisses tout de même à résoudre ton problème et répondre à tes besoins.

    • Yessine Maalej

      Chér Romain est ce que vous pouver m’envoyer le code de ton application car j’ai eu beaucoup d’erreur due à OpenGl malgré que je ne l’utilise pas !! mon mail yesoun@gmail.com j’attends une réponse , merci d’avance

  • Ludovic B.

    Le positonnement GPS se fait avec telnet et geo fix 🙂

    Moi j’installe des Wikitude sur l’émulateur mais soit il trouve pas la classe comme ci-dessus, soit il me dit de le mettre à jour… !

    Je vais tenter de poursuivre ou je vais me tourner vers Layar.

  • Ludovic B.

    Si quelqu’un peut m’éclairer sur un point avec Layar. Si j’ai bien compris pour développer avec Layar, il faut créer un webservice répondant avec nos POI et rajouter cette couche sur Layar ?

    Ensuite si la couche est approuvée, celle-ci est mise sur le réseau Layar et accessible depuis les clients finaux avec Layar.

    Mais comment les développeurs sont ils rémunérés ? Ne peut on pas faire son propre Layar pour faire son produit avec sa couche de AR ?

  • Ludovic B.

    @Romain

    As tu trouvé un moyen pour forcer l’utilisateur à installer Wikimedia dans ton application ?

  • Guillaume L.

    Bonjour,
    Développant une API sur Wikitude 4, je prépare une liste de POIs que je personnalise avant le lancement de Wikitude. Tous sont bien pris en compte. Mon problème se situe au niveau de l’actualisation de ces POIs. Les méthodes intent.addPOI() ou intent.removePOI() ne semble avoir aucun effet une fois Wikitude lancé. Ma question : Existe-t-il une méthode pour rafraichir les POIs ?
    Merci.

  • fred

    bonjour a à tous.
    je pense qu’avec les spécialistes qu’il y a dans ce post , vous pourrez m’aider si vous si le voulez.
    voila je vois que par mal de personne s’interressé à la création PUR ET DUR d’un appli basé sur une api et donc soumis ensuite à l’approbation d’APPLE,si j’ai bien compris.
    pour ma part j’ai juste besoin de créer un calque(je pense utilisé WIKITUDE qui est aussi compatible avec le 3 G contrairement à LAYAR)j’ai quasiment réussi en créant un fichier KML sur google earth qui regroupe les POI mais je ne vois pas comment ajouter a ces points les info pour le lien “WWW” et “I” ou créer un lien vers une Video.c’est si simple ave wikitude .ME..
    merci beaucoup d’avance car c’zst trés urgent et vous aiderez un jeune entrepreneur 😉

  • sluce

    Bonjour,

    J’ai cette erreur lorsque je veux installer une appli sur l’emulateur :
    Failure [INSTALL_FAILED_MISSING_SHARED_LIBRARY]

    Quelqu’un peut m’aider ?

    Merci d’avance,

    Stéphane

  • Guy

    @sluce as tu installé l’application wikitude

  • sluce

    Non c’est une autre application que quelqu’un m’a passé et qui tourne pour lui.

    Je me suis permis de poster ici car c’est le seul article qui ressort sur Google avec cette erreur. Désolé si je suis un peu hors sujet mais ça fais 2 jours que je suis bloqué

  • zizou

    bonjour
    voila je veux installer wikitude sur mon tel mais quand je télécharge l api sur wikitude.org et je dizipe il ya erreur

    je bloque comment faire ??merciiiiiiiiiiiiii

  • AlexKid

    Bonjour,

    Après avoir suivi ce tuto à la règle et après son implémentation sur mon téléphone je reçois le message:

    l’application n’est pas installé sur votre téléphone (ce qui est faux).

    Je pense que cela est dû à une erreur de “permission”. voici la ligne en lien direct avec mon erreur selon moi…

    ActivityManager: java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=appli.wikitude.test/.wiki } from null (pid=12826, uid=2000) requires null

    Quelqu’un pourrait – il m’aider au plus vite SVP ???

  • Guy

    @AlexKid tu a mis les bonnes autorisation fichier manifest dans ton application accès internet,accès à la caméra etc ..

  • AlexKid

    Bonjour,

    J’ai réussi à fixer le problème. Merci Guy pour le conseil.
    J’ai maintenant une autre question.

    Apres avoir demandé sur le site de wikitude une clé pour enlevé le BETA WIKITUDE, l’appli m’indique que ma clé est mauvaise alors que non ! Doit on attendre un certain délai avant de pouvoir voir son univers ?

  • mcbjam

    Est ce qu’il y’a un moyen quelconque de testé l’exemple sans android. Avec le tollkit par exemple ?

  • beyegbin konan

    Bonjour chers tous j’ai le même problème que Romain svp ,surtout romain comment tu as résolu ton problème.: « Rien trouvé No Activity found to handle Intent { act=org.openIntents.action.AR_VIEW (has extras) }

    Merci !

Gnakouri Danon

Co-fondateur du site Android france, senior lead developper, passionné de bière et de cigare cubain

2 novembre 2009 Developpement, Tuto développementapi, api wikitude, Application, Developpement, réalité augmentée, tuto, wikitude2,369

2019 © Android-France
sponsored
loading Annuler
L'article n'a pas été envoyé - Vérifiez vos adresses e-mail !
La vérification e-mail a échoué, veuillez réessayer
Impossible de partager les articles de votre blog par e-mail.