需要提示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给权限,Android跳转至MIUI权限设置页面相关推荐

  1. android 调用百度地图规划,Android 调用百度地图API

    一.到 百度地图开发平台下载SDK 1.点击自定义下载 2.下载自己想要的功能包我这里选了三个 3.获取密钥 获取密钥之前我们要新建一个应用 填写好相关的信息 二. 新建一个项目工程 1. 把下载好的 ...

  2. android 调用图片裁剪功能,Android图片裁剪,合成(调用系统裁剪功能)

    做照片相框 步骤就是跟美图秀秀一样,先截图,然后添加相框 在之前Bitmap.createBitmap那个文里,说过使用jpg图片会挡住底层图片,用画这种方法合成图片,没有问题. public cla ...

  3. Android中FlowLayout的使用方法,监控布局大小并设置页面高度

    博客来源: 工作中需要动态的为页面插入提示语,并根据提示语的不同进行换行操作.提示语数量不同,长度不同,那么就需要页面具有流动性 话不多说,上代码 这是一个工具类,复制进行小修改即可[下方有我调用参考 ...

  4. android调用js函数方法,Android和JavaScript相互调用的方法

    本文实例讲述了Android和JavaScript相互调用的方法.分享给大家供大家参考,具体如下: Html页面和Java代码结合的方式一般用在界面经常被更改 的情况下,可以讲html放在网络中,软件 ...

  5. android调用webservice传参数,android调用webservice接口获取信息

    我的有一篇博客上讲了如何基于CXF搭建webservice,service层的接口会被部署到tomcat上,这一篇我就讲一下如何在安卓中调用这些接口传递参数. 1.在lib中放入ksoap2的jar包 ...

  6. android调用文件管理器回调,Android中调用系统管理器选择文件并返回绝对路径

    选择文件的时候,如果使用的是第三方软件,一般是直接返回绝对路径的Uri,如果是系统的,则会返回媒体库的xxxx,所以单纯一种方式选择文件,很可能拿到的绝对路径是错的或者是空的,所以需要做几种处理,这里 ...

  7. android调用java接口_java/Android 接口调用的几种写法

    虽然Handler用的地方比较普遍,但是接口也有他的独特之处,比较直观,然后降低了耦合性 如有一接口,需要将数据传给使用的activity中,接口如下 public interfacePushValu ...

  8. android调用另一个app,Android调用另一个App界面

    最近年底了,项目比较忙,虽然用笔把要总结的技巧来技术写下了,但是一直没有时间来更新.今天要说的是在App中调用其他APP界面的总结,我们经常需要给别的程序调用自己程序的UI界面,这时可以有三种方式来提 ...

  9. android调用资源文件配置,Android资源文件

    应用资源是指应用中与源代码分离的资源,如图像.音频文件以及任何与应用的视觉呈现有关的内容.在Android项目中的每一项资源,SDK构建工具都会定义一个唯一的整形ID,可以通过ID对资源进行应用.提供 ...

  10. Android调用uc播放器,android 视频播放 -- 调用系统播放器

    android 视频播放,视频来源有两种:一种是本地视频,一种是网络视频,对android播放来说都统一用uri来表示. 播放视频有三种处理方式: (1) 使用webview 播放 (2) 使用vid ...

最新文章

  1. beatsx三闪红灯是什么意思_周迅感情亮红灯?真离了!?亮红灯英文是red light ?red 对了,但不用 light!...
  2. SpringBoot之旅第一篇-初探
  3. RHEL6.3 DNS高级技术二 通过DNS主从区域复制实现DNS View负载均衡和冗余备份
  4. python renames_Python os.renames() 方法
  5. Central Authentication Service
  6. mfc如何将一个数组中的字节数据用串口发送出去_RS232串口多机通信
  7. UVA10236 斐波那契素数
  8. php 上传大文件400,PHP fastcgi模式上传大文件(大约有300多K)报错
  9. Last_Errno: 1755 Last_Error: Cannot execute the current event group in the parallel mode错误解决
  10. 度量网络延迟和吞吐量
  11. Ubuntu、CentOS、redHat的区别与联系
  12. Linux和windows网络配置
  13. {$POINTERMATH ON} 方便指针操作的编译指令
  14. (2018-2019)linux常用操作命令总结
  15. 冰点文库下载器V3.2.4
  16. 怎么禁用计算机上的自动播放,手把手教你如何关闭自动播放
  17. 张家界航空工业职业学院计算机,张家界航空工业职业技术学院2021年招生代码...
  18. 开源项目——小Q聊天机器人V1.0
  19. cookie中__jsl_clearance参数的破解。
  20. 鸿蒙入门手册(二):应用是怎样运行的

热门文章

  1. android截屏与截长图截屏功能的实现
  2. linux合并ts文件吗,Linux 下使用 ffmpeg 大批量合并 ts 文件, mp4切割文件为m3u8
  3. 分享一款思维导图工具-幕布(附在线工具合集、Android进阶知识体系)
  4. 博图多版本共存安装教程 博图V14V15V16V17下载地址
  5. 09-网格划分质量查看
  6. 强大web打印控件下载 - 2019年最新支持所有浏览器-楚琳打印
  7. oracle中文转全拼音,(转)oracle下,把中文转为拼音函数编写
  8. 南航计算机学院的实验室,南航计算机科学与技术学院导师介绍:魏欧
  9. win10打开.heic文件
  10. Lauterbach trace32与 jlink