System.getenv(“SECONDARY_STORAGE”)使用AVD返回null

时间:2016-01-06 21:49:23

标签: android

我在Windows 7上使用Android Studio 1.5。我创建了一个模拟Nexus_5_API_21的AVD。我指定了2 GB的SD卡。我已将文件复制到SD卡。为什么从System.getenv(“SECONDARY_STORAGE”)返回null?

我相信你现在必须意识到我是多么的绿色。这是一个额外的事实。此代码适用于带有SD卡上文件的真实手机。

2 个答案:

答案 0 :(得分:1)

尝试这样的事情:

String strSDCardPath = System.getenv("SECONDARY_STORAGE");
if ((null == strSDCardPath) || (strSDCardPath.length() == 0)) {
    strSDCardPath = System.getenv("EXTERNAL_SDCARD_STORAGE");
}

也读这个作为参考: http://pietromaggi.com/2014/10/19/finding-the-sdcard-path-on-android-devices/

答案 1 :(得分:0)

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

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

var file=new Java.IO.File("storage/");
var listOfStorages=file.ListFiles();

var isSDPresent=false;

if(listOfStorages[1].Name.Containes("emmulated")
||listOfStorages[0].Name.Containes("-") )
{
   isSDPresent=true;
}