2010-05-16 6 views
3

J'utilise Wikitude API 1.1 en tant que visionneuse AR dans mon application. Le problème avec Wikitude, si je n'ai pas lancé l'application Wikitude depuis le démarrage du téléphone, j'obtiendrai une exception NullPointerException chaque fois que je lance ma propre application.Début d'une intention de lancer une application en arrière-plan dans Android

Donc, je me demande si je peux commencer mon application d'abord et les vérifier si Wikitude est installé et ou en cours d'exécution. Si ce n'est pas installé, allez sur le marché n télécharger. Si ce n'est pas le cas, nous devrions l'exécuter directement en arrière-plan afin que mon application ne perd pas son focus.

// Workaround for Wikitude 
    this.WIKITUDE_PACKAGE_NAME = "com.wikitude"; 
    PackageManager pacMan = Poligamy.this.getPackageManager(); 
    try { 
     PackageInfo pacInfo = pacMan.getPackageInfo(this.WIKITUDE_PACKAGE_NAME, pacMan.GET_SERVICES); 
     Log.i("CheckWKTD", "Wikitude is Installed"); 
     ActivityManager aMan = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE); 
     List<RunningAppProcessInfo> runningApps = aMan.getRunningAppProcesses(); 
     int numberOfApps = runningApps.size(); 

     for(int i=0; i<numberOfApps; i++) { 
      if(runningApps.get(i).processName.equals(this.WIKITUDE_PACKAGE_NAME)) { 
       this.WIKITUDE_RUNNING = 1; 
       Log.i("CheckWKTD", "Wikitude is Running"); 
      } 
     } 
     if(this.WIKITUDE_RUNNING == 0) { 
      Log.i("CheckWKTD", "Wikitude is NOT Running"); 
      /*final Intent wIntent = new Intent(Intent.ACTION_MAIN, null); 
      wIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
      final ComponentName cn = new ComponentName("com.wikitude", 
        "com.mobilizy.wikitudepremium.initial.Splash"); 
      wIntent.setComponent(cn); 
      wIntent.setFlags(Intent.FLAG_ACTIVITY_NO_USER_ACTION); 
      startActivityIfNeeded(wIntent, 0);*/ 
     } 
    } catch (NameNotFoundException e) { 
     // TODO Auto-generated catch block 
     Log.i("CheckWKTD", "Wikitude is NOT Installed"); 
     e.printStackTrace(); 
     //finish(); 
    } 

La partie I block commentée est l'intention de démarrer Wikitude. Mais j'ai toujours échoué à restreindre Wikitude au contexte. De l'aide? Merci avant.

Best, Tista

Répondre

1

Il n'y a pas une telle chose comme "courir tout droit à fond".

Je me concentrerais sur la fixation de votre NullPointerException en communiquant avec Wikitude et comprendre pourquoi vous obtenez si leur application n'a pas encore été exécuté.