我正在尝试在Android设备上获取外部存储列表,并且在某些设备中,指令System.getenv("SECONDARY_STORAGE");
返回null
,尽管SD卡已安装在设备中(4.1.1)。
我正在使用Dimitriy解决方案来做到这一点并且工作正常,但在某些设备中我遇到了这个问题。
有人知道System.getenv("SECONDARY_STORAGE")
在什么情况下可以返回null
?
非常感谢
答案 0 :(得分:4)
在我的实验中,
当您致电System.getenv("SECONDARY_STORAGE")
我发现这些设备中的实际microSD路径安装在
中/storage/sdcard0/ext_sd/
/sdcard2/
/mnt/sdcard/ext_sd/
由于外部存储环境变量是由手机制造商定义的。 我们没有API来准确获取microSD路径。
答案 1 :(得分:-1)
这是解决方案。 试试吧......
首先获取列表中的所有文件
var file=new Java.IO.File("storage/");
var listOfStorages=file.ListFiles();
var isSDPresent=false;
if(listOfStorages[1].Name.Containes("emulated")||listOfStorages[0].Name.Containes("-"))
{
isSDPresent=true;
}