2014-10-08 67 views
0

android文檔向您展示瞭如何捕捉圖像並保存到EXTERNAL存儲中,但即使用戶沒有SD卡,我也希望我的應用程序能夠正常工作。 我只需要暫時保存文件,直到我上傳它。不需要SD卡即可拍照

所以我創建了一個文件,這樣,通過意圖通過URI的相機應用:

File imgfile = new File(getFilesDir(), imageFileName); 
imgfile.setReadable(true, false); 
imgfile.createNewFile(); 

Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(imgFile)); 
startActivityForResult(captureIntent, IMAGE_PICKER_TAKE); 

但我拍照,並擊中後確定,相機應用從未返回到我的應用程序。我猜這是因爲它無法訪問我傳遞給它的文件,因爲它在getFilesDir()返回的目錄中,我認爲它不應該被其他應用程序讀取。我試過設置setReadable(),但它沒有修復它。我可以使用內部存儲器中是否有另一個目錄?

*或者我可以告訴相機應用程序將圖片保存在自己的文件目錄中,並向我傳遞一個URI,我可以使用contentResolver讀取URI(我選擇圖片時的方式從畫廊)。 *

+1

外部存儲與可移動SD卡無關。今天不是。 getFilesDir()是內部專用內存,不可訪問其他aps。只要去使用外部文件目錄。 – greenapps 2014-10-08 18:57:07

+0

@greenapps因此,即使用戶沒有SD卡,他們也可以使用外部存儲器嗎? – Siavash 2014-10-08 20:04:19

+0

正確。是。確實。 – greenapps 2014-10-08 21:07:11

回答

1

外部存儲與可移動SD卡無關。今天不是。 getFilesDir()是內部專用內存,不可訪問其他aps。只要去使用外部文件目錄。