Android:获得应用拥有的权限

Log输出某APP拥有的权限

PackageManager pm = context.getPackageManager();
PackageInfo pi;
try {
    // 参数2必须是PackageManager.GET_PERMISSIONS
    pi = pm.getPackageInfo(packageName, PackageManager.GET_PERMISSIONS);
    String[] permissions = pi.requestedPermissions;
    if(permissions != null){
        for(String str : permissions){
            Log.i(TAG, str);
        }
    }
} catch (NameNotFoundException e) {
    e.printStackTrace();
}

上述代码中,packageName是目标APP的包名。

以List集合返回某APP拥有的权限信息

基于上述代码,修改为如下方式:

List<PermissionInfo> permissionInfoList = new ArrayList<PermissionInfo>();
PackageManager pm = context.getPackageManager();
PackageInfo pi;
try {
    pi = pm.getPackageInfo(packageName, PackageManager.GET_PERMISSIONS);
    String[] permissions = pi.requestedPermissions;
    if(permissions != null){
        for(String str : permissions){
            PermissionInfo permissionInfo = context.getPackageManager().getPermissionInfo(str, 0);
            permissionInfoList.add(permissionInfo);
        }
    }
} catch (NameNotFoundException e) {
    e.printStackTrace();
}
return permissionInfoList;

基于上述代码,便可获得更为丰富的权限信息。

具体信息可参考该页面内的getAppPermissionListshowAppPermissionList方法。

时间: 2024-08-10 21:30:29

Android:获得应用拥有的权限的相关文章

Android之——申请应用系统管理员权限

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47010177  把应用程序升级为拥有系统管理员权限.写一个广播接收者,给该广播接收者去申请系统管理员的权限,让操作系统给广播接收者授权.(激活系统的授权组件).在此,本人主要通过申请应用系统管理员权限,锁屏,设置密码,恢复出厂设置几个方面来简单介绍Android中如何给一个应用申请系统管理员的权限操作.其中,这些主要的功能都是通过Android提供的一个类来完成的,这个类就是De

Android : M 与 N 的权限管理

从 M 开始,permission 分为 Normal permission Runtime permission Normal permission 直接在 manifest 里声明就可以用了. android.permission.ACCESS_LOCATION_EXTRA_COMMANDS android.permission.ACCESS_NETWORK_STATE android.permission.ACCESS_NOTIFICATION_POLICY android.permiss

android apk的签名和权限问题

一. android apk的签名问题(http://blog.csdn.net/lyq8479/article/details/6401093) 1.为什么要给Android应用程序签名?      如果只能用一句简单的话语来回答这个问题的话,我会说:“这是Android系统所要求的”.      Android系统要求每一个Android应用程序必须要经过数字签名才能够安装到系统中,也就是说如果一个Android应用程序没有经过数字签名,是没有办法安装到系统中的!Android通过数字签名来

[转载]如何使Android应用程序获取系统权限来修改系统时间

在 android 的API中有提供 SystemClock.setCurrentTimeMillis()函数来修改系统时间,可惜无论你怎么调用这个函数都是没用的,无论模拟器还是真机,在logcat中总会得到"Unable to open alarm driver: Permission denied ".这个函数需要root权限或者运行与系统进程中才可以用. 本来以为就没有办法在应用程序这一层改系统时间了,后来在网上搜了好久,知道这个目的还是可以达到的. 第一个方法简单点,不过需要在

Android AndroidManifest 清单文件以及权限详解

每个Android应用都需要一个名为AndroidManifest.xml的程序清单文件,这个清单文件名是固定的并且放在每个Android应用的根目录下.它定义了该应用对于Android系统来说一些非常重要的信息.Android系统需要这些信息才能正常运行该应用.Android程序清单文件主要具有下面作用: ·        它给应用程序Java包命名,这个包名作为应用程序唯一标识符. ·        它描述了应用程序中的每个程序组件-Activity,Service,Broadcast Re

Android AndroidManifest 清单文件以及权限详解【转自:http://my.oschina.net/yuanxulong/blog/366753】

每个Android应用都需要一个名为AndroidManifest.xml的程序清单文件,这个清单文件名是固定的并且放在每个Android应用的 根目录下.它定义了该应用对于Android系统来说一些非常重要的信息.Android系统需要这些信息才能正常运行该应用.Android程序清单文 件主要具有下面作用: ·        它给应用程序Java包命名,这个包名作为应用程序唯一标识符. ·        它描述了应用程序中的每个程序组件—Activity,Service,Broadcast

无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)

1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.demo1" /> 上面targetPackage指定的包要和应用的package相同. (2)在清单文件中ap

拥有root权限提权让普通用户具有root权限

一.实践.     (1).第一种是最常见的sudo这个命令.这个命令可以让普通用户拥有管理权限,/etc/sudoers是sudo命令的配置文件.     在配置文件中它的基本格式为                user MACHINE=command     user :授权的用户名,也可以授权组名"%组名"的格式. machine : 这个是主机名称 command : 要授权的命令,必须填写命令的完整路径.      在配置文件中加入tom ALL=ALL 就可以让tom这个

Android 6.0 运行时权限管理最佳实践

Android 6.0 运行时权限管理最佳实践 版权声明:转载必须注明本文转自严振杰的博客: http://blog.yanzhenjie.com 这是一篇迟来的博客,Android M已经发布一年多了(6.0的变化),在Android M中权限系统被重新设计,发生了颠覆性的变化,很多人把握不好这个变化,一是对这个权限策略和套路还没有摸透,二是没有一个很好的实践来支撑,在我的技术开发群里很多人问我关于权限的问题,往往我都没有直接回答,因为这个问题不是一两句说的清楚的,这几点是今天我写这篇博客的原