如何更改工作目录的默认位置?

时间:2016-02-06 19:41:55

标签: android memory local-storage

我使用以下方法设置我的工作目录

 File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "xxxxxx");

现在的问题是,如果手机有多个Sdcards,这给了我可变的位置。有时,它会自动将外部SD卡作为默认位置,但在某些手机(如三星)中,它总是将内部SdCard作为默认位置,即storage / sdcard0 / Pictures / xxxxxxx。 我想要的是storage / extsdcard / Pictures / xxxxxxx。但我不想硬编码这条路。而且,我听说在Kitkat版本中,不可能将文件放在外部Sdcard中。那么我如何处理这两个问题?

注意:我尝试将Samsung中的默认存储位置更改为外部SdCard,但它没有成功。

1 个答案:

答案 0 :(得分:0)

根据您的API要求,您尝试过使用此功能:

API等级8 +

Context.getExternalFilesDirs()

API等级7 -

Context.getExternalStorageDirectory();

问题可能是你在API 8或更高版本的设备(或模拟器)上运行它,然后你需要使用第一种方法。如果您的应用应该支持低于8的API,那么我建议您执行if then语句来检查这样的实际API版本:

if (Build.VERSION.SDK_INT >= 8) {
    Context.getExternalFilesDirs()
}else{
    Context.getExternalStorageDirectory();
}