2013年9月28日 星期六

Android 存圖片(照片)到手機或 SDCard 時不會馬上顯示在相簿

最近在寫APP的時候發現當我要存一個螢幕截圖,或是額外存圖片檔到手機的SDCard的時候,存完的第一時間沒辦法在手機的相簿中或任何位置找到這張圖片(就算你已經指定資料夾),一定要重開機才會找到那張圖片,經過我Search了好久終於找到了原因!!!!

首先先建立下面這個Java檔吧:

  1. import java.io.File;
  2. import android.content.Context;
  3. import android.media.MediaScannerConnection;
  4. import android.media.MediaScannerConnection.MediaScannerConnectionClient;
  5. import android.net.Uri;

  6. public class SingleMediaScanner implements MediaScannerConnectionClient {
  7.     privateMediaScannerConnection mMSC;
  8.     privateFile mFile;

  9.     public SingleMediaScanner(Context context, File f) {
  10.         mFile = f;
  11.         mMSC =newMediaScannerConnection(context, this);
  12.         mMSC.connect();
  13.     }

  14.     @Override
  15.     public void onMediaScannerConnected() {
  16.         mMSC.scanFile(mFile.getAbsolutePath(), null);
  17.     }

  18.     @Override
  19.     public void onScanCompleted(String path, Uri uri) {
  20.         mMSC.disconnect();
  21.     }
  22. }

接下來做連結就使用下面這行:
SingleMediaScanner test = new SingleMediaScanner(this, file) ;  
(this是個Context,file要自行先設定好路徑...等等)

就可以將所存的額外檔案馬上顯示在相簿中啦!!!

沒有留言:

張貼留言