我正在开发一个需要将文件写入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卡上。
答案 0 :(得分:2)
有没有办法返回这个实际的SD位置?
不,抱歉,不在当前的Android SDK中。
我看到相机和其他应用程序已经找到了一种方法。
大多数情况下,它们要么是设备制造商编写的,要么是通过MediaStore
读取信息,而{{1}}应该为两个来源编制索引。
答案 1 :(得分:0)
如果您只想写入SD卡,请使用
File mySdCardPath = Environment.getExternalStorageDirectory();
File dir = new File (mySdCardPath.getAbsolutePath() + "/yourDirectoryName");