Apps für Android programmieren leicht gemacht!
Prüfen, ob eine bestimmte App installiert ist

Prüfen, ob eine bestimmte App installiert ist

Manchmal kann es hilfreich oder sogar notwendig sein, dass wir prüfen, ob eine bestimmte App auf dem Gerät installiert ist.
Beispielsweise, wenn wir versuchen diese zu benutzen.

Nehmen wir einmal rein hypothetisch an, dass wir einen Code-Editor für Android geschrieben haben.
Dieser Code-Editor soll nun einen Button erhalten, der, sofern installiert, einen selber programmierten FTP-Manager öffnet.
Dieser FTP-Manager soll nun von dem Code-Editor die gerade geöffnete Datei erhalten und auch gleich per FTP auf einen Server hoch laden.
Damit wir aber keinen Fehler erzeugen, wollen wir den Button nur bei installiertem FTP-Manager anzeigen.

Ein anderes Beispiel gefällig?
Ich habe vor einiger Zeit mal eine News App für eine befreundete Webseite geschrieben.
Diese hatte YouTube Videos in den Artikeln eingebunden, welche ich gerne über die YouTube App abspielen wollte.
Leider beendete sich die News App dabei aus unerfindlichen Gründen auf meinem Test-Smartphone. Nach 2 Stunden Fehlersuche im Code bemerkte ich, dass ich die YouTube App gar nicht installiert hatte.

 

Java:

Für die Problemstellung der YouTube App habe ich folgende Funktion benutzt.
Ihr wird der Packagename der zu prüfenden App übergeben und sie gibt ein true oder false zurück, wenn die App installiert ist oder eben nicht.
Den Packagenamen einer bestimmten App findet ihr heraus, indem ihr in den Einstellungen auf Apps/Anwendungsmanager geht und die App in der Liste sucht. Auf der Detailseite sollte der Packagename stehen.

Solltet ihr den Packagenamen nicht finden, dann versucht die App im Google PlayStore zu finden und schaut euch den URL der entsprechenden Seite an.
Der Packagename steht im URL ganz hinten: „https://play.google.com/store/apps/details?id=com.google.android.youtube„.

public boolean appInstalliert(String packageName) {

  boolean installiert = false;

  // Lese eine Liste mit allen Apps aus.
  List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);

  // Fehlerabfrage
  try{

      // Gehe durch alle gefundenen Apps, speichere die Daten in dem Objekt "neueApp" und füge diese zur Ergebnisliste hinzu.
      for(int i=0;i < packs.size();i++) {

        PackageInfo p = packs.get(i);

        // Kleine Pürfung, ob die App valide ist.
        if (p.versionName == null) {

          if(packageName.equals(p.packageName))
            installiert = true;

        }
        
      }

  }catch(Exception e){

    // Fehlerausgabe
    Log.e("Apps auslesen - Fehler",e.getMessage());

  }

  return installiert;
}

 

Marvin

Ich bin 23 Jahre jung und studiere zurzeit Wirtschaftsinformatik an der Georg-August-Universität in Göttingen. Ich bin ein Mensch, der sich neben der Programmierung noch für tausend andere Dinge interessiert, die mal mehr und mal weniger verrückt sind. Vor allem aber bin ich Feuer und Flamme mit der Programmierung von eigenen kleinen Apps und Programmen, die mein Leben bereichern.

Kommentar hinzufügen

*Pflichtfeld