如果只有一个intent,如何防止Intent.createChooser自动使用Intent?

时间:2019-08-28 12:08:57

标签: android android-studio android-intent android-camera-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;

        }

如果用户拒绝同时使用相机和图库的权限,我希望提示仅显示一个选择器,即“删除图像”。

1 个答案:

答案 0 :(得分:0)

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