【发布时间】:2017-10-05 14:08:38
【问题描述】:
我正在开发一个应用程序,我正在下载图像并将它们存储到内部存储中。在 Nougat 安装设备上的图库中显示下载的图像时面临问题。
if (Build.VERSION.SDK_INT >= 14)
{
Log.e("-->", " >= 14");
MediaScannerConnection.scanFile(getApplicationContext(), new String[]{event.getFilePath()}, new String[]{".jpg"}, new MediaScannerConnection.OnScanCompletedListener() {
/*
* (non-Javadoc)
* @see android.media.MediaScannerConnection.OnScanCompletedListener#onScanCompleted(java.lang.String, android.net.Uri)
*/
public void onScanCompleted(String path, Uri uri) {
Log.e("ExternalStorage", "Scanned " + path + ":");
Log.e("ExternalStorage", "-> uri=" + uri);
}
});
} else
{
Log.e("-->", " < 14");
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
Uri.parse("file://" + Environment.getExternalStorageDirectory())));
}
}
public static File getStorageFolder(){
return new File(Environment.getExternalStoragePublicDirectory
(Environment.DIRECTORY_DCIM),"Camera");
}
注意:仅在 Nougat 设备上出现问题
我们将不胜感激,
谢谢
【问题讨论】:
-
你有外部存储的权限吗?
-
.jpg不是 MIME 类型。除此之外,getFilePath()究竟指向哪里?如果您的文件位于internal storage,其他应用程序(包括媒体扫描仪)将无法访问它。 -
我已经更新了有问题的方法细节
-
@Mike 我在清单中有外部存储权限。
-
尝试把 MediaScannerConnection.scanFile(context, new String[]{yourFile}, null, null); (yourFile 是一个文件对象) 下载图片后
标签: android android-7.0-nougat