其他分享
首页 > 其他分享> > android-如何在外部SD卡中而不是在设备存储中写入文件?

android-如何在外部SD卡中而不是在设备存储中写入文件?

作者:互联网

我尝试了这个:

  public String getFilename() {
    File file = new File(Environment.getExternalStorageDirectory(), "Test2");
    if (!file.exists()) {
        file.mkdirs();
    }
    String uriSting = (file.getAbsolutePath() + "/" + "IMG_" + System.currentTimeMillis() + ".png");
    return uriSting;
}

我尝试将第二行更改为:

File file = new File("sdcard/Test2");

但是仍然在设备存储中而不是在外部SD卡上创建目录.

解决方法:

您无权访问removable storage.

在Android 4.4上,您有两个主要选择:

>使用Context上的所有方法使用getExternalFilesDirs(),getExternalCacheDirs()或getExternalMediaDirs()(请注意复数).如果它们返回2个位置,则第二个和后续位置是可移动存储上的位置,您的应用无需任何许可即可读取和写入.
>使用ACTION_OPEN_DOCUMENT and ACTION_CREATE_DOCUMENT,允许用户选择在何处放置一些内容,用户可以在其中选择可移动存储(或Google云端硬盘,DropBox或external storage或其他任何内容).您最终得到的是Uri,而不是文件系统路径. use ContentResolver to work with that Uri to get streams for reading and writing.

标签:android-file,file-handling,android
来源: https://codeday.me/bug/20191118/2028189.html