Android基础——动态申请权限

作者: 异想天开的骑士 | 来源:发表于2018-09-05 14:28 被阅读7次

在清单文件中申请权限

<uses-permission android:name="android.permission.CALL_PHONE"/>

检查并申请权限

使用 ContextCompat.checkSelfPermission 检查权限,当 ContextCompat.checkSelfPermission 返回值与 PackageManager.PERMISSION_GRANTED 不等时,申请权限。

if (ContextCompat.checkSelfPermission(PermissionActivity.this, Manifest.permission.CALL_PHONE)
        != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(PermissionActivity.this, new String[]{Manifest.permission
            .CALL_PHONE}, 1);
} else {
    call();
}

回调处理

重写 onRequestPermissionsResult 方法,查看权限是否申请成功,如果未成功,提示用户。

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[]
        grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    switch (requestCode) {
        case 1:
            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                call();
            } else {
                Toast.makeText(PermissionActivity.this, "权限被拒绝", Toast.LENGTH_SHORT).show();
            }
            break;
    }
}

相关文章

网友评论

    本文标题:Android基础——动态申请权限

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