首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActivityCompat.requestPermissions()请求的可接受权限是什么?

ActivityCompat.requestPermissions()请求的可接受权限是什么?
EN

Stack Overflow用户
提问于 2022-03-02 22:25:26
回答 1查看 106关注 0票数 1

在我使用Java的Android应用程序中,我定义了一个checkForPermission()方法来检查单个权限的授予状态。如果尚未授予该权限,则它将使用ActivityCompat.requestPermissions()向用户请求此权限。

以下是一种方法:

代码语言:javascript
复制
private boolean checkForPermission(String permission, int rationaleMessageId, int requestCode) {

    // Check if permission is already granted.
    if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) {

        // Permission has not been granted. Check if a rationale AlertDialog should be shown.
        if (ActivityCompat.shouldShowRequestPermissionRationale(this, permission)) {

            // Show rationale AlertDialog explaining why this permission is needed.
            new AlertDialog.Builder(this)
                    .setTitle(R.string.rationale_dialog_title)
                    .setMessage(rationaleMessageId)
                    .setPositiveButton(android.R.string.ok,
                            new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialogInterface, int i) {
                                    // Request permission again.
                                    ActivityCompat.requestPermissions(MainActivity.this, new String[]{permission}, requestCode);
                                }
                            })
                    .create()
                    .show();
        }

        // Do not show rationale AlertDialog. Just request permission again.
        else {
            ActivityCompat.requestPermissions(MainActivity.this, new String[]{permission}, requestCode);
        }
        return false;
    }

    return true;
}

我注意到,该方法对于简单权限(如android.permission.WRITE_EXTERNAL_STORAGE )非常好,但对于更危险的权限(如android.permission.WRITE_SETTINGS )则不起作用。

我想知道ActivityCompat.requestPermissions()实际上可能请求哪种类型的权限。我的假设是,必须使用其他方法请求危险的权限,但我希望能够得到任何反馈。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-02 23:07:07

具体来说,requestPermissions()用于具有protectionLevel of dangerous的权限。

WRITE_EXTERNAL_STORAGE is dangerous.WRITE_SETTINGS is not

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71329901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档