2013-10-04 2 views
2

Мне нужно получить список установленных приложений с устройства Android. Я могу получить список. Но есть некоторые проблемы с получением имени пускового устройства (которое определено в теге активности запуска в манифесте не в теге приложения) приложений из объекта PackageInfo. Как получить имя запуска установленных приложений из объекта PackageInfo.Launcher Название установленных приложений

Я попытался таким образом

packageInfo.applicationInfo.loadLabel(packageManager) 

Но это не дает пусковое имя. Он дает строку тега приложения.

ответ

0

Если вы хотите, чтобы приложения обрабатывали панель запуска, вы можете искать приложения, которые обрабатывают фильтр намерения Intent.CATEGORY_HOME с PackageManager.

+0

Я могу получить список applications.But моей проблема заключается, чтобы получить имя пусковой применении от объекта PackageInfo. –

2

Используйте следующий код, чтобы получить пусковую активность всех пакетов:

class PInfo { 
    private String appname = ""; 
    private String pname = ""; 
    private String versionName = ""; 
    private int versionCode = 0; 
    private Drawable icon; 
    private void prettyPrint() { 
     Log.v(appname + "\t" + pname + "\t" + versionName + "\t" + versionCode); 
    } 
} 

private ArrayList<PInfo> getPackages() { 
    ArrayList<PInfo> apps = getInstalledApps(false); /* false = no system packages */ 
    final int max = apps.size(); 
    for (int i=0; i<max; i++) { 
     apps.get(i).prettyPrint(); 
    } 
    return apps; 
} 

private ArrayList<PInfo> getInstalledApps(boolean getSysPackages) { 
    ArrayList<PInfo> res = new ArrayList<PInfo>();   
    List<PackageInfo> packs = getPackageManager().getInstalledPackages(0); 
    for(int i=0;i<packs.size();i++) { 
     PackageInfo p = packs.get(i); 
     if ((!getSysPackages) && (p.versionName == null)) { 
      continue ; 
     } 
     PInfo newInfo = new PInfo(); 
     newInfo.appname = p.applicationInfo.loadLabel(getPackageManager()).toString(); 
     newInfo.pname = p.packageName; 
     newInfo.versionName = p.versionName; 
     newInfo.versionCode = p.versionCode; 
     newInfo.icon = p.applicationInfo.loadIcon(getPackageManager()); 
     res.add(newInfo); 
    } 
    return res; 
} 
+0

Я получаю список с Список allPackagesList = packageManager.getInstalledPackages (PackageManager.GET_PERMISSIONS); –

+0

Я хочу получить имя приложения из объекта PackageInfo –

+1

Я могу получить список приложений. Но проблема заключается в том, чтобы получить имя запуска приложения из объекта PackageInfo. –

Смежные вопросы