2010-12-14 20 views
8

Android Market'in buAndroid Market'in veya Google Apps'ın paket adı nedir?

 /* 
    * Test for existence of Android Market 
    */ 
    boolean androidMarketExists = false; 
    try{ 
     ApplicationInfo info = getPackageManager() 
          .getApplicationInfo("com.google.process.gapps", 0); 
     //application exists 
     androidMarketExists = true; 
    } catch(PackageManager.NameNotFoundException e){ 
     //application doesn't exist 
     androidMarketExists = false; 
    } 

gibi kurulu olup olmadığını kontrol etmem gerekiyor. Ama com.google.process.gapps'in android market içeren bir paket olup olmadığını bilmiyorum.

cevap

19

pazar kolları kim sorgulayarak ... O (benim Galaxy S) com.android.vending, ve burada öğrenmek için daha iyi bir yol.

Intent intent = new Intent(); 
    intent.setAction(Intent.ACTION_VIEW); 
    intent.setData(Uri.parse("market://search?q=foo")); 
    PackageManager pm = getPackageManager(); 
    List<ResolveInfo> list = pm.queryIntentActivities(intent, 0); 

Listede en az bir giriş varsa, Market var.

+0

Ben gerçek paketine foo değiştirmek gerekiyor? – jax

+5

Bu konuda kesinlikle hemfikir değilim ... telefonda, Google ile hiçbir ilişkisi olmayan diğer pazar uygulamaları olabilir ve bunlar da pazar: // niyetleri ile başa çıkabilir. Özellikle Google'ın pazar uygulamasını kontrol etmeniz gerekiyorsa, paket yöneticisinde com.android.vending öğesini bir şekilde kontrol etmeniz gerekebilir. – greg7gkb

1

Kodunuz doğru hemen altındaki modifiye küçük değişiklikler

Kontrol dışarı kod ihtiyacı olan:

boolean androidMarketExists = false; 
    try{ 
     ApplicationInfo info = getPackageManager().getApplicationInfo("com.android.vending", 0); 
     if(info.packageName.equals("com.android.vending")) 
      androidMarketExists = true; 
     else 
      androidMarketExists = false; 
    } catch(PackageManager.NameNotFoundException e){ 
     //application doesn't exist 
     androidMarketExists = false; 
    } 
    if(!androidMarketExists){ 
     Log.d(LOG_TAG, "No Android Market"); 
     finish(); 
    } 
    else{ 
     Log.d(LOG_TAG, "Android Market Installed"); 
    } 
İlgili konular