2012-07-23 61 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