2011-08-03 27 views
4

同時發送圖片和文字所以我想這樣做:ACTION_SEND在同一個意向

Intent intent = new Intent(Intent.ACTION_SEND); 
intent.putExtra(Intent.EXTRA_STREAM, Uri.parse(myMessageAsImage)); 
intent.putExtra(Intent.EXTRA_TEXT, "My Message"); 
intent.setType("text/plain"); // or intent.setType("image/<imageType>"); 

但是似乎對於ACTION_SEND文檔不使這似乎可能。有沒有一個商定的方式來做到這一點?

+0

你忘了告訴我們將會使用這個意圖(你的活動/服務或Android操作系統應該選擇) – Selvin

+0

什麼關係呢?目前我正在考慮自己沒有處理這個意圖 –

+0

是的......活動是在同一個pakage中,你可以指出這種活性的類可以很明顯,並且你根本不需要設置類型......但是如果你發送wana這意圖建立在應用程序中,例如MMS或電子郵件應用程序,你有...任何方式,我看到你已經找到解決方案:) – Selvin

回答

2

我不知道你的意思是'常用的方式',但我認爲你應該設置類型爲intent.setType("image/*");

編輯:

你怎麼意圖發送數據取決於篩選特定操作的應用程序的可用性。處理ACTION_SEND的應用程序可能無法處理ACTION_SEND_MULTIPLE。點擊HTC Gallery上的共享會生成一個處理圖像的應用程序列表,單個或多個。如果您選擇郵件,那麼您可以選擇多個圖像。但是,如果您選擇Facebook或Peep,那麼您只能選擇一個圖像。這是我簡單的解決方案,如果你想做與HTC Gallery相反的,那就是:用戶首先選擇圖像,然後根據他選擇的人數向他展示所有兼容的應用程序。

// assuming uris is a list of Uri 
Intent intent = null; 
if (uris.size > 1){ 
intent = new Intent(Intent.ACTION_SEND_MULTIPLE); 
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); 
} else if (uris.size() == 1) { 
intent = new Intent(Intent.ACTION_SEND); 
intent.putExtra(Intent.EXTRA_STREAM, uris.get(0));} 
intent.setType("image/*"); 
intent.putExtra(Intent.EXTRA_TEXT, "Some message"); 
startActivity(Intent.createChooser(intent,"compatible apps:")); 
+0

是的,你可以但是我想要做的是說多個圖像和文本。就像你熟悉HTC圖庫應用程序一樣。在某個時候,你可以說分享。它允許一個UI爲每個圖像選擇一組圖像和標題,並將它們作爲一個巨大的轉移發送。我想要達到目的。像包裝大量的圖像和文字要發送。我常說的意思是大多數應用程序都支持。因爲所有意圖都是協議。你可以記錄所有你想要的,但如果沒有人遵循它,它就沒用了:)我在看你,ACTION_SEND_MULTIPLE,當我說 –