主页设备列表点击添加无权限校验提示

This commit is contained in:
jia 2024-05-04 14:47:38 +08:00
parent ad3611e586
commit 7df1704147
3 changed files with 165 additions and 17 deletions

View File

@ -26,5 +26,5 @@ android.enableJetifier=true
android.useAndroidX=true android.useAndroidX=true
android.useDeprecatedNdk=true android.useDeprecatedNdk=true
versionCode=40 versionCode=41
versionName=4.11.0 versionName=4.11.1

View File

@ -46,6 +46,7 @@ import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat; import androidx.core.app.ActivityCompat;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
@ -102,6 +103,7 @@ import com.ifish.geewe.SettingListener;
import com.ifish.permission.PermissionHelper; import com.ifish.permission.PermissionHelper;
import com.ifish.utils.ActivityManager; import com.ifish.utils.ActivityManager;
import com.ifish.utils.AnimationUtil; import com.ifish.utils.AnimationUtil;
import com.ifish.utils.AppUtil;
import com.ifish.utils.Commons; import com.ifish.utils.Commons;
import com.ifish.utils.Commons.LoginSPKey; import com.ifish.utils.Commons.LoginSPKey;
import com.ifish.utils.Commons.NetWork; import com.ifish.utils.Commons.NetWork;
@ -280,24 +282,26 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi
@Override @Override
public void onPermissionDeniedBySystem() { public void onPermissionDeniedBySystem() {
// AlertDialog.Builder dialog = new AlertDialog.Builder(getContext()); AlertDialog.Builder dialog = new AlertDialog.Builder(getContext());
// dialog.setCancelable(false); dialog.setCancelable(false);
// dialog.setMessage("请到应用管理-爱鱼奇-应用权限页面开启权限后重新打开app"); // dialog.setMessage("请到应用管理-爱鱼奇-应用权限页面开启权限后重新打开app");
// dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() { dialog.setMessage("请到应用信息页面-权限管理-打开位置和相机权限");
// @Override dialog.setPositiveButton("去开启", new DialogInterface.OnClickListener() {
// public void onClick( @Override
// DialogInterface dialog, public void onClick(
// int which) { DialogInterface dialog,
int which) {
// Intent mItent = new Intent(Settings.ACTION_SETTINGS); // Intent mItent = new Intent(Settings.ACTION_SETTINGS);
// startActivity(mItent); // startActivity(mItent);
// } AppUtil.toAuthority(requireActivity());
// }); }
// dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() { });
// @Override dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
// public void onClick(DialogInterface dialog, int which) { @Override
// } public void onClick(DialogInterface dialog, int which) {
// }); }
// dialog.show(); });
dialog.show();
} }
}); });
} }

View File

@ -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);
}
}
}