【发布时间】:2018-10-03 11:12:32
【问题描述】:
对于以前的手机 (Android 4.0),我编写了一个应用程序,它使用我使用 USB 电缆从 PC 复制到 SD 卡的数据文件。该应用程序使用 Environment.getExternalStorageDirectory() 来检索文件,正如许多网站所建议的那样。
在装有 Android 7.0 的手机上,此应用不再工作。 Environment.getExternalStorageDirectory() 返回映射到 internal 存储的“storage/emulated/0/”。我尝试了 getExternalStoragePublicDirectory,但这引用了相同的位置。
所以我尝试了一个硬编码的“/sdcard”。这也没有引用 SD 卡。在从应用程序将测试文件写入该位置时,我在内部存储中使用 File Commander 应用程序找到了该文件,但在内部存储或使用 PC 上的 Windows 资源管理器的 SD 卡上找不到该文件,因此它我不清楚它到底在哪里。在我的网络搜索中,我看到了对 /sdcard0 和 /sdcard1 的引用,但测试它们发现我的手机上两者都不存在。
因此,我的主要问题是:鉴于 getExternalStorageDirectory() 不提供此功能,我如何在 Android 7.0 及更高版本中获取 SD 卡的根目录?
还有一个附属问题:getExternalStorageDirectory() 函数没有获取外部存储目录的意义何在?
【问题讨论】:
-
getExternalStorageState 返回什么?
-
what is the point of a getExternalStorageDirectory() function which does not get the external storage directory?好吧,因为内置存储就是这样调用的。您更需要可移动存储。