2012-02-22 129 views
1

我正在尝试为android开发应用程序启动器应用程序。我刚刚开始,但我有一个问题在这里:如何获得Android中所有安装的应用程序的列表?获取已安装应用程序的列表android

+3

完全重复:http://stackoverflow.com/questions/2695746/how -to-get-a-list-of-installed-android-applications-pick-one-to-run – SERPRO 2012-02-22 11:15:54

回答

2

在您的活动中使用这些方法来获取已安装应用程序的列表。

private ArrayList<PackageInfoStruct> getPackages() { 
     ArrayList<PackageInfoStruct> apps = getInstalledApps(false); 
     final int max = apps.size(); 
     for (int i=0; i < max; i++) { 
      apps.get(i); 
     } 
     return apps; 
    } 

    private ArrayList<PackageInfoStruct> getInstalledApps(boolean getSysPackages) { 

     List<PackageInfo> packs = getPackageManager().getInstalledPackages(0); 
     try{ 
      app_labels = new String[packs.size()]; 
     }catch(Exception e){ 
      Toast.makeText(getApplicationContext(),e.getMessage(),Toast.LENGTH_SHORT).show(); 
     } 
     for(int i=0;i < packs.size();i++) { 
      PackageInfo p = packs.get(i); 
      if ((!getSysPackages) && (p.versionName == null)) { 
       continue ; 
      } 
      PackageInfoStruct newInfo = new PackageInfoStruct(); 
      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); 

      app_labels[i] = newInfo.appname; 
     } 
     return res; 
    } 
+0

这对我不起作用,可以提供一些链接或任何完整的示例。 – 2012-09-19 13:18:51

+0

什么是'PackageInfoStruct'? – msbg 2013-10-08 19:22:01

+1

它只是一个对象,它包含应用程序的详细信息,如应用程序名称,包装,版本等。 – Rakshi 2013-10-09 08:43:31

1

我建议您在发布问题之前至少使用搜索计算器。

通过@karan

From a duplicate question :是代码来获取安装在Android活动/应用程序的列表:

final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); 
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
final List pkgAppsList = context.getPackageManager().queryIntentActivities(mainIntent, 0); 
相关问题