2012-07-20 76 views
0

我有一個問題。我從我自己的應用程序開始使用Photo-Intent構建內置PhotoApplication。圖片不會保存在三星Nexus

 String photoName = System.currentTimeMillis() + ".jpg"; 

     File file = new File(getFilesDir(),//Environment.getExternalStoragePublicDirectory(
       //Environment.DIRECTORY_DCIM), 
       photoName); // Anlegen der Datei im entsprechenden 
          // Verzeichnis 
     FileOutputStream fos = null; 
     try { 
      fos = openFileOutput(photoName, Context.MODE_WORLD_WRITEABLE); 
     } catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     try { 
      fos.close(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     outputFileUri = Uri.fromFile(file); 
     intentPhoto.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file)); 
     //startActivity(intentPhoto); 
     startActivityForResult(intentPhoto, TAKE_PICTURE); 

這是我的代碼來啓動活動。正如你所看到的,我做的第一件事是在目錄中設置文件,然後給出文件位置的意圖來存儲它。

但是我每次拍照時都不會保存到圖片目錄中。保存圖片的唯一方法是關閉手機並重新啓動。然後,我所拍的每張照片都在那裏。這發生在自上次更新至4.1.1以來。貝福我更新了手機,一切正常,但自更新後,我有這個問題。

有人可以幫我嗎?有沒有人有同樣的問題?

+0

澄清,當你說「三星Nexus」的意思是「Nexus S」或「Galaxy Nexus」?兩者都由三星製造。 – FoamyGuy 2012-07-20 14:12:38

+0

或Nexus平板電腦? – m0skit0 2012-07-20 14:45:13

+0

當您嘗試關閉文件時,是否有任何異常被拋出? IE瀏覽器。你看到任何堆棧跟蹤打印出來了嗎? – slayton 2012-07-20 14:46:13

回答

1

它工作正常,現在的問題是,我創建由我自己的文件,具有:

File file = new File(..); 

但你必須使用:

ContentValues values = new ContentValues(); 
values.put(MediaStore.Images.Media.TITLE, "IMG_"+ timeStamp+.jpg"); 

,放入意圖一次保存文件而不重新啓動手機。

4

確保爲您提供新的文件進行掃描:

MediaScannerConnection.scanFile(this, 
      new String[] { file.toString() }, null, 
      new MediaScannerConnection.OnScanCompletedListener() { 
     public void onScanCompleted(String path, Uri uri) { 
      // code to execute when scanning is complete 
     } 
}); 

您可以爲OnScanCompletedListener空參數傳遞,如果你不需要當掃描儀已經把它撿起來收到此類通知,但您可能希望至少在那裏放置日誌記錄。

相關問題