2019独角兽企业重金招聘Python工程师标准>>>

主要通过PackageManager中的方法

代码:

public class InstallApps extends ListActivity {

HashMap<String, String[]> map=new HashMap<String, String[]>();
    List<String> packagelist=new ArrayList<String>();
    List<String> systemApp=new ArrayList<String>();
    protected void onCreate(android.os.Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        PackageManager pm=getPackageManager();
      //List<PackageInfo> mPackageinfo=  pm.getInstalledPackages(PackageManager.GET_PERMISSIONS);
       Intent query=new Intent(Intent.ACTION_MAIN);
       query.addCategory("android.intent.category.LAUNCHER");
        List<ResolveInfo> resolves= pm.queryIntentActivities(query, PackageManager.GET_ACTIVITIES);
       for (int i = 0; i < resolves.size(); i++) {
          ResolveInfo info= resolves.get(i);

/ /判断是否为系统级应用
         if((info.activityInfo.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)<=0){
             /*安装的应用*/
             String packagename=info.loadLabel(pm).toString();    
            String[] permission;
            try {
                permission = pm.getPackageInfo(info.activityInfo.packageName, PackageManager.GET_PERMISSIONS).requestedPermissions;//获取权限列表
                packagelist.add(packagename);
                map.put(packagename, permission);
          } catch (NameNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
           
          } else{
              /*系统应用*/
              String packagename=info.loadLabel(pm).toString();
              String[] permission;
            try {
                permission = pm.getPackageInfo(info.activityInfo.packageName, PackageManager.GET_PERMISSIONS).requestedPermissions;//获取权限列表
                systemApp.add(packagename);
                map.put(packagename, permission);
             } catch (NameNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
             }
        
             
          }
       
    }
    /*  判断是否属于系统应用
      for (int i = 0; i < mPackageinfo.size(); i++) {
       PackageInfo info=mPackageinfo.get(i);
       if((info.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)<=0){
           String packagename=info.applicationInfo.loadLabel(pm).toString();    
          String[] permission= info.requestedPermissions;
          packagelist.add(packagename);
          map.put(packagename, permission);
        } else{
            String packagename=info.applicationInfo.loadLabel(pm).toString();
            String[] permission= info.requestedPermissions;
             systemApp.add(packagename);
            map.put(packagename, permission);
           
        }
    }*/
      packagelist.addAll(systemApp);
   
      getListView().setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, packagelist));
      getListView().setOnItemClickListener(new OnItemClickListener() {

@Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
            // TODO Auto-generated method stub
            String[]permission=map.get(packagelist.get(position));
            StringBuilder sb=new StringBuilder();
            for (int i = 0; i < permission.length; i++) {
              sb.append("权限"+permission[i]+"\n");
            }
            Toast.makeText(getApplicationContext(), sb,Toast.LENGTH_LONG ).show();
           
        }
       });
       
       
    };

}

转载于:https://my.oschina.net/zhuzihasablog/blog/107694

Android获取系统应用及安装应用的权限列表相关推荐

  1. android读取应用列表权限,Android获取系统应用及安装应用的权限列表

    主要通过PackageManager中的方法 代码: public class InstallApps extends ListActivity { HashMap map=new HashMap() ...

  2. 获取系统中已经安装的文字输入法

    //获取系统中已经安装的文字输入法InputLanguageCollection MyInputs = InputLanguage.InstalledInputLanguages;//获取当前输入法信 ...

  3. android 获取系统当前时间

    android 获取系统当前时间 来源 1 2 3 完事 来源 @听着music睡 ---- 关于安卓开始实现最简单地获取系统时间 @Android学院 ---- Android获取当前系统日期和时间 ...

  4. android 获取系统的壁纸

    android 获取系统的壁纸 获取当前系统的壁纸: WallpaperManager wallpaperManager = WallpaperManager.getInstance(context) ...

  5. java怎么获取手机权限,Android 获取手机全部应用包名以及权限

    Android 获取手机所有应用包名以及权限 package gongzibai.co.cc; import java.util.List; import android.app.Activity; ...

  6. Android 获取系统或SDCARD剩余空间信息

    android.os下的StatFs类主要用来获取文件系统的状态,能够获取sd卡的大小和剩余空间,获取系统内部空间也就是/system的大小和剩余空间等等. 看下读取sd卡的: void readSD ...

  7. android 区分系统应用,Android区分系统应用和安装应用

    获取全部包信息: /** * * 获取系统中的全部包信息 * * @param context 应用上下文 * */ privatevoidgetPackageInfos(Context contex ...

  8. Android 获取系统或SDCARD剩余空间信息(转)

    android.os下的StatFs类主要用来获取文件系统的状态,能够获取sd卡的大小和剩余空间,获取系统内部空间也就是/system的大小和剩余空间等等.       看下读取sd卡的: Java代 ...

  9. Android获取系统相册图片选中地址,获取手机中的所有图片地址自定义相册

    一.获取手机中的值 1.首先在使用读写sd卡权限 2.获取手机中的所有图片: 注意代码中的getGalleryPhotos(getContentResolver()) 方法获取所有地址 获取所有图片地 ...

最新文章

  1. MERGE INTO 解决大数据量 10w 更新缓慢的问题
  2. uml图工具_UML建模工具更新情况(二)
  3. 鸿蒙os终于开始大升级,华为鸿蒙OS终于要迎来大规模推送升级了
  4. Spring mvc DispatchServlet 实现机制
  5. Appium移动自动化配置-ios安卓
  6. matlab将矩阵提取,matlab – 从现有矩阵中提取矩阵
  7. MySQL 为什么用索引,为什么是 B+树,怎么用索引
  8. Arthas 3.1.2 版本发布 | 增加 logger/heapdump/vmoption 命令
  9. HOG特征中的三线插值法
  10. 我是一个CPU:这个世界慢!死!了!
  11. PHP 与 Perl 语言对比
  12. 袋鼠云数智之旅·上海站|探索“十四五”智慧校园新图景
  13. 【Get深一度】矩形窗/bartlett/Blackman/hamming/Hanning/kaiser -相控阵雷达原理
  14. Apache + Tomcat + JK 集群
  15. 图像形状特征(五)--自由式变形模板
  16. 练习:三子棋(python 列表list“全局变量”特性、插值字符串格式化、set 元素不重复特性)
  17. mybatis(一)MyBatis Generator
  18. 网易有道词典总是提示网络连接失败--解决办法
  19. Android系统自定义关机充电图标
  20. 学生成绩管理系统数据库设计--MySQLSQL Server

热门文章

  1. 第三次软工作业——实现最大字段和算法并进行判定条件覆盖
  2. @JsonIgnoreProperties转换实体时忽略json中不存在的字段
  3. mysqldump: command not found
  4. ssh代理登录内网服务器
  5. python关键字参数
  6. hdu 4640(状压dp)
  7. IIS中架设二级域名网站
  8. SSO CAS 探究
  9. 咖友:打个雷啊 | 今日头条VS腾讯新闻:让马化腾也坐不住的新闻资讯行业未来之争...
  10. 线下活动 | 揭秘大数据背后的京东虚拟平台(免费报名中)