Android【使用EasyPermissions申请动态权限】总结笔记

一:EasyPermissions系统权限库

Android【使用EasyPermissions申请动态权限】总结笔记_第1张图片

easyPermissions:是简单的系统权限库,并干掉6.+++以上的系统权限问题。

优点:它也简化了我们的操作,提升了效率,内部的封装使得我们的代码减少了很多,下面我们来看一下它的自我介绍:

github 地址:https://github.com/jiezongnewstar/easypermissions

佳姝1:添加依赖。

implementation 'pub.devrel:easypermissions:2.0.1'

 佳姝2:实现接口【implements EasyPermissions.PermissionCallbacks】,如图:

Android【使用EasyPermissions申请动态权限】总结笔记_第2张图片

重写授权成功和失败的回调: 

@Override
public void onPermissionsGranted(int requestCode, @NonNull List perms) {
    //已授予某些权限

    //1.先检查自己是否申请过权限 (如果是) ->不处理

    //2.没有申请过权限 注册权限  确认是否开启 (如果是)-> 不处理

    //3.(如果不是)-> 弹出弹框提示" 确保应用正常使用,请开启权限!" (如果不是)-> 不处理

    //4.是 调用流程 ->第2步用户永远禁止那么会出现死循环,直到用户允许为止。
}

@Override
public void onPermissionsDenied(int requestCode, @NonNull List perms) {
    //否认,弹出对话框,直到用户允许此权限为止,才不会走此方法。
        new AlertDialog.Builder(this)
        .setMessage("是否使用此权限")
        .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {

            }
        }).setPositiveButton("Sure", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
        hasPermissions();
    }
}).show();
}

知识:常用权限(可能不全) 

  1.  SMS(短信)                                                        
     SEND_SMS
     RECEIVE_SMS                                            

  2.  READ_SMS
     RECEIVE_WAP_PUSH
     RECEIVE_MMS

  3.  STORAGE(存储卡-读写权限)
     READ_EXTERNAL_STORAGE
     WRITE_EXTERNAL_STORAGE

  4.  CONTACTS(联系人)
     READ_CONTACTS
     WRITE_CONTACTS
     GET_ACCOUNTS

  5.  PHONE(手机)
     READ_PHONE_STATE
     CALL_PHONE
     READ_CALL_LOG
     WRITE_CALL_LOG
     ADD_VOICEMAIL
     USE_SIP
     PROCESS_OUTGOING_CALLS

  6.  CALENDAR(日历)
     READ_CALENDAR
     WRITE_CALENDAR

  7.  CAMERA(相机)
     ACCESS_FINE_LOCATION

  8.  LOCATION(位置)
     ACCESS_FINE_LOCATION
     ACCESS_COARSE_LOCATION

  9.  SENSORS(传感器)
     BODY_SENSORS

  10.  MICROPHONE(麦克风)
     RECORD_AUDIO     

 佳姝3:根据自己需求手动添加请求权限。

//相机摄像头权限,自己可以添加需要判断的权限.
String[] perms = {Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.CAMERA};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    hasPermissions();
}

//检查自己是否申请过权限
private void hasPermissions() {
    if (!EasyPermissions.hasPermissions(this, perms)) {
        EasyPermissions.requestPermissions(new PermissionRequest.Builder(this, 2000, perms).build());
    }
}

 佳姝4:重写回调方法。

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    // 将结果转发到easypermissions
    EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
}

 

你可能感兴趣的:(Android【使用EasyPermissions申请动态权限】总结笔记)