java - 使用 Intent.ACTION_GET_CONTENT 时如何不显示空的 0 B 文件?
问题描述
在我的应用程序中,我需要从存储中挑选图像并将它们显示在屏幕上。我正在使用 Intent 为我做这件事。我已经在下面发布了我的代码来执行此操作。
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
try {
startActivityForResult(
Intent.createChooser(intent, "Select a File to Upload"),
FILE_SELECT_CODE);
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(this, "Please install a File Manager.",
Toast.LENGTH_SHORT).show();
}
问题是,当意图打开时,我看到一堆大小为 0 B 的空文件。这些文件在我手机上的文件管理器工具中不可见(我正在测试我的应用程序)。有什么办法可以解决这个问题——要么删除那些空文件,要么让意图忽略它们?
注意:我不知道这是否有帮助,但上面的图像是由我的应用程序生成的,它使用相机来捕获和保存图像,然后通过文件选择器将它们加载回来。带有预览的图像在文件管理器中是可见的并且不是 0 B,但其他的都是不可见的。
编辑:这是我用来使用相机捕获图像并保存它们的代码。
public void captureImageAction()
{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (checkSelfPermission(Manifest.permission.CAMERA) == PackageManager.PERMISSION_DENIED ||
checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED) {
String[] permission = {Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE};
requestPermissions(permission, PERMISSION_CODE);
} else {
openCamera();
}
} else {
openCamera();
}
}
private void openCamera() {
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, "New Picture");
values.put(MediaStore.Images.Media.DESCRIPTION, "From Camera");
image_uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, image_uri);
int IMAGE_CAPTURE_CODE = 1001;
startActivityForResult(cameraIntent, IMAGE_CAPTURE_CODE);
}
解决方案
推荐阅读
- time-complexity - 涉及两个 for 循环的算法的时间复杂度
- python - 计算一个字符的频率,直到引入一个新字符 - python
- r - 扩展 data.table 的一列,使其在相对于另一列分组时包含 1-50 的所有整数
- python - 导入 tensorflow 失败,不应直接创建描述符
- c++ - 如果最高有效字节的最高有效位为 1,则样本为负
- android - 如何设置闹钟在每个月的最后一天响起?
- ssl - 我应该在 Google Cloud 上为 Kubernetes 使用 Ingress 还是 LoadBalancer(带有自定义域和 SSL 证书)?
- python - 切片和赋值
- php - Laravel 8:无法更改 laravel 身份验证重定向
- r - Tibbles vs 矩阵