android - 如何在 Android Marshmallow 中同时请求多个权限

标签 android android-6.0-marshmallow android-permissions

以下代码具有多个权限,我的错误是当点击按钮时它只请求一个权限,而我再次单击意味着它请求另一个权限。

我的点击

            public void onClick(View v) {
            getPermissionCamara();
            getStroagePermission();
            selectImage();
         }

我的权限是这样的

                private static final int CAMERA_PERMISSIONS_REQUEST = 1;
private static final int STROAGE_PERMISSIONS_REQUEST = 2;
public void getPermissionCamara() {
    if (ContextCompat.checkSelfPermission(this, CAMERA)
            != PackageManager.PERMISSION_GRANTED) {
        if (shouldShowRequestPermissionRationale(
                CAMERA)) {


        }
        requestPermissions(new String[]{CAMERA},CAMERA_PERMISSIONS_REQUEST);
    }
}


public void getStroagePermission() {
    if (ContextCompat.checkSelfPermission(this,READ_EXTERNAL_STORAGE)
            != PackageManager.PERMISSION_GRANTED) {
        if (shouldShowRequestPermissionRationale(
                READ_EXTERNAL_STORAGE)) {


        }
        requestPermissions(new String[]{READ_EXTERNAL_STORAGE},STROAGE_PERMISSIONS_REQUEST);
    }
}

@Override
public void onRequestPermissionsResult(int requestCode,
                                       @NonNull String permissions[],
                                       @NonNull int[] grantResults) {
    // Make sure it's our original READ_CONTACTS request
    if (requestCode == CAMERA_PERMISSIONS_REQUEST) if (grantResults.length == 1 &&
            grantResults[0] == PackageManager.PERMISSION_GRANTED) {
        Toast.makeText(this, "Camera permission granted", Toast.LENGTH_SHORT).show();
    }
    else if (requestCode == STROAGE_PERMISSIONS_REQUEST) if (grantResults.length == 2 &&
            grantResults[0] == PackageManager.PERMISSION_GRANTED) {
        Toast.makeText(this, "Read Contacts permission granted", Toast.LENGTH_SHORT).show();
    }
    }

最佳答案

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

关于android - 如何在 Android Marshmallow 中同时请求多个权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38582470/

相关文章:

java - Android - 错误 : Cannot Find Symbol public Toolbar_NavigationOnClickEventDispatcher (android. support.v7.widget.Toolbar p0) 抛出 java.lang.Throwable

关闭蓝牙并重新打开后,Android 6.0 将不再连接到 BLE 设备

android - 更新app的targetSdkVersion时更新library module的targetSdkVersion

Android READ_PHONE_STATE 运行时权限要求调用和管理电话

android - 为 Android M 权限对话框提供自定义文本

android - 支持所有 Android 设备需要哪些布局文件夹?

android - 使用 JUnit 对 SparseArray 进行单元测试(使用 JVM)

android - 从 list 中删除后,应用权限显示在应用设置中

android - java.net.SocketException 权限被拒绝

android - 在 android marshmallow 中拉起时显示一半的 Activity 并展开