android - 如何检查 Environment.DIRECTORY_DOCUMENTS 在 android 中为空

标签 android

我正在尝试按 if (Environment.DIRECTORY_DOCUMENTS == null) 运行检查,但是当我到达这一行时,我得到一个空指针异常。现在我知道我正在测试的设备上没有文档目录,所以它应该给我一个空值并移动到代码块中,但我希望它实际检查它。我只是给出了一个错误。

我的 logcat 显示:

03-18 11:11:24.667: E/AndroidRuntime(5183): FATAL EXCEPTION: main
03-18 11:11:24.667: E/AndroidRuntime(5183): java.lang.NoSuchFieldError: android.os.Environment.DIRECTORY_DOCUMENTS
 03-18 11:11:24.667: E/AndroidRuntime(5183):    at com.example.testapp.MainActivity$3.onClick(MainActivity.java:640)
03-18 11:11:24.667: E/AndroidRuntime(5183):     at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:168)
03-18 11:11:24.667: E/AndroidRuntime(5183):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-18 11:11:24.667: E/AndroidRuntime(5183):     at android.os.Looper.loop(Looper.java:137)
03-18 11:11:24.667: E/AndroidRuntime(5183):     at android.app.ActivityThread.main(ActivityThread.java:4514)
03-18 11:11:24.667: E/AndroidRuntime(5183):     at java.lang.reflect.Method.invokeNative(Native Method)
03-18 11:11:24.667: E/AndroidRuntime(5183):     at java.lang.reflect.Method.invoke(Method.java:511)
03-18 11:11:24.667: E/AndroidRuntime(5183):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
 03-18 11:11:24.667: E/AndroidRuntime(5183):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
03-18 11:11:24.667: E/AndroidRuntime(5183):     at dalvik.system.NativeStart.main(Native Method)

如何检查(以编程方式)我的设备上是否有文档目录?

最佳答案

在 API 级别 19 中添加了 Environment.DIRECTORY_DOCUMENTS 字段。 所以你可以修改下面的代码来支持不同的版本:

File currentDir = null;
if (Build.VERSION.SDK_INT >= 19) {
            currentDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS));
        }else{
            currentDir = new File(Environment.getExternalStorageDirectory() + "/Documents");
        }

关于android - 如何检查 Environment.DIRECTORY_DOCUMENTS 在 android 中为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29118008/

相关文章:

Android Notification Channel默认无声铃声

Android Activity 生命周期问题

javascript - 打开键盘时 react 原生底部标签栏向上推

java - Android 电话通话流

android - 透明按钮模拟点击效果

android - Caffe:检查失败:网络应该只有一个输出

android - 从手机导出apk?

android - 如何在android中创建六边形imageview?

java - 在 Android 中使用不同的图像将对象旋转 360 度?

java - 使用 0,1 而不是 ""替换字符串的一部分