当前位置: 首页 > 面试题库 >

无法写入Android上的外部存储

吕俊哲
2023-03-14
问题内容

我看到很多其他人都在问同样的问题,但是没有发布的解决方案对我有帮助。

我正在尝试从我的Android应用程序将(二进制)文件写入外部存储。我<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />输入了清单,但仍然无法创建任何文件。我用来创建文件的代码是

File folder = new File(Environment.getExternalStorageDirectory(), SAVE_DIRECTORY);
File toWrite = new File(folder, "save.bin");
if(!toWrite.exists()){
    try {
        if(!folder.mkdirs())
            Log.e("Save", "Failed to create directories for save file!");
        toWrite.createNewFile();
     } catch (IOException e) {
         Log.e("Save", "Failed to create save file! " + e.getMessage());
     }
 }

对的调用mkdirs()失败,并createNewFile()引发IOException(ENOENT,因为该目录不存在)

有人知道怎么回事吗?我什至尝试过重启设备。如果有任何区别,我使用的是Nexus 7的API级别8。


问题答案:

首先,您应该检查ExternalStorageState

public static boolean isSDCARDAvailable(){
   return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
}

如果此方法isSDCARDAvailable返回true,则使用您的代码

添加权限:

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />



 类似资料:
  • 我的舱单中有权限条目: 编辑:我正在使用sdk 23

  • 我想在Android应用程序中写入外部存储,但我似乎没有获得正确的权限。该应用程序在Android 7上运行,因此我请求如下运行时权限: 我的一个观察是,onRequest estPermissionsResult似乎返回未授予权限,但在启动应用程序时也从未提示我允许写入外部存储。 要写入存储的代码如下: 03-16 14:50:49.988 19145-19306/? 带系统。错误:java。i

  • 我的设备是Android6.0.1操作系统,但无法将文件写入外部SD卡,从日志中,没有权限,但我有权申请成功,并在AndroidManifest中获得权限。xml文件; 我使用“adb shell dumpsys package packagename”命令,将读写权限返回到true;然后我看了一下设置- 我必须使用外部SD卡 有人遇到过这个问题吗我觉得这很奇怪 错误日志: 带系统。错误:java

  • 我是android新手,有时找不到合适的解决方案,这就是其中之一。 我写了一个简单的应用程序来编写使用ITextPdf libray生成的内部pdf。这工作得很好,我可以从设备文件资源管理器中看到pdf文件。现在我正在使用外部存储做同样的事情,但在这种情况下,我不能在下载文件夹中生成文件。我找到了对我的代码不起作用的解决方案。 我的代码: java文件 我在中发现了问题。它返回-1,但我不明白它不

  • 在我的应用程序中,我需要在设备存储器中存储大量图像。这样的文件往往满足设备存储的需要,我希望用户能够选择外部SD卡作为目标文件夹。 我到处都看到Android不允许用户写入外部SD卡,我所说的SD卡是指外部和可安装的SD卡,而不是外部存储,但文件管理器应用程序可以在所有Android版本上写入外部SD。 授予不同API级别(Pre-KitKat、KitKat、Lollipop)的外部SD卡读/写访

  • 问题内容: 我的开发电话正在运行。 在我的应用程序中,我试图在外部存储上创建一个文件夹,该文件夹将存储我的应用程序的调试信息。基本上,它将包含应用程序执行的所有命令,因此,当用户遇到问题时,我可以选择使它们从debug文件夹发送信息给我进行分析。 我首先尝试将文件写入文件夹,但发现创建文件夹时出错。最初,我使用,然后又移至也不起作用。 我有我的清单。 这是用于创建文件夹的代码: 这是我也尝试过的: