最近做项目遇到小米手机比较人(zhuang)性(bi)化的悬浮窗权限权限当在小米手机上安装完应用后默认是关闭这个权限的,需要用户手动到应用详情页打开该权限
重(keng)要(die)的是使用这個权限开关系统window后, 小米手机不给任何提示就是不给弹窗一开始以为是自己代码逻辑写错了,半天才反应过来小米还有个这个权限,當天6.0以上安卓系统也需要这个权限但是会有log提示的。
这么麻烦的操作怎么可能让用户自己去找应用详情然后开启操作呢本文将实现一鍵开启小米悬浮窗权限权限!
想要实现自动调整到改应用的详情页的权限管理页面,就要知道权限管理页的类名及包名我们又沒有小米rom的源码,怎么才能知道指定页面的相关信息呢
usb链接电脑后,手动打开应用的详情页面里的权限管理页面:
知道到了要跳转的activity,我们直接构造Intent 是否可以直接跳过去?
答案肯定是不行的. Intent 需要构造参数,来区分指定app的权限管理页面:
* 经测试V5版本是有区别嘚
经测试V5版本和后续版本是后区别的, 分别需要app ID和pkgname. 为了区分V5版本,我们需要得到小米rom的版本名:
该反射方法来自网络,经验证是有效的.
这樣我们就跳转到了指定应用的权限管理页面.
标题已经写了,我们的目标是用户一键开启,入口做到一键就能开启小米rom悬浮窗权限權限呢? 可以利用安卓辅助功能自动帮用户跳转, 自动点击打开权限,完成操作后返回.
到这里就可以实现一键开启小米rom悬浮窗权限权限了
但是一鍵开启前我们需要判断,该权限是否已经开启:
* 判断MIUI的悬浮窗权限权限
api>=19需要用反射来活取系统相关配置信息,应该也适用于魅族手机,为验证.
这里峩们就实现了一键开启小米Rom悬浮窗权限权限,并且实现了判断是否已经开启了该权限状态.
本Demo相关源码地址: , 欢迎下载交流学习~