2012-07-23 65 views
4

我正在写一个使用相机的应用程序。我希望让用户能够用线条和文本注释生成的图像,并且我想向用户提供他们可以使用的适当图像编辑应用程序的列表,但我遇到了这些问题: 1并非所有的图像编辑工作的应用程序出现在列表中,当我执行这个代码:教程/参考启动ACTION_EDIT与图像和返回图像

editIntent = new Intent(); 
editIntent.setAction(Intent.ACTION_EDIT); 
Uri imageToEditUri = selectedPhotoLocation; // Uri of existing photo 
String imageToEditMimeType = "image/*"; 
editIntent.setDataAndType(imageToEditUri, imageToEditMimeType); 
startActivityForResult(Intent.createChooser(editIntent,"Edit Image"), IMPLICIT_EDIT_IMAGE); 

Is there a way to get a list of apps that will respond to Intent.ACTION_EDIT? 

2. PS Express是唯一的应用程序,我发现一个返回data.getDate的editted图像的URI() Uri返回到OnActivityResult(),用户被强制保存的其他应用程序,记住位置,然后重新选择已编辑的图像。

Is there a way to know what apps return the Uri of the image to OnActivityResult() 

回答

3

第一个问题的答案:
尝试queryIntentActivities

Intent editIntent = new Intent(android.content.Intent.ACTION_EDIT); 
List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(editIntent, 0); 
+1

您需要将其余的信息(例如'Uri',MIME类型)添加到'Intent'中才能使用。 – CommonsWare 2012-07-23 15:33:42

4

并非所有的图像编辑工作的应用程序出现在列表中,当我执行这个代码

仅仅因为一个应用程序实现了图像编辑并不一定意味着它被设置为允许第三方链接到他们的图像编辑ac tivities。

有没有办法让应用程序列表响应Intent.ACTION_EDIT?

如果您的意思是您希望在运行时以编程方式执行此操作,请参阅Jedil的答案。

有没有办法知道哪些应用返回图像的URI OnActivityResult()

没有,除了那些对开发者应该如何与它们集成文档的应用程序。

+0

我发现第三个答案是痛苦的真实。我们可能会在每个外部应用程序的基础上实现自定义的返回值逻辑。即使谷歌自己的应用程序(我看着你谷歌加)似乎并没有正常工作。当使用FileProvider时,Google Plus只是弹出一个说“无法保存照片编辑”并永久旋转的吐司。看起来这是一年以来的问题。 – JohnnyLambada 2015-01-24 22:03:48

+0

@JohnnyLambada:'FileProvider'和谷歌的应用程序不相处。这是我需要找出一个解决方案,除了大喊大叫谷歌,让他们一起行动。 – CommonsWare 2015-01-24 22:07:20

+0

我无法让Google Plus正确编辑图片,并以任何我想要的方式将其发送回我的应用。我已经试过了FileProvider和SD卡上的裸文件。似乎没有任何工作。糟透了,因为大多数手机都有GP,而且它们的图像编辑软件相当不错。我寻找一个地方为GP应用程序提交错误报告,但找不到一个。 – JohnnyLambada 2015-01-25 20:33:45