System.getenv(“SECONDARY_STORAGE”)返回某些设备上的空(System

2019-10-21 05:25发布

我试图让Android设备和一些设备指令外部存储器的名单System.getenv("SECONDARY_STORAGE"); 返回null虽然SD卡被安装在所述装置(4.1.1)。

我使用的是Dimitriy解决方案来做到这一点,工作正常,但在一些设备中,我有这个问题。

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

非常感谢

Answer 1:

在我的实验中,一些旧的HTC设备将返回空当你调用System.getenv("SECONDARY_STORAGE")

我发现,在这样的装置的实际的microSD路径被安装在

/storage/sdcard0/ext_sd/

/sdcard2/

/mnt/sdcard/ext_sd/

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



Answer 2:

这里是解决方案。 试试吧...

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

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


文章来源: System.getenv(“SECONDARY_STORAGE”) return null on some devices