资讯专栏INFORMATION COLUMN

Android 跳转权限设置界面的终极方案

missonce / 2867人阅读

摘要:比如有人说跳转华为的权限界面该这样跳转失败若是失败就直接打开默认界面从上面可以看出其主要的方法在与里边的参数前一个是华为权限界面的包名,华为权限界面的类名,既然知道包名与类名自然可以打开该。

转载请标明出处,维权必究:https://www.cnblogs.com/tangZH/p/10338377.html

 

有时候APP需要获取某些权限,要让用户手动打开,那么问题来了,若是直接提醒用户出去找权限入口,然后自己打开,用户不一定找得到,因为现在的Android厂家定制的room五花八门,那么用户觉得不耐烦就有可能流失这部分用户。

所以,我们需要给用户一个入口,让用户直接在APP里面跳转到对应的权限页面。但刚刚也说了,现在的Android厂家定制的room五花八门,所以不同的机型或者android版本打开权限页面的方法就可能不一样了,我们得去适配。

 

网上查了很多资料,什么中级终极重级的方案都有,虽然这确实能够解决一些机型的适配,但还是没能给出一个通用的解决方法。

比如有人说:

跳转华为的权限界面该这样:

private void goHuaWeiMainager() {
        try {
            Intent intent = new Intent(packageName);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            ComponentName comp = new ComponentName("com.huawei.systemmanager", "com.huawei.permissionmanager.ui.MainActivity");
            intent.setComponent(comp);
            mContext.startActivity(intent);
        } catch (Exception e) {
            Toast.makeText(mContext, "跳转失败", Toast.LENGTH_LONG).show();
            e.printStackTrace();
            goIntentSetting();
        }
    }

若是失败就直接打开默认界面:

 private void goIntentSetting() {
        Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
        Uri uri = Uri.fromParts("package", mContext.getPackageName(), null);
        intent.setData(uri);
        try {
            mContext.startActivity(intent);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

从上面可以看出其主要的方法在与:

ComponentName comp = new ComponentName("com.huawei.systemmanager", "com.huawei.permissionmanager.ui.MainActivity");

里边的参数前一个是华为权限界面的包名,华为权限界面的类名,既然知道包名与类名自然可以打开该Activity。

 

其他机型也是用这样的思想去解决,那么问题就出现了,看了网上这么多适配的方案,都是这样的思想啊,写来写去都差不多,那他们怎么就知道这些机型的权限界面的包名与类名呢?他们从来都没说,或许是我没看到,尴尬。

 

好了,所有的方法最终归回到终极方案,下面便是最终方法:

找到该机型,然后找打你想要的权限界面,可能比较难找,不过你还是要找到它,然后打开,接着通过adb命令查看当前页面的Activity,就可以看到该权限界面的包名与类名。

具体方法看链接:

https://www.cnblogs.com/tangZH/p/10139371.html

当然,你想要适配什么机型什么android系统版本,就需要找到这样一台手机去执行这样的操作,拿到权限界面的包名与类名后就可以用上述类似的方法,在app里边直接打开权限界面,没办法,好好适配吧,少年。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/2507.html

相关文章

  • Android自定义控件

    摘要:自定义之高仿支付宝芝麻信用分仪表盘效果最近写的一个自定义,仿了下支付宝新旧版的芝麻信用分的仪表盘效果。项目需求讨论自定义实现步骤及封装根据实际项目需求出发。来快速实现各种自定义界面的对话框。究其原因,目前只用到了最基础的一部分功能。 自定义 View 之高仿支付宝芝麻信用分仪表盘效果 最近写的一个自定义 View,仿了下支付宝新旧版的芝麻信用分的仪表盘效果。 项目需求讨论 - Andr...

    Tikitoo 评论0 收藏0
  • 日常所需 - 收藏集 - 掘金

    摘要:调用优先级安卓原生三星魅族靠谱的唯一设备号生成方案掘金应用开发中有时候也许会获取设备的唯一标识。必须要会的基本使用及常用命令操作工具资源掘金之前一直用的,后来换了之后才发现的强大功能,是不能比的。 通过 Weex 300 行代码开发一款简易的跑步 App - 前端 - 掘金一套构建高性能、可扩展的原生应用的跨平台开发方案 Weex 给大家带来的无疑是客户端开发效率的提升,我们可以通过一...

    BicycleWarrior 评论0 收藏0
  • android知识学习 - 收藏集 - 掘金

    摘要:从邮件内容来看,估计和权限知识学习笔记掘金最近在项目上因为运行时权限吃了亏,发现之前对运行时权限的理解不足,决定回炉重造,重新学习一下。 浅谈 Android Service - 掘金前言:本文所写的是博主的个人见解,如有错误或者不恰当之处,欢迎私信博主,加以改正!原文链接 ,demo链接 Serviec(服务)简述 什么是ServiceService 是一个可以在后台执行长时间运行操...

    WrBug 评论0 收藏0
  • 实现一个Android锁屏App难点总结

    摘要:自定义一个漂亮实用的锁屏,如果能赢得用户的认可,替换系统自带的锁屏,绝对是一个不小的日活入口。这段时间正好总结一下最近调研的平台的锁屏开发中的难点。一前言锁屏的大概实现原理都很简单。 自定义一个漂亮实用的锁屏app,如果能赢得用户的认可,替换系统自带的锁屏,绝对是一个不小的日活入口。这段时间正好总结一下最近调研的Android平台的锁屏app开发中的难点。 一、前言 锁屏的大概实现原理...

    luzhuqun 评论0 收藏0
  • Android包管理机制(一) PackageInstaller初始化

    摘要:类名描述用于向应用程序进程提供一些功能,最终的功能是由来实现的一个的接口,用于和进行进程间通信用于权限动态检测在中被引入提供安装升级和删除应用程序功能用于多用户管理注释处的方法如下所示。前言 包管理机制是Android中的重要机制,是应用开发和系统开发需要掌握的知识点之一。 包指的是Apk、jar和so文件等等,它们被加载到Android内存中,由一个包转变成可执行的代码,这就需要一个机制...

    番茄西红柿 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<