2017-04-04 6 views
-2

Wie kann ich überprüfen, ob die App bereits installiert war oder nicht? Ich weiß, dass ich nach der Paketmanager-Klasse für die erste Installationszeit suchen kann, aber der von dieser Methode zurückgegebene Wert kann zurückgesetzt werden, indem die App deinstalliert und neu installiert wird. Ich spreche von Apps, die nicht meine sind, zum Beispiel, wenn ich überprüfen möchte, ob Amazon zuvor installiert wurde oder nicht, wie soll das dann gemacht werden? Ich suchte StackOverflow, aber nichts funktionierte für mich.So überprüfen Sie, ob die App bereits installiert war oder nicht

+0

Ich bin mir sicher, dass es nicht möglich ist. Sie sollten keinen Zugriff auf die Informationen der Apps haben, die der Benutzer jemals installiert hat. –

+0

@VladMatvienko ich liebte es :) –

Antwort

0

Es gibt keine allgemeine Möglichkeit zu überprüfen, ob eine App auf einem Gerät installiert ist (Aus Sicherheitsgründen, wie Sie sich vorstellen können).

Aber wenn Sie auf eine bestimmte App zielen, können Sie versuchen, zu analysieren, ob es auf der SD-Karte zum Beispiel zugängliche Reste dieser App gibt. Und Ihre App kann dann anhand der Existenz dieser Dateien überprüfen, ob die App installiert wurde oder nicht. Wenn Sie wissen möchten, ob eines Ihrer eigenen Apps auf dem Gerät installiert wurde. Sie können mit dem SDcard-Ansatz gehen und eine Datei auf die SD-Karte schreiben und sie mit Ihrer anderen App lesen.

+0

Ich habe die Idee, danke bro. Ich kann nach dem letzten geänderten Ordner suchen. Wenn der Benutzer es erneut in meiner Anwendung installiert, kann ich erneut prüfen, ob der Wert der letzten Änderung verfügbar ist. Das bedeutet, dass die App zuvor installiert wurde und die Werte dann wieder geändert werden: D. Ich habe Recht? : D –

+0

@AmitKhatkar Ich denke ja, es ist wirklich einfach, wenn Sie überprüfen möchten, ob eine Ihrer eigenen Apps installiert wurde. Aber wenn Sie nicht die Kontrolle über die App haben, die Sie überprüfen möchten, gibt es eine hohe Wahrscheinlichkeit, dass es keine Überreste auf der SD-Karte zum Beispiel gibt. – IIIIIIIIIIIIIIIIIIIIII

+0

Wenn App installiert wurde, wird die erste Installationszeit zurückgegeben, sonst wird 0 zurückgegeben: D 'PackageInfo info = null; lang firstInstallTime = 0; versuchen { info = getPackageManager(). GetPackageInfo (Paket, 0); firstInstallTime = info.firstInstallTime; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } Log.e ("fireinstall", String.valueOf (firstInstallTime)); ' –

-1

können Sie erreichen diese unter Verwendung von Schreib Datei auf der SD-Karte:

File f = new File("path of your file & sdcard location"); 
    if (f.isDirectory()) { 
     // Already installed your application get the file 

    }else{ 
     // First time installed write a file here 
     f.mkdir(); 
    } 
+0

Wenn Benutzer dort Junk-Datei löschen, dann wird diese Datei verloren gehen. Also danach können Sie diese Datei nicht greifen! .. –

+0

Ihr Dateipfad sollte in SD-Karte sein, nicht in Anwendung Cache-Verzeichnis oder getFilesDir(), die nach der Deinstallation der Anwendung entfernt werden kann, sollte es an einem bestimmten Speicherort, der dauerhaft gespeichert ist. –

1

Versuchen Sie dies auch sein mag hilfreich

// Verwenden Paketnamen, die wir boolean isAppInstalled = appInstalledOrNot ("überprüfen möchten com .check.application ");

if(isAppInstalled) { 
     //This intent will help you to launch if the package is already installed 
     Intent LaunchIntent = getPackageManager() 
      .getLaunchIntentForPackage("com.check.application"); 
     startActivity(LaunchIntent); 

     Log.i("Application is already installed.");  
    } else { 
     // Do whatever we want to do if application not installed 
     // For example, Redirect to play store 

     Log.i("Application is not currently installed."); 
    } 
} 

private boolean appInstalledOrNot(String uri) { 
    PackageManager pm = getPackageManager(); 
    try { 
     pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES); 
     return true; 
    } catch (PackageManager.NameNotFoundException e) { 
    } 

    return false; 
} 
+0

hat es geschafft. Übrigens ist deine Antwort nicht korrekt. Ich möchte keine App starten. Ich möchte nur überprüfen, ob die App installiert wurde oder nicht. –

Verwandte Themen