Android getExternalFilesDir()问题

Android getExternalFilesDir()问题,android,Android,因此,我正在开发的应用程序正在使用外部文件目录来存储一些下载的信息。我遇到的问题是,getExternalFilesDir()方法将返回null。我对该方法的理解可能有缺陷,但我的印象是,在两种不同的情况下,它将返回null: 1) 用户有SD卡插槽但未安装SD卡(或SD卡已安装但作为大容量存储选项插入计算机) 2) 应用程序实际上没有读/写权限 该应用程序具有读/写权限(必须具有读/写权限,因为它在大多数情况下都能工作),我正在使用以下代码检查第一种情况: if (Environment.ME

因此,我正在开发的应用程序正在使用外部文件目录来存储一些下载的信息。我遇到的问题是,getExternalFilesDir()方法将返回null。我对该方法的理解可能有缺陷,但我的印象是,在两种不同的情况下,它将返回null:

1) 用户有SD卡插槽但未安装SD卡(或SD卡已安装但作为大容量存储选项插入计算机)

2) 应用程序实际上没有读/写权限

该应用程序具有读/写权限(必须具有读/写权限,因为它在大多数情况下都能工作),我正在使用以下代码检查第一种情况:

if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))
            {
                editor.putBoolean(AUDIO_LOCATION_KEY, true);
                subPath = context.getExternalFilesDir(null).getPath();
            }
应用程序因getExternalFilesDir行出现空指针异常而崩溃。我无法重现这次坠机,我有什么遗漏吗?如果那张支票通过的话,我会保证我们能拿回一些东西。任何见解都将不胜感激


谢谢。

遇到此问题的设备有什么共同点吗?您正在使用的特定
上下文是什么?你做这项工作的时间安排是否有任何粗略的描述(例如,
上下文
是一项
活动
,并且你在
onCreate()
之前调用此代码)?似乎没有任何共性-所有不同的手机品牌。我使用的上下文是应用程序的开始活动。我将其作为self传递给类构造函数AudioCuedDownloadManager audioCueDlManager=AudioCuedDownloadManager.getInstance(this);其中“this”是应用程序的开始活动。这是在activities onCreate方法中调用的。“这是在activities onCreate方法中调用的”--在
super.onCreate()之后