System.getenv(" SECONDARY_STORAGE")在某些设备上返回null

时间:2014-10-30 11:40:24

标签: android storage external

我正在尝试在Android设备上获取外部存储列表,并且在某些设备中,指令System.getenv("SECONDARY_STORAGE");返回null,尽管SD卡已安装在设备中(4.1.1)。

我正在使用Dimitriy解决方案来做到这一点并且工作正常,但在某些设备中我遇到了这个问题。

有人知道System.getenv("SECONDARY_STORAGE")在什么情况下可以返回null

非常感谢

2 个答案:

答案 0 :(得分:4)

在我的实验中, 当您致电System.getenv("SECONDARY_STORAGE")

时,一些旧的HTC设备将返回null

我发现这些设备中的实际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;
}