我正在开发一个需要直接访问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