我们有一款可下载图片并将其存储在设备上的应用。图像已存储,但我们打开图库时无法看到我们的应用文件夹。这是我们用来创建目录的代码:
public File getDataFolder(Context context) {
File dataDir = null;
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
dataDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + File.separator + "MYAPPNAME");
if(!dataDir.isDirectory()) {
dataDir.mkdirs();
}
}
if(!dataDir.isDirectory()) {
dataDir = context.getFilesDir();
}
return dataDir;
}
我们也注意到,文件夹在Jelly bean中可见,但在KitKat +设备中不可见。为什么它在画廊中不可见? (文件为.jpg格式)
答案 0 :(得分:1)
您是否尝试过使用getExternalFilesDirs()?
使用getExternalFilesDirs()(注意复数)。如果返回多个条目,则第二个和后续条目位于可移动媒体上。您可以在Android 4.4上无需任何权限即可读取和写入的目录。
从这个答案https://stackoverflow.com/a/26006099/5837758。
如果重新启动后出现该文件夹,则需要将图像添加到图库中。从拍摄照片简单教程(http://developer.android.com/training/camera/photobasics.html):
timeoutModal = $modal({
templateUrl: 'components/common/timeout.html',
controller: 'TimeoutController as time',
backdrop: 'static',
prefixEvent: 'timeoutMessage',
show: false
});
答案 1 :(得分:0)
在Android Kitkat之前,第三方应用程序可以访问外部存储,但是来自Kitkat,此权限已被撤销。现在,您只能将数据存储在设备的内部存储器中。
答案 2 :(得分:0)
您必须在新文件上调用媒体扫描程序,该文件在图库中可见而不重新启动。在保存文件后调用媒体扫描程序。
只需几行代码即可。代码已经在本网站上发布。