android - 如果只有一个意图,如何防止 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;
}
如果用户拒绝相机和图库的权限,我希望提示显示一个只有一个选项的选择器 - “删除图像”。
解决方案
但这不是它的工作方式。在您的情况下,如果您知道用户没有授予相机或画廊的权限,您可以只显示您自己的对话框,询问用户是否要删除图像。
推荐阅读
- javascript - 在第 7 个子实时数据库“转换”为 json 数组之后
- python - train.py 文件中没有名为“tensorflow.contrib”的模块
- python - Python - 通过 Google Sheet API 创建和发布 Google Sheet 到网站
- vue.js - Nativescript-Vue:加载 Vuex 时出现“tns 预览”错误?
- mysql - MySQL 在一个非常简单的查询上非常慢
- r - 如何将曲线拟合到R中的数据
- python - 如何从 pyhton 中的 __init__ 方法传递值,因为它不返回任何值
- mongodb - 比较在 Mongodb 中存储为字符串的整数
- postgresql - 从集群外的应用程序访问 kubernetes 中的 postgres
- ruby-on-rails - Carrierwave:使用空格而不是下划线