2012-08-12 156 views
0

我想實現PICK intent-filter,到目前爲止我已經在上下文菜單中找到了它們,但是如何迴應誰啓動了該應用程序?要爲Facebook返回什麼「分享圖片」PICK意圖(與圖庫相同)?

可以說我有活動:

<activity 
     android:name="ListActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.PICK" /> 

      <category android:name="android.intent.category.DEFAULT" /> 

      <data android:mimeType="image/*" /> 
     </intent-filter> 
    </activity> 

現在我通過分享照片,並選擇自己的應用程序,以獲得它開始通過Facebook這個活動,我有以下代碼:

File f = new File(Environment.getExternalStorageDirectory(), "image.jpg"); 
Uri uri = Uri.fromFile(f); 
if(f.exists()) System.out.println("exists"); 
Intent data = new Intent(); 
data.setData(uri); 
setResult(RESULT_OK, data); 
finish(); 

然而Facebook應用程序沒有任何反應(這是我目前正在測試我的實現的地方)。如果我再次使用來自Facebook的「分享照片」,但是使用圖庫應用程序選擇圖片,那麼我希望我的應用程序能夠正常工作。

我做錯了什麼?

回答

0

經過對這個更接近的研究後,我發現問題出在Uri的方案中。你不能將Uri和file-scheme(「file:// ...」)傳遞給Facebook應用程序。它什麼也沒做。相反,如果您使用content-scheme(「content:// ...」)來處理相同的圖像,它可以完美地工作。

如何轉換這兩個是單獨的問題。

0

我想說,他們搞砸了他們這邊的實施。 Facebook應用並不是那麼好.. 你的代碼似乎對我來說是好事(尤其是因爲它可以和Gallery一起工作)。

+0

我對畫廊的解釋並不好。我的意思是,如果我從Facebook應用程序中選擇「分享照片」,然後使用Gallery(而不是我自己的應用程序),它實際上可以工作。所以不知何故,Facebook與Gallery合作,但與我的應用程序無關。 – TragedyStruck 2012-08-12 10:47:35