2017-05-18 21 views
1

ディレクトリに画像を保存しようとすると...ディレクトリはMediaScannerConnectionによってスキャンされますが、画像はギャラリーに表示されません。助けが必要!!MediaScannerConnection sacnを使用してスキャンした後でも、画像がギャラリーに表示されない

public void saveItem() { 
     if (selectCount == 0) { 
      Toast.makeText(getActivity(), "Select at least one image", Toast.LENGTH_SHORT).show(); 
     } else { 
      Iterator iterator = selectedFile.iterator(); 
      while (iterator.hasNext()) { 

       gridFilePath = new File(iterator.next().toString()); 
       String destinationPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/myImages/"; 
       File destination = new File(destinationPath); 
       try { 
        FileUtils.copyFileToDirectory(gridFilePath, destination); 
        MediaScannerConnection.scanFile(getActivity(), new String[]{destinationPath}, 
          null, new MediaScannerConnection.MediaScannerConnectionClient() { 
           @Override 
           public void onMediaScannerConnected() { 

           } 

           @Override 
           public void onScanCompleted(String path, Uri uri) { 
            Log.d("Scan","Scanning Completed"); 
           } 
          } 

        ); 
        Log.d("Image Saved", "Saved"); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 

      Toast.makeText(getActivity(), "Pictures Saved", Toast.LENGTH_LONG).show(); 
     } 
    } 

答えて

1

私は、ファイルのMIMEタイプを追加し、私の問題を修正:

private void notifyNewFileToSystem(File file) { 
    String type = null; 
    String extension = MimeTypeMap.getFileExtensionFromUrl(file.getAbsolutePath()); 
    if (extension != null) { 
     type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension); 
    } 

    MediaScannerConnection.scanFile(getApplicationContext(), 
      new String[]{file.getAbsolutePath()}, 
      new String[]{type}, 
      (path, uri) -> { 
       Log.e(TAG, "Path: " + path); 
       Log.e(TAG, "Uri: " + uri); 
      } 
    ); 
} 

私は解決策がここにMIMEタイプを取得することが分かっ: https://stackoverflow.com/a/8591230/2077248

関連する問題