Android获取系统应用及安装应用的权限列表
来源:互联网 发布:汉口办公软件培训班 编辑:程序博客网 时间:2024/06/06 09:04
主要通过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(); } }); };}
原文:http://my.oschina.net/zhuzihasablog/blog/107694
0 0
- Android获取系统应用及安装应用的权限列表
- Android获取系统应用及安装应用的权限列表
- android 应用获取系统权限
- android 应用获取系统权限
- android 获取系统已经安装的应用
- 获取系统已安装应用列表
- Android学习之获取系统应用信息列表的实现
- Android实现获取系统应用列表
- Android实现获取系统应用列表
- Android实现获取系统应用列表
- Android实现获取系统应用列表
- Android实现获取系统应用列表
- Android实现获取系统应用列表
- Android实现获取系统应用列表
- Android实现获取系统应用列表
- android应用怎么获取系统权限
- Android 中获取已经安装的应用列表
- Android---获取已安装应用列表
- POJ 3225 Roadblocks
- Arcgis10.0安装遇到错误1935
- 字符串反串问题
- 运算符
- 基于 Struts2 标签的 BigPipe 技术实现
- Android获取系统应用及安装应用的权限列表
- 算法及算法设计要求
- android <application> 开发文档翻译
- POJ 2019 Cornfields 二维RMQ
- INDEX+SMALL+IF+ROW函数组合使用解析
- POJ 1850/ 1496 组合数学
- 掌握算法的渐近时间复杂度和空间复杂度的意义与作用
- 解决myeclipse10编辑jsp经常卡死的问题
- Your content must have a ListView whose id attribute is 'android.R.id.list'