我试图让Android设备和一些设备指令外部存储器的名单System.getenv("SECONDARY_STORAGE");
返回null
虽然SD卡被安装在所述装置(4.1.1)。
我使用的是Dimitriy解决方案来做到这一点,工作正常,但在一些设备中,我有这个问题。
有人知道在什么情况下System.getenv("SECONDARY_STORAGE")
可以返回null
?
非常感谢
我试图让Android设备和一些设备指令外部存储器的名单System.getenv("SECONDARY_STORAGE");
返回null
虽然SD卡被安装在所述装置(4.1.1)。
我使用的是Dimitriy解决方案来做到这一点,工作正常,但在一些设备中,我有这个问题。
有人知道在什么情况下System.getenv("SECONDARY_STORAGE")
可以返回null
?
非常感谢
在我的实验中,一些旧的HTC设备将返回空当你调用System.getenv("SECONDARY_STORAGE")
我发现,在这样的装置的实际的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;
}