【问题标题】:Confused: context.getExternalFilesDir vs. Environment.getExternalStorageState();困惑:context.getExternalFilesDir vs. Environment.getExternalStorageState();
【发布时间】:2013-08-03 04:18:50
【问题描述】:

我正在各种模拟设备上使用 Android Studio 进行开发。

Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())

在我选择在模拟设备上模拟 SD 卡之前总是返回 false。

http://developer.android.com/training/basics/data-storage/files.html 的文档明确指出

“总是有两个存储空间,无论外部存储是否可移动,API 行为都是相同的。”

这似乎表明外部存储不必指实际的 SD 卡,可以是内部存储。因此,为什么我需要将模拟 SD 卡的大小设置为大于零才能使该代码正常工作?我有什么误解或遗漏?

另外,context.getExternalFilesDir 是否引用与 Environment.getExternalStorageState 相同的目录标志?

谢谢,

托尼

【问题讨论】:

    标签: android file-permissions file-handling


    【解决方案1】:

    您需要选择模拟 SD 卡以指示您有关联的外部存储的模拟器。你说的没错,外部存储可以是可移动存储介质(如 SD 卡)或内部(不可移动)存储。

    是的,context.getExternalFilesDir 根据文档返回外部文件系统上目录的绝对路径,因此引用与 Environment.getExternalStorageState 相同的目录标志

    【讨论】:

    • 听起来我不能指望外部存储总是可用。例如,如果有人安装然后移除了 SD 卡,则操作系统将不会有一些内置存储可用作外部存储。是否有总是一些“外部”存储可用,即使在没有 SD 卡或已移除 SD 卡的情况下也是如此?再次感谢 -
    • @Pradeep,我在物理设备上运行它。尝试编写逻辑代码以判断外部 SD 卡是否可用于将文件下载到或是否需要切换到内部。我认为 getExternalStorageState 可用于确定外部 SD 卡是否存在。我错过了什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    相关资源
    最近更新 更多