android - 即使在 MediaScannerConnection.scanFile() 之后,存储在 getExternalFilesDir() 目录中的图像在电话库中也不可见
问题描述
我将用户捕获的图像保存在应用程序特定的外部目录中,getExternalFilesDir()
并希望该图像在用户库中也可见。根据文档,保存在这些目录中的任何媒体(在我的情况下为图像)对 MediaScanner 不直接可见,但我们仍然可以使用MediaScannerConnection.scanFile()
.
我遵循与上述相同的步骤,将图像保存在我明确调用MediaScannerConnection.scanFile()
但仍然没有任何反应的目录中后,图像存储在应用程序特定的外部目录中但在图库中不可见?
//getting app specific external directory
val mediaStorageDir = File(app.getExternalFilesDir(Environment.DIRECTORY_PICTURES))
val file = File("${mediaStorageDir.path}${File.separator}front_image.jpg")
//saving file
val bos = FileOutputStream(file)
val original = BitmapFactory.decodeByteArray(this, 0, size)
original.compress(Bitmap.CompressFormat.JPEG, 100, bos)
//after saving file
MediaScannerConnection.scanFile(context, arrayOf(file.absolutePath), null, null)
我正在测试 Android 版本:9 | 自定义操作系统:Funtouch OS_9.2 | 型号:vivo 1921
解决方案
是的 getExternalFilesDir() 是一个应用程序特定的目录。MediaStore 扫描仪不会索引它,因此图库应用程序不知道您的图像。这就是它的意图。——</p>
推荐阅读
- amazon-web-services - 限制 IP 访问的 S3 存储桶策略在 CloudFront 后面不起作用
- c++ - 为什么 sscanf 不处理或忽略 C++ 中的空格?
- python - Python:如何从 StaticMethod 调用 ClassMethod
- javascript - 选择第 n 个元素而不在 scss 中递归执行
- javascript - 为什么 axios.interceptors.request.use 不起作用?
- django - 在 Django 中用于自动完成的 Pycharm 插件
- python - 获取数据帧 pandas 中数据时间的索引
- flutter - 如何将参数传递给 Riverpod 中的 ChangeNotifierProvider?
- r - 如何在rmarkdown中使用输入框和动作按钮输出本地图形
- python - 登录页面上的 Django-LDAP 身份验证