我使用以下方法设置我的工作目录
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,但它没有成功。
答案 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();
}