我在Windows 7上使用Android Studio 1.5。我创建了一个模拟Nexus_5_API_21的AVD。我指定了2 GB的SD卡。我已将文件复制到SD卡。为什么从System.getenv(“SECONDARY_STORAGE”)返回null?
我相信你现在必须意识到我是多么的绿色。这是一个额外的事实。此代码适用于带有SD卡上文件的真实手机。
答案 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;
}