2013-04-17 30 views
1

鏈接到的解決方案/解決方法,在問題無法看到PC上通過getExternalStoragePublicDirectory保存的圖片

的底部我用Android tutorial寫代碼通過意圖打開的Nexus 7相機和拍照。它拒絕正常工作,除非我改變了文件對象的初始化代碼

File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_PICTURES), "MyCameraApp");

File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_PICTURES) + File.separator +"MyCameraApp");

而且當時intent.getData()仍然是空當onActivityResult被調用。回到手邊的問題:我可以在平板電腦本身上看到保存的圖像瀏覽,但不能在通過USB在PC上瀏覽時瀏覽。

我在做什麼錯?我認爲使用getExternalStoragePublicDirectory製作的文件完全可以訪問。我的代碼可能有其他問題嗎?我需要以某種方式「告訴」股票相機應用程序將其保存爲MODE_WORLD_READABLE或沿着這些線?

花費時間和小時試圖讓這個工作正常 - 任何幫助將不勝感激!

我可以發佈我的代碼的其餘部分,如果它會幫助 - 它幾乎相同於Android tutorial雖然。

編輯:這是一個已知的問題關係造成7和4見第二鏈路解決方案

Saving files on external storage on Nexus 7 and retrieving from PC

Nexus 4 not showing files via MTP

回答

0

我做類似的事情是這樣的:

File photo = new File(Environment.getExternalStorageDirectory(), 
       "filename.jpg"); 
     mImageUri = Uri.fromFile(photo); 
     Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE) 
       .putExtra(MediaStore.EXTRA_OUTPUT, mImageUri); 
     startActivityForResult(intent, REQUEST_CODE_TAKE_PHOTO); 

並從終端(或cmd)拍攝並保存照片後:

亞行拉/mnt/storage/sdcard/filename.jpg C:\文件夾

,並從C測試結果的照片:\文件夾中。您可以使用Log或調試器來監控設備上的mImageUri地址。

PS:不要忘記權限about permissions

+0

Hmmmm .....它會是不錯的,其不需要不必做最終用戶的解決方案這一切 - 他們不得不安裝adb在他們的個人電腦上?應該已經明確表示,應用程序將用於非技術用戶,我猜。 (我根據教程設置了權限)當你說使用eclipse來監視mImageUri地址是否意味着我可以通過Windows資源管理器找到該文件? – nme32

+0

我剛纔已經證明你可以從設備上訪問圖片,並且filename.jpg必須出現在設備存儲器上,所以你可以通過Windows資源管理器給它或者像這樣。另一個問題,如果你找不到該文件的存儲,所以日食或其他IDE(我使用IDEA)調試器可以幫助找到它(只監視mImageUri變量)。 – ADK

+1

我可以在'/ sdcard/Pictures/MyCameraApp'中使用'adb shell'找到保存的圖像,但是在Windows資源管理器'Nexus 7 \ Internal storage \ Pictures \ MyCameraApp'中是空的。只有'Nexus 7'在安裝設備的根級(通過USB)可見。如果我可以讓照片以某種方式保存到「內部存儲」中......我認爲這可能是Nexus 7特有的問題,因爲它沒有SD卡插槽。 – nme32