From 7df1704147ea28913ab7eca9d1bd4d8e3ea21b3d Mon Sep 17 00:00:00 2001 From: jia Date: Sat, 4 May 2024 14:47:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BB=E9=A1=B5=E8=AE=BE=E5=A4=87=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E7=82=B9=E5=87=BB=E6=B7=BB=E5=8A=A0=E6=97=A0=E6=9D=83?= =?UTF-8?q?=E9=99=90=E6=A0=A1=E9=AA=8C=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 4 +- .../com/ifish/fragment/DeviceFragment.java | 34 +++-- .../main/java/com/ifish/utils/AppUtil.java | 144 ++++++++++++++++++ 3 files changed, 165 insertions(+), 17 deletions(-) create mode 100644 iFish7/src/main/java/com/ifish/utils/AppUtil.java diff --git a/gradle.properties b/gradle.properties index 76f220158..1a54670d9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,5 +26,5 @@ android.enableJetifier=true android.useAndroidX=true android.useDeprecatedNdk=true -versionCode=40 -versionName=4.11.0 \ No newline at end of file +versionCode=41 +versionName=4.11.1 \ No newline at end of file diff --git a/iFish7/src/main/java/com/ifish/fragment/DeviceFragment.java b/iFish7/src/main/java/com/ifish/fragment/DeviceFragment.java index cc7a4f22c..49948686d 100644 --- a/iFish7/src/main/java/com/ifish/fragment/DeviceFragment.java +++ b/iFish7/src/main/java/com/ifish/fragment/DeviceFragment.java @@ -46,6 +46,7 @@ import android.widget.TextView; import android.widget.Toast; import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import com.bumptech.glide.Glide; @@ -102,6 +103,7 @@ import com.ifish.geewe.SettingListener; import com.ifish.permission.PermissionHelper; import com.ifish.utils.ActivityManager; import com.ifish.utils.AnimationUtil; +import com.ifish.utils.AppUtil; import com.ifish.utils.Commons; import com.ifish.utils.Commons.LoginSPKey; import com.ifish.utils.Commons.NetWork; @@ -280,24 +282,26 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi @Override public void onPermissionDeniedBySystem() { -// AlertDialog.Builder dialog = new AlertDialog.Builder(getContext()); -// dialog.setCancelable(false); + AlertDialog.Builder dialog = new AlertDialog.Builder(getContext()); + dialog.setCancelable(false); // dialog.setMessage("请到应用管理-爱鱼奇-应用权限页面开启权限后重新打开app"); -// dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() { -// @Override -// public void onClick( -// DialogInterface dialog, -// int which) { + dialog.setMessage("请到应用信息页面-权限管理-打开位置和相机权限"); + dialog.setPositiveButton("去开启", new DialogInterface.OnClickListener() { + @Override + public void onClick( + DialogInterface dialog, + int which) { // Intent mItent = new Intent(Settings.ACTION_SETTINGS); // startActivity(mItent); -// } -// }); -// dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() { -// @Override -// public void onClick(DialogInterface dialog, int which) { -// } -// }); -// dialog.show(); + AppUtil.toAuthority(requireActivity()); + } + }); + dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + } + }); + dialog.show(); } }); } diff --git a/iFish7/src/main/java/com/ifish/utils/AppUtil.java b/iFish7/src/main/java/com/ifish/utils/AppUtil.java new file mode 100644 index 000000000..d56620565 --- /dev/null +++ b/iFish7/src/main/java/com/ifish/utils/AppUtil.java @@ -0,0 +1,144 @@ +package com.ifish.utils; + +import android.content.ComponentName; +import android.content.Intent; +import android.net.Uri; +import android.os.Build; + +import androidx.activity.ComponentActivity; +import androidx.appcompat.app.AppCompatActivity; + +public class AppUtil { + + + + + public static boolean isBrandXiaoMi() { + return "xiaomi".equals( + Build.BRAND + ) || "xiaomi".equals(Build.MANUFACTURER); + } + + public static boolean isBrandHuawei() { + return "huawei".equals( + Build.BRAND + ) || "huawei".equals(Build.MANUFACTURER); + } + + public static boolean isBrandMeizu() { + return "meizu".equals( + Build.BRAND + ) || "meizu".equals(Build.MANUFACTURER) || "22c4185e".equals( + Build.BRAND + ); + } + + public static boolean isBrandOppo() { + return "oppo".equalsIgnoreCase(Build.BRAND) || "oppo".equals(Build.MANUFACTURER); + } + + public static boolean isBrandOnePlus() { + return "oneplus".equals( + Build.BRAND + ) || "oneplus".equals(Build.MANUFACTURER); + } + + public static boolean isBrandVivo() { + return "vivo".equals( + Build.BRAND + ) || "vivo".equals(Build.MANUFACTURER); + } + + + public static boolean isBrandHonor() { + return "honor".equals( + Build.BRAND + ) || "honor".equals(Build.MANUFACTURER); + } + + private static void toPermission(ComponentActivity context) { + Intent intent =new Intent(); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS") ; + intent.setData(Uri.fromParts("package", context.getPackageName(), null)); + context.startActivity(intent); + } + + private static void gotoOppoPermission(ComponentActivity context) { + try { + + Intent intent =new Intent(); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.putExtra("packageName", context.getPackageName()); + ComponentName comp =new ComponentName( + "com.color.safecenter", + "com.color.safecenter.permission.PermissionManagerActivity" + ); + intent.setComponent(comp); + context.startActivity(intent); + } catch ( Exception e) { + toPermission(context); + } + } + + private static void gotoMiuiPermission(ComponentActivity context) { + Intent i = new Intent("miui.intent.action.APP_PERM_EDITOR"); + ComponentName componentName =new ComponentName( + "com.miui.securitycenter", + "com.miui.permcenter.permissions.PermissionsEditorActivity" + ); + i.setComponent(componentName); + i.putExtra("extra_pkgname", context.getPackageName()); + try { + context.startActivity(i); + } catch ( Exception e) { + e.printStackTrace(); + toPermission(context); + } + } + + private static void gotoMeizuPermission(ComponentActivity context) { + Intent intent = new Intent("com.meizu.safe.security.SHOW_APPSEC"); + intent.addCategory(Intent.CATEGORY_DEFAULT); + intent.putExtra("packageName", context.getPackageName()); + try { + context.startActivity(intent); + } catch (java.lang.Exception e) { + e.printStackTrace(); + toPermission(context); + } + } + + private static void gotoHuaweiPermission(ComponentActivity context) { + try { + Intent intent = new Intent(); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + ComponentName comp =new ComponentName( + "com.huawei.systemmanager", + "com.huawei.permissionmanager.ui.MainActivity" + ) ;//华为权限管理 + intent.setComponent(comp) ; + context.startActivity(intent); + } catch ( java.lang.Exception e) { + e.printStackTrace(); + toPermission(context); + } + } + + public static void toAuthority(ComponentActivity context) { + + if (isBrandXiaoMi()){ + gotoMiuiPermission(context); + }else if (isBrandMeizu()){ + gotoMeizuPermission(context); + }else if (isBrandHuawei()){ + gotoHuaweiPermission(context); + }else if(isBrandOnePlus()){ + gotoOppoPermission(context); + }else if (isBrandOppo()){ + gotoOppoPermission(context); + }else { + toPermission(context); + } + } +}