1

我正在尝试做的事情:

从我的 Facebook 照片中选择一张照片,然后将该照片发送到本机照片编辑体验(照片应用程序)

以下是我正在采取的步骤:

  1. 从 fb 获取照片的 url
  2. 使用 Picasso 将图像 url 提取到位图中
  3. 将该位图存储到我的应用程序特定 /data/data/ 目录中的磁盘上的文件
  4. 从该文件路径创建一个 Uri
  5. 将该 Uri 作为“com.android.camera.action.CROP”操作的隐式 Intent 的数据部分发送

我猜问题是照片应用程序无权访问我的 /data/data 目录中的文件,但我很好奇是否有人可以确认这确实是问题,如果是,你是如何解决的它。我猜解决方案是将文件保存到 SD 卡,以便照片应用程序可以访问它?

好的,这里有一些代码......

将位图写入文件后,我调用它来获取 Uri

Uri pictureUri = Uri.fromFile(new File(path))

然后我像这样将 Uri 发送到作物意图

Intent intent = new Intent("com.android.camera.action.CROP");
        intent.setDataAndType(pictureUri, "image/*");

并启动 Activity for Result

activity.startActivityForResult(intent, RequestCode.CROP_IMAGE);

非常感谢任何反馈!

4

1 回答 1

2

您是正确的,共享文件通常会导致权限问题,特别是因为READ_EXTERNAL_STORAGE在 Android 6.0+ 更高版本的设备上是危险的权限(要求您

相反,您应该遵循共享文件培训并使用FileProvider创建一个其他应用程序可以在没有存储权限的情况下读取的 Uri(您或其他应用程序的部分)。

于 2016-02-11T18:01:01.353 回答