gpt4 book ai didi

java - Environment.getExternalStorageDirectory() 返回 null

转载 作者:行者123 更新时间:2023-11-30 10:26:43 29 4
gpt4 key购买 nike

我正在尝试获取 Android 设备的内部存储路径。

由于大多数设备延迟关闭使用 Environment.getExternalStorageDirectory().getPath(); 返回内部存储路径,所以我使用它来获取路径。

一切正常,除了当我从非 Activity 类调用 Environment.getExternalStorageDirectory().getPath(); 时它返回 null 而如果我从 Activity 类调用它返回正确的路径。

我尝试搜索其他帖子,但找不到任何有用的东西。

如有任何帮助,我们将不胜感激。

编辑:

if(getExtSdCardPath(con)!=null)
{ path=getExtSdCardPath(con);

if(new File(path).getPath().equal(Environment.getExternalStorageDirectory().getPath())) // This line give null "Null Pointer exception"
{
return null;
}
return path;
}

我正在检查 SD 卡路径是否与 Environment.getExternalStorageDirectory().getPath() 返回的路径相同

最佳答案

理想情况下,getExtSdCardPath()将是“幂等的”,这是一种奇特的说法,“无论调用多少次,都做同样的工作并返回同样的东西”。

您的情况并非如此。第一次调用getExtSdCardPath()正在返回您想要的值,第二次调用 getExtSdCardPath()正在返回 null .

在您的情况下,没有特别需要调用 getExtSdCardPath()两次,因此您可以通过重写代码来解决幂等性问题:

path=getExtSdCardPath(con);
if(path!=null)
{
if(new File(path).getPath().equal(Environment.getExternalStorageDirectory().getPath())) // This line give null "Null Pointer exception"
{
return null;
}
return path;
}

关于java - Environment.getExternalStorageDirectory() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45574940/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com