背景:

众所周知,国内的android是在google之上,各大手机厂商加了一层,诸如MIUI、EUI,之类的系统。因此在我们开发过程中想调出某应用的权限设置页面,调出的是google原生的权限控制界面,但是我们在此页授予应用权限后,实际上应用还是没有权限,只是在google眼里,我已经给你权限了。其实,是被手机厂商系统给拦截了,通俗来讲,中国的手机厂商觉得原生的不好看,或者突出自己系统等原因,会在原生之上加一个壳子,有些东西原生可以决定,有些东西,原生决定了没有用,还是要壳子同意才行。目的:因此我们想跳转的是各大手机厂商系统的应用权限设置界面,这就需要知道类名+包名,而且各大手机厂商的类名+包名肯定不一样,也不保证它们会一成不变。在此https://www.jianshu.com/p/58c6ca8173c4文章的基础上,完善了一个工具类,经过测试:华为:OK小米:OK锤子:OK一加:OKvivo:OK,vivo有自己的提示,再次点击后也是会跳出提示,有瑕疵,但是还可以oppo:OK,自己会提示魅族:暂时跳转没反应酷派:无6.0以上的版本笑哭中兴:OK联想:OKPS:总体来讲,不敢保证肯定能跳过去的,可以采用捕获异常的方式,是在调不到该应用的权限管理页,跳到该应用详情页也可以,反正就是要引导用户在拒绝权限后可以找到在哪授予权限。当然我这里采用的是startActivityForResult,返回时我想知道权限是否已经授予,如果授予了,那么继续干其他的事情,如果没授予,那么继续提示。因为使用startActivityForResult若跳的是应用详情页,用户再次点击权限,其实已经跳出该活动了,再返回,再返回到我们的页面,其实并没有效果,因此考虑区分应用详情页和权限详情页最终确定方案:若打开的是应用详情页,则在onResume中检测权限

核心代码:public static void GoToSetting(Activity activity){

switch (Build.MANUFACTURER){

case MANUFACTURER_HUAWEI://华为

Huawei(activity);

break;

case MANUFACTURER_MEIZU://魅族

Meizu(activity);

break;

case MANUFACTURER_XIAOMI://小米

Xiaomi(activity);

break;

case MANUFACTURER_SONY://索尼

Sony(activity);

break;

case MANUFACTURER_OPPO://oppo

OPPO(activity);

break;

case MANUFACTURER_LG://lg

LG(activity);

break;

case MANUFACTURER_LETV://乐视

Letv(activity);

break;

default://其他

try {//防止应用详情页也找不到,捕获异常后跳转到设置,这里跳转最好是两级,太多用户也会觉得麻烦,还不如不跳

openAppDetailSetting(activity);

// activity.startActivityForResult(getAppDetailSettingIntent(activity), PERMISSION_SETTING_FOR_RESULT);

}catch (Exception e){

SystemConfig(activity);

}

break;

}

}

总体的思路是:尝试跳应用权限页————>失败------->应用详情页。尽量引导嘛

需要的同学可以下载工具类:

点击打开链接

暂时想到的处理判断授权结果的思路就是,应用权限页--->startActivityForResult    应用详情页--->resume中检测

有更好的思路欢迎留言讨论交流

