【问题标题】:Downloaded Images are not showing in Gallery, Android Nougat下载的图像未显示在库中,Android Nougat
【发布时间】: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


【解决方案1】:

".jpg" 不是图像的有效 MIME 类型。

使用 mime 类型数组

new String[]{"image/jpeg", "image/png"}

而不是

new String[]{".jpg"}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-09
    • 1970-01-01
    • 2017-11-23
    • 2017-07-30
    • 2018-08-20
    • 1970-01-01
    • 2019-02-17
    • 1970-01-01
    相关资源
    最近更新 更多