权限

作者: HOLLE_karry | 来源:发表于2020-03-20 16:40 被阅读0次

Android中常见的权限

普通权限:不需要获取动态权限

危险权限:日历 相机 联系人 位置 麦克风 电话 传感器 短信 存储

image

权限的使用步骤:

1.检查权限

 判断所有权限是否授权,若授权,直接运行,若没有授权,执行第二步
privatebooleanisAllPermissionGranted() {
booleanisAllGranted=true;
for(inti=0;i<mPermissions.length;i++) {
    if(ActivityCompat.checkSelfPermission(this,mPermissions[i])!=PackageManager.PERMISSION_GRANTED) {
        isAllGranted=false;
    break;
     }
}
returnisAllGranted;
}

2.申请权限

if(ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.CALL_PHONE)){
//已经拒绝过一次,会有一个不再提示的选项框
newAlertDialog.Builder(this)
.setTitle("权限申请").setMessage("提供了解释需要该权限的机会")
.setPositiveButton("OK",newDialogInterface.OnClickListener() {
@Override
publicvoidonClick(DialogInterfacedialog,intwhich) {
requestPermission();
                }
      })
.setNegativeButton("Cancel",null).create().show();
}else{
requestPermission();
 }

3.处理申请结果,回调方法onRequestPermissionsResult()

打电话

PermissionsUtil.requestPermission(MainActivity.this, new PermissionListener() {
         @Override
         public void permissionGranted(@NonNull String[] permission) {
         Toast.makeText(MainActivity.this, "已授权", Toast.LENGTH_SHORT).show();
         callPhone();
         }
         @Override
         public void permissionDenied(@NonNull String[] permission) {
         Toast.makeText(MainActivity.this, "未授权", Toast.LENGTH_SHORT).show();
         }
}, Manifest.permission.CALL_PHONE);

private void callPhone() {
        Intent intent = new Intent(Intent.ACTION_DIAL);
        intent.setData(Uri.parse("tel:110"));
        startActivity(intent);
    }

相册

//点击事件
iv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                startActivityForResult(intent,1);
            }
        });
@Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode==1&&resultCode==RESULT_OK){
            Uri data1 = data.getData();
            iv.setImageURI(data1);
        }
    }

相关文章

  • ios开发中的权限

    权限分类 联网权限 相册权限 相机 麦克风权限 定位权限 推送权限 通讯录权限 日历 备忘录权限 联网权限 引入头...

  • iOS 相关权限

    权限分类 联网权限 相册权限 相机、麦克风权限 定位权限 推送权限 通讯录权限 日历、备忘录权限 1.联网权限 引...

  • 019 Android权限级别

    Android权限级别我分为普通权限、deviceadmin权限、deviceowner权限、root权限。 ht...

  • android 6.0 添加权限问题

    权限组(Permission Group) 所有的权限都属于权限组当中,包括常规权限和危险权限。对于常规权限而言,...

  • 第十六天课堂笔记 3月21号

    学习内容【文件】权限 【目录】权限***、 【文件】权限 【目录】权限*** 字符和数字(8进制)权限知识****...

  • 动态申请权限

    Android中的权限分为系统权限和应用自定义权限,系统权限又分为正常权限和危险权限。正常权限只需要在Androi...

  • iPhone系统权限

    需要引用到的头文件有 相册权限 照相机权限 麦克风权限 通知权限 定位权限 通讯录权限

  • 【实体类】用户权限

    字段 权限id 权限名 权限描述名 权限描述信息 所在权限分组名 积极 保留字段

  • linux 权限不完全指南

    Linux 权限概述 本文主要介绍linux的: 文件权限 目录权限 默认权限 umask 隐藏权限 lsattr...

  • MySQL 权限管理

    查询所有权限: 授权 查看权限 回收权限 查看权限

网友评论

      本文标题:权限

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