有些APP启动时,会动态申请权限,Android10更新了权限申请的方式,如下图界面
这个界面是在packageinstaller模块中的,一般是放在package\apps\目录下;
特殊一点的也会放在源码下的platform\packages\apps\目录下。
然后找到packages\apps\PermissionController\src\com\android\permissioncontroller\permission\ui\handheld\ReviewPermissionsFragment.java这个文件
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Activity activity = getActivity();
if (activity == null) {
return;
}
PackageInfo packageInfo = getArguments().getParcelable(EXTRA_PACKAGE_INFO);
Log.d(LOG_TAG, "debug by 123 >>> packageInfo >>> " + packageInfo);
String mPkgName = packageInfo.packageName;
Log.d(LOG_TAG, "debug by 123 >>> mPkgName >>> " + mPkgName);
if (packageInfo == null) {
activity.finish();
return;
}
mAppPermissions = new AppPermissions(activity, packageInfo, false, true,
() -> getActivity().finish());
boolean reviewRequired = false;
for (AppPermissionGroup group : mAppPermissions.getPermissionGroups()) {
if (group.isReviewRequired() || (group.getBackgroundPermissions() != null
&& group.getBackgroundPermissions().isReviewRequired())) {
reviewRequired = true;
break;
}
}
if (!reviewRequired) {
// If the system called for a review but no groups are found, this means that all groups
// are restricted. Hence there is nothing to review and instantly continue.
confirmPermissionsReview();
executeCallback(true);
activity.finish();
}
//add by 123 begin
//这里添加代码,不想让哪个APP显示权限申请界面,就把对应的APP包名添加判断
if ("com.abcd.launcher".equals(mPkgName) || "com.efg.f.hi".equals(mPkgName)) {
confirmPermissionsReview();
executeCallback(true);
activity.finish();
}
//add by 123 end
}