最近在写一个app的时候,需要获取联系人,仔细想想他是一个危险权限,android 6.0需要动态申请,所以就写了.
早之前我对象写过,所以我就把他的挪过来了,但是发现他没有回调,而在他的项目里好使,这是为什么呢,没多想就用了第三方
easypermissions,首先先导入依赖implementation 'pub.devrel:easypermissions:2.0.0' ,然后检查权限requestCallPhonePermission();
/**
* 检查动态权限
*/
public void requestCallPhonePermission() {
if (!EasyPermissions.hasPermissions(getActivity(), Manifest.permission.READ_CONTACTS)) {
EasyPermissions.requestPermissions(this, "缺少联系人的权限", 123, Manifest.permission.READ_CONTACTS);
} else {
//允许权限
readContacts();
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
}
@Override
public void onPermissionsGranted(int requestCode, List<String> perms) {
readContacts();
}
@Override
public void onPermissionsDenied(int requestCode, List<String> perms) {
if (EasyPermissions.somePermissionPermanentlyDenied(getActivity(), perms)) {
new AlertDialog.Builder(getActivity())
.setTitle("权限提示")
.setMessage("本项认证需要联系人权限,点击确认后在新页面滑动到最下方,在权限管理处,开启联系人权限")
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
getActivity().finish();
}
})
.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 跳转到APP设置页面