首页 > 解决方案 > 如果只有一个意图,如何防止 Intent.createChooser 自动使用 Intent?

问题描述

我正在尝试创建一个用于编辑“个人资料图片”的意图选择器,具有以下选项:1. 相机 2. 图库 3. 删除图像

根据用户提供的权限,我将 cameraIntent 和 galleryIntent 添加到我添加到选择器的意图列表中。但是,如果用户同时拒绝相机和画廊权限,选择器会自动退回到选项 3,删除图像,这不是我想要的。

    public Intent getImageChooserIntent(){
            Intent galleryIntent = getGalleryIntent();
            Intent cameraIntent = getCameraIntent();
            Intent imageSourceChooser = Intent.createChooser(new Intent(), "Select Source");
            List<Intent> intentList = new ArrayList<>();
            if (galleryIntent != null) {
                intentList.add(galleryIntent);
            }
            if (cameraIntent != null) {
                intentList.add(cameraIntent);
            }

            intentList.add(new Intent(context, DeleteImageActivity.class));
            imageSourceChooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentList.toArray(new Intent[0]));
            return imageSourceChooser;

        }

如果用户拒绝相机和图库的权限,我希望提示显示一个只有一个选项的选择器 - “删除图像”。

标签: androidandroid-studioandroid-intentandroid-camera-intent

解决方案


但这不是它的工作方式。在您的情况下,如果您知道用户没有授予相机或画廊的权限,您可以只显示您自己的对话框,询问用户是否要删除图像。


推荐阅读