Android:请求多个权限时只请求第一个权限

Android:请求多个权限时只请求第一个权限,android,android-6.0-marshmallow,android-permissions,Android,Android 6.0 Marshmallow,Android Permissions,我的应用程序需要5个权限。这是我添加到我的活动1的onCreate()中的代码: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {

我的应用程序需要5个权限。这是我添加到我的活动1的onCreate()中的代码:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
                requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);

            }
            if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
                requestPermissions(new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE}, 2);
            }
            if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
                requestPermissions(new String[]{android.Manifest.permission.CAMERA}, 3);
            }
            if (ContextCompat.checkSelfPermission(this, Manifest.permission.GET_ACCOUNTS) != PackageManager.PERMISSION_GRANTED) {
                requestPermissions(new String[]{android.Manifest.permission.GET_ACCOUNTS}, 4);
                    }

            if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
                requestPermissions(new String[]{android.Manifest.permission.READ_CONTACTS}, 5);
            }
    }
当应用程序运行时,它只请求第一个权限,而不是剩余的权限。 我还将所有权限作为数组提供给request permission函数,但在那里我只看到第一个权限弹出窗口

有人能帮忙吗。我在安卓M设备上运行我的应用程序,我的目标和编译sdk版本是26。

执行以下操作:

int PERMISSION_ALL = 1; 
    String[] PERMISSIONS = {Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.CAMERA, Manifest.permission.GET_ACCOUNTS, Manifest.permission.READ_CONTACTS};

    if(!hasPermissions(this, PERMISSIONS)){
        ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL);
    }
您可以这样做:

requestPermissions(new String[]{
                            Manifest.permission.READ_CONTACTS,
                            Manifest.permission.ACCESS_FINE_LOCATION},
                    ASK_MULTIPLE_PERMISSION_REQUEST_CODE);

或者使用库

调用
requestPermissions()
一次,并使用一个
字符串[]
来获取所需的所有权限。自定义
字符串[]
,使其仅具有所需的权限,而不是用户已授予的权限。看。已经试过了,同样的问题也出现了,我在问题中提到过,也许你做错了,或者你已经拥有了其他权限(因此不需要)。再次,请参见或,其中我请求了多个权限,没有问题。