保存到没有SD卡的设备

zac*_*ach 1 android android-sdcard

我的朋友和我正在尝试创建一个将文件保存到设备的应用程序.我们使用此代码写入外部SD卡,它在他的Droid X和三星Galaxy Tab上运行良好.

获取SD卡的路径:

private static final File ROOT = Environment.getExternalStorageDirectory();
Run Code Online (Sandbox Code Playgroud)

创建文件夹路径和文件:

FileWriter fw = new FileWriter(ROOT + "/test/" + "time_frames.txt");
Run Code Online (Sandbox Code Playgroud)

我们正在使用文档工厂来创建文档

所以你可以看到我们创建路径然后尝试保存到刚刚创建的路径

File file = new File(ROOT + "/test/" + "time_frames.txt");
Run Code Online (Sandbox Code Playgroud)

当我在我的Nexus S(没有SD卡)上运行它时,使用完全相同的代码时遇到问题.

private static final File ROOTtest = Environment.getExternalStorageDirectory();
Run Code Online (Sandbox Code Playgroud)

这返回/数据

private static final File ROOT = Environment.getRootDirectory();
Run Code Online (Sandbox Code Playgroud)

这会返回/ mnt/sdcard

private static final File intData = Environment.getDataDirectory();
Run Code Online (Sandbox Code Playgroud)

这返回/系统

我的问题是哪一个适用于具有SD卡且没有SD卡的设备?我已经尝试了很多,但尝试所有这些东西真的让我很困惑.提前致谢

Nik*_*kov 6

Environment.getExternalStorageDirectory()返回外部存储的路径,它应该适用于所有设备.他们是否有实际的SD卡并不重要,您的代码也不应该关心.在尝试使用外部存储之前,您需要确保它是可用的,因为它可以随时卸载.

  • 我有同样的问题,这个答案根本没有回答这个问题 (2认同)