Android调app权限设置界面(适配各大手机厂商终极版本) 您所在的位置:网站首页 miui如何进入主题设置界面显示 Android调app权限设置界面(适配各大手机厂商终极版本)

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

2024-06-26 19:34| 来源: 网络整理| 查看: 265

背景:

 

        众所周知,国内的android是在google之上,各大手机厂商加了一层,诸如MIUI、EUI,之类的系统。因此在我们开发过程中想调出某应用的权限设置页面,调出的是google原生的权限控制界面,但是我们在此页授予应用权限后,实际上应用还是没有权限,只是在google眼里,我已经给你权限了。其实,是被手机厂商系统给拦截了,通俗来讲,中国的手机厂商觉得原生的不好看,或者突出自己系统等原因,会在原生之上加一个壳子,有些东西原生可以决定,有些东西,原生决定了没有用,还是要壳子同意才行。

目的:

 

            因此我们想跳转的是各大手机厂商系统的应用权限设置界面,这就需要知道类名+包名,而且各大手机厂商的类名+包名肯定不一样,也不保证它们会一成不变。

 

在此https://www.jianshu.com/p/58c6ca8173c4文章的基础上,完善了一个工具类,经过测试:

华为:OK

小米:OK

锤子:OK

一加:OK

vivo:OK,vivo有自己的提示,再次点击后也是会跳出提示,有瑕疵,但是还可以

oppo:OK,自己会提示

魅族:暂时跳转没反应

酷派:无6.0以上的版本笑哭

中兴:OK

联想:OK

PS:

总体来讲,不敢保证肯定能跳过去的,可以采用捕获异常的方式,是在调不到该应用的权限管理页,跳到该应用详情页也可以,反正就是要引导用户在拒绝权限后可以找到在哪授予权限。

当然我这里采用的是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 {//防止应用详情页也找不到,捕获异常后跳转到设置,这里跳转最好是两级,太多用户也


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有