Android6.0之后推出动态申请权限,所有敏感权限默认都是没有开启的状态,需要动态添加权限的。但是项目中有些三方预置的apk需要默认将权限开启。
DefaultPermissionGrantPolicy.java是对预置应用默认权限管理类
/frameworks/base/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java
private void grantDefaultSystemHandlerPermissions(int userId) {
synchronized (mService.mPackages) {
String familyzonePkgStr = "包名";
PackageParser.Package familyzonePkg = getPackageLPr(familyzonePkgStr);
if(familyzonePkg != null){
grantRuntimePermissionsLPw(familyzonePkg, PHONE_PERMISSIONS, userId);
grantRuntimePermissionsLPw(familyzonePkg, STORAGE_PERMISSIONS, userId);
grantRuntimePermissionsLPw(familyzonePkg, LOCATION_PERMISSIONS, userId);
grantRuntimePermissionsLPw(familyzonePkg, CONTACTS_PERMISSIONS, userId);
}
或者
Set<String> SYSDLL_PERMISSIONS = new ArraySet<>();