将文件写入SD卡而不是USB存储

时间:2012-04-13 23:08:04

标签: android

我正在开发一个需要将文件写入SD卡的应用程序。我正在使用GetExternalStoragePublicDirectory()来确定要写入的目录。

我正在开发两款手机。在谷歌Nexus S上,运行Android 4.0.4(冰淇淋三明治),它将返回SD卡上的目录。但是,在运行Android 2.3.5的Samsung Exhibit 2上,它直接写入手机上的USB存储设备。

有没有办法强行使用SD卡?

编辑:

我发现getExternalStoragePublicDirectory()和getExternalStorageDirectory()总是返回“/ mnt / sdcard /”。这实际上不是SD卡的安装位置。在Samsung Exhibit 2上,这是USB存储位置。卡安装位置是“/ mnt / sdcard / external_sd”。有没有办法返回这个实际的SD位置?

我看到相机和其他应用程序找到了一种方法。相机应用程序具有“存储”设置,可选择“手机”和“存储卡”。如果指定了“存储卡”,则图像实际存储在SD卡上。

2 个答案:

答案 0 :(得分:2)

  

有没有办法返回这个实际的SD位置?

不,抱歉,不在当前的Android SDK中。

  

我看到相机和其他应用程序已经找到了一种方法。

大多数情况下,它们要么是设备制造商编写的,要么是通过MediaStore读取信息,而{{1}}应该为两个来源编制索引。

答案 1 :(得分:0)

如果您只想写入SD卡,请使用

File mySdCardPath = Environment.getExternalStorageDirectory();
File dir = new File (mySdCardPath.getAbsolutePath() + "/yourDirectoryName");