2013-09-12 2 views
0

Как проверить, установлено ли приложение с помощью getPackageManager? Я понятия не имею. Благодарю. Android.Как проверить, установлено ли приложение

Intent intent = new Intent(); 
    intent.setClassName("PACKAGE_NAME", "PACKAGE_NAME.TARGET_ACTIVITY"); 
    if (isCallable(context, intent)) { 
     // Attach any extras, start or start with callback 
    } else { 
     // Respond to the application or activity not being available 
    } 
+0

Вы спрашиваете, что должно быть тело метод 'isCallable'? – JRomero

+0

Этот вопрос был [задан вчера] (http://stackoverflow.com/questions/18752202/check-if-application-is-installed-android/18752247#18752247) –

ответ

0
protected boolean isAppInstalled(String packageName) { 
     Intent mIntent = getPackageManager().getLaunchIntentForPackage(PACKAGE_NAME); 
     if (mIntent != null) { 
      return true; 
     } 
     else { 
      return false; 
     } 
    } 
0

Вы можете получить список установленных приложений, используя приведенный ниже фрагмент кода

PackageManager packageManager = getPackageManager(); 
    List<ApplicationInfo> list = packageManager.getInstalledApplications(PackageManager.GET_META_DATA) 

Теперь вы можете получить имя пакета для каждого установленного приложения, а затем может выполнить проверку имени пакета

ApplicationInfo data = appsList.get(position); 
String packageName = data.packageName; 

заказ другой пример How to Get List of Installed Apps in Android

0

Я думаю, что queryIntentActivities более уместен, так как у вас есть целевая деятельность, определенная в ваших намерениях. Если возврат списка равен .size() == 0. Тогда можно с уверенностью сказать, что он недоступен.

protected boolean isCallable(Context context, Intent intent) { 
    List<ResolveInfo> activities = context.getPackageManager().queryIntentActivities(intent, 0); 
    return activities.size() > 0 ? true : false; 
} 
0

Попробуйте это:

private boolean appInstalledorNot(String packageName) { 
PackageManager pm = getPackageManager(); 
boolean app_installed = false; 
try { 
    pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES); 
    app_installed = true; 
} catch (PackageManager.NameNotFoundException e) { 
    app_installed = false; 
} 
return app_installed; 
} 
Смежные вопросы