java - 如何将图像写入共享位置以便于访问?

标签 java android

我正在开发的应用程序使用相机拍照并对它们进行一些处理。这是使用以下代码:

private String getImageFolder() throws Exception {
    File mediaDir = new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES), "my-app-folder");
    if (!mediaDir.exists()) {
        if (!mediaDir.mkdirs()) {
            throw new Exception("Cannot create or find the image directory at " + mediaDir.getAbsolutePath());
        }
    }
    return mediaDir.getPath();
}

我遇到的问题是,这将其存储在像 /storage/0/simulated/android/data/com.myapp.codebase/Pictures/my-app-folder 这样的路径上,并且是一个必需的这个应用程序的一部分是用户可以轻松地通过 USB 复制从中拍摄的图片,所以我真的需要它位于像 /Pictures/my-app-folder 这样的文件夹中- 老实说,我认为这就是 getExternalFilesDir(Environment.DIRECTORY_PICTURES) 会做的事情。我尝试使用 Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) 但当我尝试使用该路径时,这只是给了我一个 FileNotFoundException

我启用了以下存储权限并在运行时检查:

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

我需要做什么才能将图像放置在一致、易于访问的文件路径上?

最佳答案

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) but that just gave me a FileNotFoundException when I tried to use the path.

然后您忘记在 list 文件中添加正确的权限。

今年你是#1245,忘记请求运行时权限。

Google 为他们服务。

关于java - 如何将图像写入共享位置以便于访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49695712/

相关文章:

java - 通过 API 调用从 Instagram 注销

java - 无法将预测映射到 JavaRDD

java - 创建一个简单的定时 Java 测验

java - 尝试在 QT 项目中调用 Java 代码时找不到类异常

android - 将 Android 可穿戴模拟器与连接到 adb 的手持设备无线连接

java - 这里实现的类是否正确?

java - 使用 JAR 内的 list 编译 JAR?

android - 如何在自定义 ListView 中将特定 TextView 文本显示为 toast 消息?

android - Android SDK版本比库版本更受欢迎

android - 警告 : Conflict with dependency 'junit:junit' in project ':app' . 应用程序 (4.11) 和测试应用程序 (4.12) 的已解决版本