我正在開發一個需要直接訪問sdcard的根文件夾的應用程序,但是它似乎在Android 4.2中,標準/ sdcard目錄現在指向特定於用戶的「模擬」sdcard運行應用程序。這不太好,因爲我的應用程序需要訪問存儲在SD卡頂層的文件。有誰知道如何直接訪問Android 4.2中的SD卡?Android 4.2中的訪問/ sdcard
回答
您可以使用存儲目錄作爲文件類型嗎? (java.io.File
)
如果是這樣,你可以得到外部存儲(通常是SD卡,但將在沒有SD卡的手機主存儲)的使用如下代碼在你的方法:
File path = Environment.getExternalStorageDirectory();
此外,存儲訪問權限需要Android Manifest中的READ_EXTERNAL_STORAGE
權限 - 如果修改了任何數據,則需要WRITE_EXTERNAL_STORAGE
。下面是這些權限因爲它們將出現在清單:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
來源:
http://developer.android.com/reference/android/os/Environment.html http://developer.android.com/reference/android/Manifest.permission.html
這就是我目前使用的,但問題是,在Android 4.2中,它不是重定向到/ sdcard(ExternalStorageDirectory)分區的實際根目錄,而是重定向到/ sdcard(ExternalStorageDirectory)分區上的特定用戶特定位置。 – Drew
啊,我明白了 - 對不起,我誤解了你的問題。 – Alex6642122
也許我誤解你的問題,但是,我的Nexus銀河運行的是Android 4.2.1我可以使用Environment.getExternalStorageDirectory()
訪問我的SD卡。返回的目錄是/storage/emulated/0
,但內容是/sdcard
。
有一些關於存儲的文檔,但對於4.4 source.android.com/devices/tech/storage/config-example.html和doubleencore.com/2014/03/android-external-storage – pevik
- 1. 如何在android ..中使用WebView中的Javascript LocalFileSystem訪問SDCARD?
- 2. 驗證和訪問Micro SDCARD
- 3. 如何在Android設備上訪問Unity中的SDCard路徑?
- 4. 訪問android,sdcard或系統分區中的文件更快嗎?
- 5. SDCARD發行在4.1或4.2果凍豆
- 6. kindle sdcard訪問,而usb調試
- 7. Android SdCard檢測問題
- 8. Android- SDCard
- 9. Cordova:在Android上的sdcard訪問不起作用
- 10. 在Android中寫入SDCARD問題?
- 11. 訪問Android 4.2設備中的「設備名稱」
- 12. Android中的Sdcard分區
- 13. 通過電腦瀏覽器訪問android手機sdcard
- 14. Android-意向SDCARD
- 15. android intent for sdcard ready
- 16. 圖像,sdcard,android
- 17. 在Android 4.1和4.2中的DatePicker問題
- 18. 在本地代碼中訪問sdcard位置(或getExternalStorageDirectory)
- 19. 爲什麼sdcard legacy getCanonicalPath在Android 4.2操作系統中不能模擬/ 0?
- 20. 在SDCard上寫入問題 - Android
- 21. 在Android中檢測Sdcard?
- 22. 從Android SDCard製作SmbFile
- 23. Android sdcard文件權限
- 24. 如何訪問通過JavaScript點擊一個HTML鏈接的SDcard ..?
- 25. android telephony(api 17/android 4.2)問題
- 26. 如何以編程方式訪問iphone存儲卡(SDcard)
- 27. 錯誤!錯誤的Android API版本:4.2,與羅茨運行Android 4.2的問題
- 28. xcode 4.2無法訪問版本庫
- 29. 麻煩與Laravel訪問DB 4.2
- 30. Android模擬器中的外部SDCard
這是一個實際的可移動SD卡?在我見過的4.x設備上,實際上沒有SD卡,只是模擬了內部存儲卷中的一個,所以目標將毫無意義。如果有物理卡,您可以使用adb shell的'mount'命令來查看它的處理方式。 –
你似乎是誤會。總是有一個/ sdcard分區,即使它是虛擬的。但是隨着4.2更新,/ sdcard的處理完全不同。訪問sdcard分區(在代碼中)不再指向* real */sdcard,它指向您的sdcard的虛擬「分區」,該分區是當前用戶特有的。 請記住,我正在開發的應用程序在低於4.2的Android版本上工作得很好,無論設備如何。 – Drew
Koushik Dutta(ROM Manager的開發者)看到這篇文章,他抱怨同一個問題。 https://plus.google.com/103583939320326217147/posts/D7mZBjTJj5j – Drew