android 权限管理适配 oppo,Android调app权限设置界面(适配各大手机厂商终极版本)...相关推荐

  1. Android调app权限设置界面(适配各大手机厂商终极版本)

    背景: 众所周知,国内的android是在google之上,各大手机厂商加了一层,诸如MIUI.EUI,之类的系统.因此在我们开发过程中想调出某应用的权限设置页面,调出的是google原生的权限控制界 ...

  2. android 权限管理适配 oppo,Android 动态权限适配 个别厂商( oppo vivo )

    遇到一个比较奇葩的问题,特此记录: 动态权限校验 Android 6.0 的 oppo & vivo 手机时,始终返回 权限已被允许 但是当真正用到该权限时,却又弹出权限申请框. Contex ...

  3. android 跳转权限管理的代码,Android权限管理

    Android权限管理 说明 在targetSdkVersion的值为23或者更高,就要进行权限管理,否则如果运行在Android6.0或以上的设备会没有相应权限而导致崩溃 请求权限后,在onRequ ...

  4. android 电源管理 关闭屏幕,Android之PowerManager电源管理

    翻译来源PowerManager 这个类让你拥有控制设备状态的权利. 使用这个api类会很明显地影响设备电量的使用时长.除非你确实需要PowerManager.WakeLock否则不要轻易使用它们,并 ...

  5. android 布局管理器,【Android开发】布局管理器-表格布局

    在XML布局文件中定义表格布局管理器的基本语法: 属性列表 > 需要添加的UI组件 多个TableRow TableLayout支持的XML属性: android:collapseColumns ...

  6. android 备份管理器,最佳Android备份提取器和备份解决方案

    第1部分:如何进行ADB备份 可以使用Android备份提取器轻松备份其数据.如果您的设备安装了Android 4.0及更高版本,则可以轻松执行这些简单的步骤.虽然,它也适用于其他版本,但方法可能会有 ...

  7. android+学籍管理,论文基于android的学籍管理系统的设计与实现.doc

    论文基于android的学籍管理系统的设计与实现 太 原 理 工 大 学 毕业设计(论文)任务书 第1页 毕业设计(论文)题目: 基于安卓的学生管理系统 毕业设计(论文)要求及原始数据(资料): 深入 ...

  8. android mac 管理工具,Coolmuster Android Assistant for Mac(Android管理工具)

    原标题:Coolmuster Android Assistant for Mac(Android管理工具) 想要在mac上管理你的安卓手机数据吗?试试Coolmuster Android Assist ...

  9. Android上实现一个简单的天气预报APP(六) 更新界面数据

    学习参考资源:https://www.gitbook.com/book/zhangqx/mini-weather/details 前面我们已经设置好了基本的界面,获取了网络上的天气数据并解析出来了,接 ...

最新文章

  1. Nature封面:人类还在看提词器,AI的辩论能力却出现了重大进展
  2. linux下json数据解析,Linux下使用jq简单解析json的方法
  3. selenium切换窗口 java_WebDriver(Selenium2) 根据新窗口title切换窗口
  4. python动态规划详解_python----动态规划
  5. alias cli3 配置_vue-cli3项目搭建配置以及性能优化
  6. Java Web解决跨域请求,java初级面试笔试题
  7. 字节跳动 | 机器学习与推荐算法工程师培养计划
  8. java 实现屏幕录像_用JAVA捕获屏幕、屏幕录像、播放
  9. 【BDTC 2016】精准医疗和生物医药大数据论坛:探索医疗与大数据结合之路
  10. CMake 之 BUILD_SHARED_LIBS 和 CMAKE_BUILD_TYPE 用法教程
  11. 对话洪小文:微软为什么能够持续保持竞争力和创新力?
  12. JS,统计图表大全--十一、甘特图
  13. Maven子模块pom文件灰色下划线
  14. 基于影像基因的肺结节分割、肺癌分类分期、CT影像预测基因突变 --董云云 论文阅读
  15. Hack The Box - Starting Point - TIER 0
  16. 深度学习之NN(Neural Network)
  17. 【轉】一個在台積電工作3年的工程師寫給學弟學妹們的信
  18. 计算机应用软件如何运行的,电脑怎么打开应用程序
  19. 订货管理系统远不只订货,它还有这些作用...
  20. 【建站】手把手教你搭建惊艳的博客

热门文章

  1. 基于jquery实现自定义下拉菜单(前端开发)
  2. Android手机远程控制手机
  3. 人工智能ai用什么编程语言_用于AI开发的6种最佳编程语言
  4. 计算机应用程序存储空间不足,电脑提示内存不足该怎么办呢
  5. ASP.net:关于何种情况下使用DataGrid、DataList或Repeater
  6. uniapp开发APP从开发到上架全过程(一)
  7. 「Atcoder」abc238 题解
  8. vue-element-admin安装依赖报错
  9. vue尚品汇商城项目-day03【vue插件-19.mockjs模拟数据(开发Home首页当中的ListContainer组件与Floor组件)】
  10. js解析EXCEL考勤打卡记录