如何显示包名称中的应用程序名称列表

时间:2011-07-05 08:27:41

标签: android android-layout

我正在开发一个显示所有当前应用程序的应用程序。我正在获取应用程序包名称,这很好,但不是特定的应用程序名称我应该怎么做,我使用以下代码:

Context context = this.getApplicationContext();
ActivityManager mgr = (ActivityManager)context.getSystemService(ACTIVITY_SERVICE);

List<RunningTaskInfo> tasks = mgr.getRunningTasks(30);

List<ActivityManager.RunningAppProcessInfo> tasksP = mgr.getRunningAppProcesses();

int numOfTasks = tasks.size();

for(int i = 0; i < numOfTasks; i++){
    ActivityManager.RunningAppProcessInfo task = tasksP.get(i);

    PackageInfo myPInfo = null;
    try {
        myPInfo = getPackageManager().getPackageInfo(task.processName, 0);
    } catch (NameNotFoundException e) {
        e.printStackTrace();
    }   
    Toast.makeText(location.this,
            task.processName,
            Toast.LENGTH_LONG).show();
}

另请告诉我如何在复选框中显示这些应用程序名称,以便我可以杀死我想要的应用程序。

2 个答案:

答案 0 :(得分:4)

尝试使用此代码在手机中获取已安装的应用程序:

 final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
    mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
    final List<ResolveInfo> pkgAppsList = this.getPackageManager().queryIntentActivities( mainIntent, 0);

    List<String> componentList = new ArrayList<String>();

    for (ResolveInfo ri : pkgAppsList) {
        if (ri.activityInfo != null) {
            String app_name=ri.activityInfo.loadLabel(getPackageManager()).toString();
            Log.d("Apps Name", ""+ri.activityInfo.loadLabel(getPackageManager()).toString());
        }
    }
}

检查此链接以获取进一步参考:

Installed Application Details

答案 1 :(得分:2)

    Intent filter = new Intent(Intent.ACTION_MAIN);
    filter.addCategory(Intent.CATEGORY_LAUNCHER);
    Context context = getApplicationContext();

    PackageManager manager = getPackageManager();


  List<ResolveInfo> infos = getPackageManager().queryIntentActivities(filter,0);

    List<Intent> filters = new ArrayList<Intent>();
    filters.add(filter);

    ComponentName component = new ComponentName(context.getPackageName(), MainActivity.class.getName());
    List<ComponentName> activities = new ArrayList<ComponentName>();


    //ComponentName[] components = new ComponentName[] {new ComponentName("//com.neo.application", "com.neo.application.Application"), component};


      try {
        manager.getApplicationInfo(//PACKAGE_NAME);//just Ctrl+space it u'll get the package names.
    } catch (NameNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }