2013-09-03 19 views
8

un po 'doozy.Identificare se esiste un'app, se non andare a Play Store

Quello che mi piacerebbe sapere è che è possibile che se un'app non esiste su un dispositivo, può andare nel Play Store per scaricarlo. So che ho bisogno di mettere questo codice in

Intent i = getPackageManager().getLaunchIntentForPackage("com.package.address"); 
    startActivity(i); 

Ma se quello non esiste, posso poi farlo andare al Play Store

risposta

9

È possibile utilizzare una delle seguenti funzioni per verificare se l'applicazione è installato o meno.

Funzione 1

private boolean isAppInstalled(String packageName) { 
    PackageManager pm = getPackageManager(); 
    boolean installed = false; 
    try { 
     pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES); 
     installed = true; 
    } catch (PackageManager.NameNotFoundException e) { 
     installed = false; 
    } 
    return installed; 
} 

O Funzione 2

public boolean isAppInstalled(String targetPackage){ 
    List<ApplicationInfo> packages; 
    PackageManager pm = getPackageManager();   
    packages = pm.getInstalledApplications(0); 
    for (ApplicationInfo packageInfo : packages) { 
     if(packageInfo.packageName.equals(targetPackage)) return true; 
    }   
    return false; 
} 

USO

if(isAppInstalled("com.package.name")){ 
    //Your Code 
} 
else{ 
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.package.name"))); 
} 
+0

dove avete messo packageName, vorrei che essere rep cucita con com.package.adress? – j1mmyg88

+0

Sì. 'com.package.name' dovrebbe essere sostituito da' com.package.address' –

+0

grazie mille, questo ha funzionato magnificamente. – j1mmyg88