Android Manifest 权限获取 - litonghui/TechBlog GitHub Wiki
用户在安装一个应用时候,会关注它使用了哪些权限?而这些权限一般在Android Manifest 会声明,如何获取声明这些权限?
1. 拆包获取Android Manifest 文件,获取uses-permission 声明的所有权限
2,通过PackageManager 获取 packageInfo 的 requestedPermissions 信息,例如:
public static List<PermissionInfo> getApkPermission(String apkFile,
PackageManager pm){
List<PermissionInfo> permissionInfos = new ArrayList<PermissionInfo>();
PackageInfo packageInfo = pm.getPackageArchiveInfo(apkFile, PackageManager.GET_PERMISSIONS);
String[] permissions = packageInfo.requestedPermissions;
for(String permName : permissions ){
try {
PermissionInfo permissionInfo = pm.getPermissionInfo(permName, 0);
permissionInfos.add(permissionInfo);
Log.v("lth",""+permName );
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
}
return permissionInfos;
}
V/lth: android.permission.GET_TASKS
V/lth: android.permission.CAMERA
V/lth: android.permission.READ_EXTERNAL_STORAGE
V/lth: android.permission.RECORD_AUDIO
V/lth: android.permission.MODIFY_AUDIO_SETTINGS
V/lth: android.permission.CALL_PHONE
V/lth: android.permission.RESTART_PACKAGES
V/lth: android.permission.READ_SYNC_SETTINGS
V/lth: android.permission.WRITE_SYNC_SETTINGS
V/lth: android.permission.AUTHENTICATE_ACCOUNTS
V/lth: android.permission.READ_LOGS
V/lth: android.permission.MOUNT_UNMOUNT_FILESYSTEMS