Android获取手机中所有应用程序和第三方程序

来源:互联网 发布:python 远程执行命令 编辑:程序博客网 时间:2024/05/16 09:49

1、  编写一个判断是否为第三方程序的方法(可以查看“设置”——“应用程序”——“管理应用程序”的源代码,抄下这个方法):

    /**

     * 判断某个应用程序是不是三方的应用程序

     */

    publicboolean filterApp(ApplicationInfoinfo) {

        if ((info.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) {

            returntrue;

        } elseif ((info.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {

            returntrue;

        }

        returnfalse;

    }

2、 下面方法就可以获得所以应用程序啦,其中自定义的App为应用程序的实体类,定义了

packName(包名)、appName(程序名)、icon(程序图标)、isSysApp(是否为系统程序,要想获得系统程序或第三方程序,只要通过这个属性就可以啦)这四个属性。

/**

     * 得到所有三方应用

     */

    publicList<App>getAllTirApp(){

       List<App> apps=new ArrayList<App>();

      // PackageManager.GET_UNINSTALLED_PACKAGES为获取所有应用,包括那些卸载了,但是数据还没删除干净的程序

  PackageManagerpackageManager=context.getPackageManager();

       packageManager.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);

        List<ApplicationInfo>lisappinfo=   packageManager.getInstalledApplications(PackageManager.GET_SHARED_LIBRARY_FILES);

       for(ApplicationInfo app : lisappinfo){

           if(filterApp(app)){

              Appapplication=new App(); application.setAppName(app.loadLabel(packageManager).toString());

              application.setIcon(app.loadIcon(packageManager));

              application.setPackName(app.packageName);

              application.setSysApp(!filterApp(app));

              apps.add(application);

           }

       }

       return apps;

}

 

原创粉丝点击