2010-08-31 90 views
3

如何在查看照片庫時創建可由用戶通過共享選項選擇的自定義活動?我有像「與Facebook,Twitter,FlickR共享」等選項,但我想在那裏添加我自己的選項。如何創建照片共享活動?

即轉到「照片」,然後點擊「共享」按鈕。您將看到一羣共享提供者。我需要做些什麼來讓我的活動在那裏?

回答

6

看了看內置的Mail應用程序後,我在AndroidManifest.xml中發現了這一部分(感謝Janusz)。

<intent-filter android:label="@string/app_name"> 
    <action android:name="android.intent.action.SEND" /> 
    <data android:mimeType="*/*" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
</intent-filter> 

我的應用程序現在顯示在列表中:)

+2

現在您的應用程序也會顯示在其他每個發送列表中。如果您的應用僅用於圖像共享,則應使用正確的MIME類型。 – Janusz 2010-09-12 13:51:16

+2

是的,謝謝Janusz - 我已經改變它只是爲了android:mimeType =「image」現在。 – 2010-09-12 20:58:22

+4

指定'android:mimeType =「image」'給出一個android.content.IntentFilter $ MalformedMimeTypeException;你需要改爲指定'android:mimeType =「image/*」' – 2011-05-21 13:13:25

1

我觸發此對話框調用下面的代碼:

Intent shareImage = new Intent(); 
shareImage.setAction(Intent.ACTION_SEND); 
String mimeTyp = "image/png"; 
shareImage.setType(mimeTyp); 
shareImage.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(image)); 
startActivity(Intent.createChooser(shareImage, "Share Image")); 

,這說明你需要爲行動的發送和要抓住所有圖像類型創建一個Intent Filter

我沒有測試過,但我認爲你可以在以下意圖過濾器添加到您要處理的發送圖像意圖的活動:

<intent-filter ...> 
    <action android:name="android.intent.action.SEND" /> 
    <data android:mimeType="image/png" android:scheme="http"... /> 
    . 
    . 
    . 
</intent-filter> 

我不能完全肯定的完整配置過濾器,但我認爲你可以自己找出其餘的。

+0

但這僅僅是開始一個動作是不是?我想將我自己的活動插入共享圖像活動。因此,如果用戶轉到其手機上的「照片」,然後點擊「分享」,他們將獲得他們可以分享照片的應用程序列表。我想我的應用程序在那裏。 – 2010-09-10 21:24:43