需要提示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. 树莓派3b+目标检测: tflite 运行 mobilenet ssd
  2. bzoj1070————2016——3——14
  3. 排序的稳定性(概念明晰)
  4. Android 获取 屏幕状态栏高度和标题栏高度 避免出现0的情况
  5. 扫盲了!一个Java字符串中到底有多少个字符?
  6. tcp port numbers reused出现原因_谈谈 TCP 的 TIME_WAIT
  7. Linux内核Socket参数调优
  8. Java中不一致的操作会扩大规则
  9. Web应用程序的简单插件系统
  10. 08 | 栈:如何实现浏览器的前进和后退功能?
  11. 三线压力传感器原理_电喷摩托车进气压力传感器原理与检测
  12. 在计算机应用领域中媒体是指,在计算机中,媒体是指什么
  13. OSPF区域内拓扑计算原理与实验
  14. windows下安装python和mysql_Windows 10安装Python 2.7和MySQL-python
  15. i2c-tools使用及调试
  16. 杨森翔书法:立马越王台
  17. 福州农信计算机类待遇怎么样,福建农村信用社联合社待遇怎么样?农信社工资如何...
  18. CMDB建设补充:教你用django+drf 怎么去生成漂亮的API文档
  19. 如何在电脑/手机上将JPEG图片保存为PDF?
  20. 算法很美:01背包问题(动态规划、贪心)

热门文章

  1. 10-4 linux可视化界面卡住问题等
  2. 74ls系列芯片的分类
  3. 剖析《Linux 平均负载:解开谜团》
  4. 怎么使用水经注万能地图下载器制作百度兴趣点个性化地图
  5. Arcgis中按照cass标准分幅图框进行批量正射影像DOM分幅裁剪并命名
  6. 单片机ADC0808,DAC0832信号发生器
  7. 百度网盘无需开会员也能享受高速下载通道
  8. win10官网下载ios文件操作指南
  9. ERP 集成常见的类型
  10. 分享100个精美模板PPT模板,总有一款适合你