android - 询问多个权限 Android

标签 android permissions

我正在修改现有的面部跟踪器应用 Android 的面部识别示例项目。我在请求多个永久权限时遇到问题。下面的方法是现有方法的修改版本,它成功地创建了一个弹出窗口来请求相机权限。我正在尝试使用存储权限复制它,但到目前为止我一直没有成功,我不确定这里需要更改什么。

 private void requestAllPermissions() {
    Log.w(TAG, "Camera + Storage permissions are not granted. Requesting permissions");

    final String[] permissions = new String[]{Manifest.permission.CAMERA};
    final String[] permissions2 = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE};


    if (!ActivityCompat.shouldShowRequestPermissionRationale(this,
            Manifest.permission.CAMERA)) {
        ActivityCompat.requestPermissions(this, permissions, RC_HANDLE_CAMERA_PERM);
        return;
    }

    //new
    if (!ActivityCompat.shouldShowRequestPermissionRationale(this,
            Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
        ActivityCompat.requestPermissions(this, permissions2, RC_HANDLE_STORAGE_PERM);
        return;
    }


    final Activity thisActivity = this;

    View.OnClickListener listener = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            ActivityCompat.requestPermissions(thisActivity, permissions,
                    RC_HANDLE_CAMERA_PERM);
        }
    };

    View.OnClickListener listener2 = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            ActivityCompat.requestPermissions(thisActivity, permissions2,
                    RC_HANDLE_STORAGE_PERM);
        }
    };

    Snackbar.make(mGraphicOverlay, R.string.permission_camera_rationale,
            Snackbar.LENGTH_INDEFINITE)
            .setAction(R.string.ok, listener)
            .show();

    Snackbar.make(mGraphicOverlay, R.string.permission_storage_rationale,
            Snackbar.LENGTH_INDEFINITE)
            .setAction(R.string.ok, listener2)
            .show();
}

最佳答案

如果你想在一个对话框中询问所有权限,你应该只有一个字符串数组,如下所示:

int ALL_PERMISSIONS = 101;

final String[] permissions = new String[]{Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE};

ActivityCompat.requestPermissions(this, permissions, ALL_PERMISSIONS);

关于android - 询问多个权限 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45467618/

相关文章:

java - Android Studio 如果字段为空

java - 如何在用户编辑后获取 EditText 的值?

java - 操作 Java/Android color int 的 alpha 字节

android - 元视口(viewport)在 Android 手机上正常工作?

android - 无法更改文件/文件夹权限(尝试过 Root Explorer Pro、ES 文件资源管理器)

php - 使用机器人向 Slack 发布消息

java - 向 java 类添加 2 个实现?

linux - 如何在汇编 Linux x86 中使用 chmod()?

.net - 如何访问由 NETWORK SERVICE 帐户创建的私有(private) MSMQ 队列?

php - Symfony3 : Warning:copy([. ..]Entity/User.php~): 权限被拒绝