问题描述
我正在尝试找到一种方法(与 android kitkat 和 next 兼容)在 SD 卡上写入照片并使它们对图库应用可见.
I'm trying to found a way (compatible with android kitkat and next) to write photos on the SD Card and make them visible to the gallery app.
- 如果我使用 Environment.getExternalStoragePublicDirectory ,三星设备将返回内存中的路径 (/storage/emulated/0/... )
- 如果我使用 Context.getExternalFilesDirs ,有两个结果:第一个在内部存储上,第二个在 SD 卡上.好的,我可以在里面写,照片在SDCard上.但是我在 Galery 应用程序中看不到它 :'(
我曾尝试直接在/storage/externalSdCard/DCIM/上写入,但当然不能,因为我正在运行 kitkat.
I have tried to write directly on /storage/externalSdCard/DCIM/ but of course I can't since I'm running kitkat.
推荐答案
首先,当您完成写入文件后,调用 flush()
,然后是 getFD().sync()
,然后是 close()
,都在你的 FileOutputStream
上.
First, when you are done writing to the file, call flush()
, then getFD().sync()
, then close()
, all on your FileOutputStream
.
然后,使用 MediaScannerConnection
及其 scanFile()
方法来获取由 MediaStore
索引的新写入的文件.
Then, use MediaScannerConnection
and its scanFile()
method to get the newly-written file indexed by the MediaStore
.
这篇关于Android:在 SD 卡上写入可在图库中查看的照片文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!