Android获取系统应用及安装应用的权限列表
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获取系统应用及安装应用的权限列表相关推荐
- android读取应用列表权限,Android获取系统应用及安装应用的权限列表
主要通过PackageManager中的方法 代码: public class InstallApps extends ListActivity { HashMap map=new HashMap() ...
- 获取系统中已经安装的文字输入法
//获取系统中已经安装的文字输入法InputLanguageCollection MyInputs = InputLanguage.InstalledInputLanguages;//获取当前输入法信 ...
- android 获取系统当前时间
android 获取系统当前时间 来源 1 2 3 完事 来源 @听着music睡 ---- 关于安卓开始实现最简单地获取系统时间 @Android学院 ---- Android获取当前系统日期和时间 ...
- android 获取系统的壁纸
android 获取系统的壁纸 获取当前系统的壁纸: WallpaperManager wallpaperManager = WallpaperManager.getInstance(context) ...
- java怎么获取手机权限,Android 获取手机全部应用包名以及权限
Android 获取手机所有应用包名以及权限 package gongzibai.co.cc; import java.util.List; import android.app.Activity; ...
- Android 获取系统或SDCARD剩余空间信息
android.os下的StatFs类主要用来获取文件系统的状态,能够获取sd卡的大小和剩余空间,获取系统内部空间也就是/system的大小和剩余空间等等. 看下读取sd卡的: void readSD ...
- android 区分系统应用,Android区分系统应用和安装应用
获取全部包信息: /** * * 获取系统中的全部包信息 * * @param context 应用上下文 * */ privatevoidgetPackageInfos(Context contex ...
- Android 获取系统或SDCARD剩余空间信息(转)
android.os下的StatFs类主要用来获取文件系统的状态,能够获取sd卡的大小和剩余空间,获取系统内部空间也就是/system的大小和剩余空间等等. 看下读取sd卡的: Java代 ...
- Android获取系统相册图片选中地址,获取手机中的所有图片地址自定义相册
一.获取手机中的值 1.首先在使用读写sd卡权限 2.获取手机中的所有图片: 注意代码中的getGalleryPhotos(getContentResolver()) 方法获取所有地址 获取所有图片地 ...
最新文章
- MERGE INTO 解决大数据量 10w 更新缓慢的问题
- uml图工具_UML建模工具更新情况(二)
- 鸿蒙os终于开始大升级,华为鸿蒙OS终于要迎来大规模推送升级了
- Spring mvc DispatchServlet 实现机制
- Appium移动自动化配置-ios安卓
- matlab将矩阵提取,matlab – 从现有矩阵中提取矩阵
- MySQL 为什么用索引,为什么是 B+树,怎么用索引
- Arthas 3.1.2 版本发布 | 增加 logger/heapdump/vmoption 命令
- HOG特征中的三线插值法
- 我是一个CPU:这个世界慢!死!了!
- PHP 与 Perl 语言对比
- 袋鼠云数智之旅·上海站|探索“十四五”智慧校园新图景
- 【Get深一度】矩形窗/bartlett/Blackman/hamming/Hanning/kaiser -相控阵雷达原理
- Apache + Tomcat + JK 集群
- 图像形状特征(五)--自由式变形模板
- 练习:三子棋(python 列表list“全局变量”特性、插值字符串格式化、set 元素不重复特性)
- mybatis(一)MyBatis Generator
- 网易有道词典总是提示网络连接失败--解决办法
- Android系统自定义关机充电图标
- 学生成绩管理系统数据库设计--MySQLSQL Server