"Error, could not load media" 尝试调用照片应用裁剪意图时发送指向文件目录的 Uri
"Error, could not load media" when attempting to call Photos app crop intent sending Uri that points to files dir
我正在尝试做的事情:
Select 我的 Facebook 照片中的一张照片,然后将该照片发送到本机照片编辑体验(照片应用程序)
以下是我正在执行的步骤:
- 获取 url 来自 fb 的照片
- 使用 Picasso 获取图像 url 到 Bitmap
- 将该位图存储到我的应用特定 /data/data/ dir
磁盘上的文件中
- 从该文件路径创建 Uri
- 将该 Uri 作为 "com.android.camera.action.CROP" 操作的隐式 Intent 的数据部分发送
我猜问题是照片应用没有权限访问我的 /data/data 目录中的文件,但我很好奇是否有人可以确认这确实是问题所在,而且,如果是这样,你是如何解决的。我猜解决方案是将文件保存到 SD 卡,以便照片应用程序可以访问它?
好的,这是一些代码...
在我将 Bitmap 写入文件后,我调用它来获取 Uri
Uri pictureUri = Uri.fromFile(new File(path))
然后我像这样将 Uri 发送到裁剪意图
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(pictureUri, "image/*");
并开始Activity 得到结果
activity.startActivityForResult(intent, RequestCode.CROP_IMAGE);
非常感谢任何反馈!
共享文件通常会导致权限问题是正确的,特别是因为 READ_EXTERNAL_STORAGE
在 Android 6.0+ 更高版本的设备上是一个危险的权限(要求您
相反,您应该按照 sharing files training and use FileProvider 创建一个 Uri,其他应用可以在没有存储权限的情况下读取(在您或其他应用方面)。
我正在尝试做的事情:
Select 我的 Facebook 照片中的一张照片,然后将该照片发送到本机照片编辑体验(照片应用程序)
以下是我正在执行的步骤:
- 获取 url 来自 fb 的照片
- 使用 Picasso 获取图像 url 到 Bitmap
- 将该位图存储到我的应用特定 /data/data/ dir 磁盘上的文件中
- 从该文件路径创建 Uri
- 将该 Uri 作为 "com.android.camera.action.CROP" 操作的隐式 Intent 的数据部分发送
我猜问题是照片应用没有权限访问我的 /data/data 目录中的文件,但我很好奇是否有人可以确认这确实是问题所在,而且,如果是这样,你是如何解决的。我猜解决方案是将文件保存到 SD 卡,以便照片应用程序可以访问它?
好的,这是一些代码...
在我将 Bitmap 写入文件后,我调用它来获取 Uri
Uri pictureUri = Uri.fromFile(new File(path))
然后我像这样将 Uri 发送到裁剪意图
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(pictureUri, "image/*");
并开始Activity 得到结果
activity.startActivityForResult(intent, RequestCode.CROP_IMAGE);
非常感谢任何反馈!
共享文件通常会导致权限问题是正确的,特别是因为 READ_EXTERNAL_STORAGE
在 Android 6.0+ 更高版本的设备上是一个危险的权限(要求您
相反,您应该按照 sharing files training and use FileProvider 创建一个 Uri,其他应用可以在没有存储权限的情况下读取(在您或其他应用方面)。