Android System.getenv(“辅助存储”)在某些设备上返回null

Android System.getenv(“辅助存储”)在某些设备上返回null,android,storage,external,Android,Storage,External,我正在尝试获取android设备上的外部存储列表,在一些设备中,还有指令System.getenv(“SECONDARY_STORAGE”)返回null 我正在使用解决方案来实现这一点,效果很好,但在某些设备中,我遇到了这个问题 有人知道在什么情况下,System.getenv(“辅助存储”)可以返回null 非常感谢我的实验, 当您调用System.getenv(“辅助存储”)时,一些旧的HTC设备将返回null 我发现这种设备中的实际microSD路径是安装在 /storage/sdcard

我正在尝试获取android设备上的外部存储列表,在一些设备中,还有指令
System.getenv(“SECONDARY_STORAGE”)返回
null

我正在使用解决方案来实现这一点,效果很好,但在某些设备中,我遇到了这个问题

有人知道在什么情况下,
System.getenv(“辅助存储”)
可以返回
null

非常感谢我的实验, 当您调用
System.getenv(“辅助存储”)时,一些旧的HTC设备将返回null

我发现这种设备中的实际microSD路径是安装在

/storage/sdcard0/ext_sd/

/sdcard2/

/mnt/sdcard/ext_sd/
由于外部存储环境变量由手机制造商定义。 我们没有一个API来精确获取microSD路径。

这里是解决方案。 试试看

首先获取列表中的所有文件

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;
}

感谢您提供这段代码片段,它可能会提供一些即时帮助。通过说明为什么这是一个很好的解决问题的方法,正确地解释它的教育价值,并将使它对未来有类似但不完全相同问题的读者更有用。请在回答中添加解释,并说明适用的限制和假设。