如何在 Android 上就地编辑照片

问题描述 投票:0回答:1

我正在制作一种特定类型的照片编辑器,旨在编辑照片中的内容。由于其本质,从用户体验的角度来看,就地编辑照片而不是保存用户需要注意的副本(他们可能会错误地将未编辑的原始照片发送给某人,因为他们可能不会仅从缩略图中看到它没有经过编辑)。此外,并非所有图库应用程序默认都会索引外部应用程序文件夹,因此编辑后的图像甚至可能不会出现。

作为回报,我的照片编辑器会:

  • 如果用户要求的话,提供一种实际保存副本的方法
  • 将原件的备份保留在其私人应用程序存储中,并具有在用户犯错误时轻松恢复它们的功能(有点像 Google Photo 允许您恢复裁剪的照片,尽管在这种情况下,裁剪信息实际上可能是以非破坏性方式嵌入照片本身)

我一直在尝试 Android 的

PickVisualMediaRequest
本机选择器,但它不提供写入访问权限。我还尝试为我的活动中的图像创建一个
Intent.ACTION_EDIT
过滤器(例如可以通过 Google Photos 启动),并且当它通过 Google Photos 的内容提供商时,提供的 URI 似乎不可写。

现代 Android 版本上可用的哪些文件选择方法可以解决我的问题?请注意,我不需要也不想要完整的外部存储访问权限,我同意用户必须使用处理的系统选择器来选择文件所有权限的东西,但我需要写权限。如果用户在 90% 的情况下都必须手动删除原始文件(而且他们没有明确要求保留原始文件),那么我的应用程序使用起来会很痛苦。例如,Google Photos 能够对图库图像进行破坏性更改。

android android-permissions android-contentprovider android-file
1个回答
0
投票

存储访问框架提供了启动授予读写权限的系统文件选择器的功能:https://developer.android.com/training/data-storage/shared/documents-files#open-file

但是,据我所知,无法将只读 URI 升级为可写 URI,因此只有从应用程序本身启动文件选择器(不使用

)才能实现就地编辑Intent.ACTION_EDIT
意图过滤器,必然会提供副本)。

© www.soinside.com 2019 - 2024. All rights reserved.