正在查看: 天上人间 v3.1 应用的 PermissionDelegateImplV23.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: 天上人间 v3.1 应用的 PermissionDelegateImplV23.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.hjq.permissions;
import android.app.Activity;
import android.app.NotificationManager;
import android.content.Context;
import android.content.Intent;
import android.os.PowerManager;
import android.provider.Settings;
class PermissionDelegateImplV23 extends PermissionDelegateImplV21 {
PermissionDelegateImplV23() {
}
public boolean isGrantedPermission(Context context, String str) {
if (Permission.getPermissionFromAndroidVersion(str) > AndroidVersion.getAndroidVersionCode()) {
if (PermissionUtils.equalsPermission(str, "android.permission.READ_MEDIA_VISUAL_USER_SELECTED")) {
return true;
}
if (PermissionUtils.equalsPermission(str, "android.permission.POST_NOTIFICATIONS")) {
return super.isGrantedPermission(context, str);
}
if (PermissionUtils.equalsPermission(str, "android.permission.NEARBY_WIFI_DEVICES")) {
return PermissionUtils.checkSelfPermission(context, "android.permission.ACCESS_FINE_LOCATION");
}
if (PermissionUtils.equalsPermission(str, "android.permission.BODY_SENSORS_BACKGROUND")) {
return PermissionUtils.checkSelfPermission(context, "android.permission.BODY_SENSORS");
}
if (PermissionUtils.equalsPermission(str, "android.permission.READ_MEDIA_IMAGES") || PermissionUtils.equalsPermission(str, "android.permission.READ_MEDIA_VIDEO") || PermissionUtils.equalsPermission(str, "android.permission.READ_MEDIA_AUDIO")) {
return PermissionUtils.checkSelfPermission(context, "android.permission.READ_EXTERNAL_STORAGE");
}
if (PermissionUtils.equalsPermission(str, "android.permission.BLUETOOTH_SCAN")) {
return PermissionUtils.checkSelfPermission(context, "android.permission.ACCESS_FINE_LOCATION");
}
if (PermissionUtils.equalsPermission(str, "android.permission.BLUETOOTH_CONNECT") || PermissionUtils.equalsPermission(str, "android.permission.BLUETOOTH_ADVERTISE")) {
return true;
}
if (PermissionUtils.equalsPermission(str, "android.permission.MANAGE_EXTERNAL_STORAGE")) {
return PermissionUtils.checkSelfPermission(context, "android.permission.READ_EXTERNAL_STORAGE") && PermissionUtils.checkSelfPermission(context, "android.permission.WRITE_EXTERNAL_STORAGE");
}
if (PermissionUtils.equalsPermission(str, "android.permission.ACCESS_BACKGROUND_LOCATION")) {
return PermissionUtils.checkSelfPermission(context, "android.permission.ACCESS_FINE_LOCATION");
}
if (PermissionUtils.equalsPermission(str, "android.permission.ACTIVITY_RECOGNITION")) {
return true;
}
if (PermissionUtils.equalsPermission(str, "android.permission.ACCESS_MEDIA_LOCATION")) {
return PermissionUtils.checkSelfPermission(context, "android.permission.READ_EXTERNAL_STORAGE");
}
if (PermissionUtils.equalsPermission(str, "android.permission.ACCEPT_HANDOVER") || PermissionUtils.equalsPermission(str, "android.permission.ANSWER_PHONE_CALLS")) {
return true;
}
if (PermissionUtils.equalsPermission(str, "android.permission.READ_PHONE_NUMBERS")) {
return PermissionUtils.checkSelfPermission(context, "android.permission.READ_PHONE_STATE");
}
}
if (PermissionUtils.equalsPermission(str, "com.android.permission.GET_INSTALLED_APPS") || PermissionUtils.equalsPermission(str, "android.permission.POST_NOTIFICATIONS")) {
return super.isGrantedPermission(context, str);
}
if (Permission.isSpecialPermission(str)) {
if (PermissionUtils.equalsPermission(str, "android.permission.WRITE_SETTINGS")) {
return isGrantedSettingPermission(context);
}
if (PermissionUtils.equalsPermission(str, "android.permission.ACCESS_NOTIFICATION_POLICY")) {
return isGrantedNotDisturbPermission(context);
}
if (PermissionUtils.equalsPermission(str, "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS")) {
return isGrantedIgnoreBatteryPermission(context);
}
return super.isGrantedPermission(context, str);
}
return PermissionUtils.checkSelfPermission(context, str);
}
public boolean isDoNotAskAgainPermission(Activity activity, String str) {
if (Permission.getPermissionFromAndroidVersion(str) > AndroidVersion.getAndroidVersionCode()) {
if (PermissionUtils.equalsPermission(str, "android.permission.READ_MEDIA_VISUAL_USER_SELECTED")) {
return false;
}
if (PermissionUtils.equalsPermission(str, "android.permission.POST_NOTIFICATIONS")) {
return super.isDoNotAskAgainPermission(activity, str);
}
if (PermissionUtils.equalsPermission(str, "android.permission.NEARBY_WIFI_DEVICES")) {
return (PermissionUtils.checkSelfPermission(activity, "android.permission.ACCESS_FINE_LOCATION") || PermissionUtils.shouldShowRequestPermissionRationale(activity, "android.permission.ACCESS_FINE_LOCATION")) ? false : true;
}
if (PermissionUtils.equalsPermission(str, "android.permission.BODY_SENSORS_BACKGROUND")) {
return (PermissionUtils.checkSelfPermission(activity, "android.permission.BODY_SENSORS") || PermissionUtils.shouldShowRequestPermissionRationale(activity, "android.permission.BODY_SENSORS")) ? false : true;
}
if (PermissionUtils.equalsPermission(str, "android.permission.READ_MEDIA_IMAGES") || PermissionUtils.equalsPermission(str, "android.permission.READ_MEDIA_VIDEO") || PermissionUtils.equalsPermission(str, "android.permission.READ_MEDIA_AUDIO")) {
return (PermissionUtils.checkSelfPermission(activity, "android.permission.READ_EXTERNAL_STORAGE") || PermissionUtils.shouldShowRequestPermissionRationale(activity, "android.permission.READ_EXTERNAL_STORAGE")) ? false : true;
}
if (PermissionUtils.equalsPermission(str, "android.permission.BLUETOOTH_SCAN")) {
return (PermissionUtils.checkSelfPermission(activity, "android.permission.ACCESS_FINE_LOCATION") || PermissionUtils.shouldShowRequestPermissionRationale(activity, "android.permission.ACCESS_FINE_LOCATION")) ? false : true;
}
if (PermissionUtils.equalsPermission(str, "android.permission.BLUETOOTH_CONNECT") || PermissionUtils.equalsPermission(str, "android.permission.BLUETOOTH_ADVERTISE")) {
return false;
}
if (PermissionUtils.equalsPermission(str, "android.permission.ACCESS_BACKGROUND_LOCATION")) {
return (PermissionUtils.checkSelfPermission(activity, "android.permission.ACCESS_FINE_LOCATION") || PermissionUtils.shouldShowRequestPermissionRationale(activity, "android.permission.ACCESS_FINE_LOCATION")) ? false : true;
}
if (PermissionUtils.equalsPermission(str, "android.permission.ACTIVITY_RECOGNITION")) {
return false;
}
if (PermissionUtils.equalsPermission(str, "android.permission.ACCESS_MEDIA_LOCATION")) {
return (PermissionUtils.checkSelfPermission(activity, "android.permission.READ_EXTERNAL_STORAGE") || PermissionUtils.shouldShowRequestPermissionRationale(activity, "android.permission.READ_EXTERNAL_STORAGE")) ? false : true;
}
if (PermissionUtils.equalsPermission(str, "android.permission.ACCEPT_HANDOVER") || PermissionUtils.equalsPermission(str, "android.permission.ANSWER_PHONE_CALLS")) {
return false;
}
if (PermissionUtils.equalsPermission(str, "android.permission.READ_PHONE_NUMBERS")) {
return (PermissionUtils.checkSelfPermission(activity, "android.permission.READ_PHONE_STATE") || PermissionUtils.shouldShowRequestPermissionRationale(activity, "android.permission.READ_PHONE_STATE")) ? false : true;
}
}
if (PermissionUtils.equalsPermission(str, "com.android.permission.GET_INSTALLED_APPS") || PermissionUtils.equalsPermission(str, "android.permission.POST_NOTIFICATIONS")) {
return super.isDoNotAskAgainPermission(activity, str);
}
if (Permission.isSpecialPermission(str)) {
return false;
}
return (PermissionUtils.checkSelfPermission(activity, str) || PermissionUtils.shouldShowRequestPermissionRationale(activity, str)) ? false : true;
}
public Intent getPermissionIntent(Context context, String str) {
if (PermissionUtils.equalsPermission(str, "android.permission.WRITE_SETTINGS")) {
return getSettingPermissionIntent(context);
}
if (PermissionUtils.equalsPermission(str, "android.permission.ACCESS_NOTIFICATION_POLICY")) {
return getNotDisturbPermissionIntent(context);
}
if (PermissionUtils.equalsPermission(str, "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS")) {
return getIgnoreBatteryPermissionIntent(context);
}
return super.getPermissionIntent(context, str);
}
private static boolean isGrantedSettingPermission(Context context) {
if (AndroidVersion.isAndroid6()) {
return Settings.System.canWrite(context);
}
return true;
}
private static Intent getSettingPermissionIntent(Context context) {
Intent intent = new Intent("android.settings.action.MANAGE_WRITE_SETTINGS");
intent.setData(PermissionUtils.getPackageNameUri(context));
return !PermissionUtils.areActivityIntent(context, intent) ? PermissionIntentManager.getApplicationDetailsIntent(context) : intent;
}
private static boolean isGrantedNotDisturbPermission(Context context) {
return ((NotificationManager) context.getSystemService(NotificationManager.class)).isNotificationPolicyAccessGranted();
}
private static Intent getNotDisturbPermissionIntent(Context context) {
Intent intent;
if (AndroidVersion.isAndroid10()) {
intent = new Intent("android.settings.NOTIFICATION_POLICY_ACCESS_DETAIL_SETTINGS");
intent.setData(PermissionUtils.getPackageNameUri(context));
if (PhoneRomUtils.isHarmonyOs() || PhoneRomUtils.isMagicOs()) {
intent = new Intent("android.settings.NOTIFICATION_POLICY_ACCESS_SETTINGS");
}
} else {
intent = new Intent("android.settings.NOTIFICATION_POLICY_ACCESS_SETTINGS");
}
return !PermissionUtils.areActivityIntent(context, intent) ? PermissionIntentManager.getApplicationDetailsIntent(context) : intent;
}
private static boolean isGrantedIgnoreBatteryPermission(Context context) {
return ((PowerManager) context.getSystemService(PowerManager.class)).isIgnoringBatteryOptimizations(context.getPackageName());
}
private static Intent getIgnoreBatteryPermissionIntent(Context context) {
Intent intent = new Intent("android.settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS");
intent.setData(PermissionUtils.getPackageNameUri(context));
if (!PermissionUtils.areActivityIntent(context, intent)) {
intent = new Intent("android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS");
}
return !PermissionUtils.areActivityIntent(context, intent) ? PermissionIntentManager.getApplicationDetailsIntent(context) : intent;
}
}