Android 6.0 以上权限判断问题

前言

Android 6.0后 加强了权限判断,即使我们再清单文件中添加了权限授权,在使用的时候如果没有进行权限判断依然无法使用该权限。

从官方提供的下图分析,Android 大部分用户已经处于Android 6.0,所以Android 的权限判断,对于应用开发是必不可免的。


image.png

解决办法

在用户在使用该权限的时候我们给用户提示一个弹框进行权限授权,效果如下图。


image.png

弹框是系统提供的,我们在使用权限时进行代码判断就好了
例如使用读取通讯录权限

//判断应用是否已经授权权限
public boolean requestMail(Activity activity) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            int hasPermission = activity.checkSelfPermission(Manifest.permission.READ_CONTACTS);
           //没有授权
            if (hasPermission != PackageManager.PERMISSION_GRANTED) {
                //进行授权提示 1006为返回标识
                activity.requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_CONTACTS},
                        1006);
                return false;
            }
        }
        return true;
    }

//授权回调
 @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        //1006是通讯录授权
        if (requestCode == 1006) {
               //跳转通讯录
            SwitchActivityManager.startInvitationActivity(mContext);
        }

    }

 

使用

               //权限判断,弹窗
                if (requestMail(InvationWeixinActivity.this)) {
                    SwitchActivityManager.startInvitationActivity(mContext);
                }

大概代码逻辑就是这样,根据自己的项目需求进行判断。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,544评论 25赞 708
  • 今天我们来谈谈酒杯 一般来说,酒杯虽然不会改变酒的本质,它的形状却可以决定酒的流向、气味、品质以及强度,进而影响酒...
    三只大叔阅读 1,289评论 0赞 0
  • 歌曰:与女游兮九河 此时此刻,宫内华灯初上。 承乾宫里,太医跪了一地。 身穿墨色云纹宫花锦袍的太后把茶杯砸得粉碎。...
    胡萝卜小青年阅读 267评论 0赞 0
  • 01 初识 像往常一样, 人来人往, 你不过是其中一个。 02 相知 我在说,你在笑, ...
    衷于逸生阅读 265评论 0赞 1

友情链接更多精彩内容