Android跳转至MIUI权限设置页面

作者: 聪明叉 | 来源:发表于2017-04-13 14:04 被阅读1373次

需要提示MIUI用户开启某些权限,因此需要跳转其权限编辑页面

网上基本只有比较古老的MIUI5/6的跳转方式:

Intent localIntent = new Intent("miui.intent.action.APP_PERM_EDITOR");
localIntent.setClassName("com.miui.securitycenter", "com.miui.permcenter.permissions.AppPermissionsEditorActivity");
localIntent.putExtra("extra_pkgname", context.getPackageName());
context.startActivity(localIntent);

这种方式已经不能满足如今的新版MIUI 8,所以,自己动手丰衣足食

电脑打开cmd/terminal, 手机打开应用权限设置页面:

命令行输入:

adb shell dumpsys activity | grep "mFocusedActivity"

输入结果:

mFocusedActivity: ActivityRecord{11ae2ef u0 com.miui.securitycenter/com.miui.permcenter.permissions.PermissionsEditorActivity t192}

即为当前打开的权限设置页的Activity

观察到Activity包名与MIUI 5/6的相同,Activity名字不同,将跳转代码改为:

// MIUI 8
Intent localIntent = new Intent("miui.intent.action.APP_PERM_EDITOR");
localIntent.setClassName("com.miui.securitycenter", "com.miui.permcenter.permissions.PermissionsEditorActivity");
localIntent.putExtra("extra_pkgname", context.getPackageName());
context.startActivity(localIntent);

成功跳转。

完整的工具类如下:

public class MiuiUtils {
    /**
     * 跳转到MIUI应用权限设置页面
     *
     * @param context context
     */
    public static void jumpToPermissionsEditorActivity(Context context) {
        if (isMIUI()) {
            try {
                // MIUI 8
                Intent localIntent = new Intent("miui.intent.action.APP_PERM_EDITOR");
                localIntent.setClassName("com.miui.securitycenter", "com.miui.permcenter.permissions.PermissionsEditorActivity");
                localIntent.putExtra("extra_pkgname", context.getPackageName());
                context.startActivity(localIntent);
            } catch (Exception e) {
                try {
                    // MIUI 5/6/7
                    Intent localIntent = new Intent("miui.intent.action.APP_PERM_EDITOR");
                    localIntent.setClassName("com.miui.securitycenter", "com.miui.permcenter.permissions.AppPermissionsEditorActivity");
                    localIntent.putExtra("extra_pkgname", context.getPackageName());
                    context.startActivity(localIntent);
                } catch (Exception e1) {
                    // 否则跳转到应用详情 
                    Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
                    Uri uri = Uri.fromParts("package", context.getPackageName(), null);
                    intent.setData(uri);
                    context.startActivity(intent);
                }
            }
        }
    }


    /**
     * 判断是否是MIUI
     */
    private static boolean isMIUI() {
        String device = Build.MANUFACTURER;
        if (device.equals("Xiaomi")) {
            try {
                Properties prop = new Properties();
                prop.load(new FileInputStream(new File(Environment.getRootDirectory(), "build.prop")));
                return prop.getProperty("ro.miui.ui.version.code", null) != null
                        || prop.getProperty("ro.miui.ui.version.name", null) != null
                        || prop.getProperty("ro.miui.internal.storage", null) != null;
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
        return false;
    }
}

相关文章

  • Android跳转至MIUI权限设置页面

    需要提示MIUI用户开启某些权限,因此需要跳转其权限编辑页面 网上基本只有比较古老的MIUI5/6的跳转方式: 这...

  • App跳转到自己的权限设置页面

    当APP授权过相机、相册、通知、定位等权限后,调用下面代码即可跳转至当前APP的权限设置页面,否则跳转至设置页面。

  • Android跳转权限管理页面

    收藏学习 跳转到miui的权限管理页面 private void gotoMiuiPermission() { }...

  • MIUI应用权限设置

    无论你觉得我写的好坏都可以在下面评论告诉我,你的支持是我继续写下去的动力,谢谢! 随着miui越来越封闭,小米对非...

  • MIUI8系统怎么样启用root权限的流程

    MIUI8系统怎么拥有ROOT权限?大家都了解,Android设备有ROOT权限,一旦手机拥有root相关权限,就...

  • React权限高阶组件

    权限设置 背景 项目中,设置权限通常有二种 菜单级权限页面级权限 菜单级设置相对简单,可以在统一入口中处理。页面级...

  • Android权限设置引导

    Android中当我们需要的权限被禁用时,需要引导用户去开启该权限(一般是跳转到权限设置页面),这样可以达到优化用...

  • Flutter 插件(调用原生方法--Android)

    调用原生方法(以跳转到设置页面设置是否开启通知权限为例): 首先在flutter项目的android下创建一个...

  • iOS推送权限开发判断

    推送权限的申请 加入头文件 申请权限 查看当前的权限 没权限进入设置页面

  • AgentWeb页面调用原生Android功能

    WebView页面调用原生Android页面 1. 权限请求 所有页面的功能均自动根据情况请求权限,无需处理。 2...

网友评论

  • b85958901227:这种适配到厂商的东西真恶心
  • hlla:其它的也一样吗,像oppo,vivo,华为了
    聪明叉:@hlla 看标题

本文标题:Android跳转至MIUI权限设置页面

本文链接:https://www.haomeiwen.com/subject/yjybattx.html