美文网首页
Android 6.0 以上权限判断问题

Android 6.0 以上权限判断问题

作者: __素颜__ | 来源:发表于2018-08-10 10:36 被阅读743次

    前言

    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);
                    }
    

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

    相关文章

      网友评论

          本文标题:Android 6.0 以上权限判断问题

          本文链接:https://www.haomeiwen.com/subject/plxkbftx.html