2011-11-28 103 views
22

我想給用戶提供與Twitter和Facebook共享圖片和文字的可能性。用Twitter上的SHARE INTENT共享文字和圖片的問題

其實我的代碼可以啓動Android的共享意圖,如果用戶選擇Facebook,所有工作正常,圖像被附加並且文本顯示在新狀態的主體上。

但Twitter有些問題,如果我只把圖片全部正常工作,圖片被twitter檢測到並自動上傳到twipic,那麼twitter會在tweet上發佈圖片鏈接。但是,如果我放置圖像和文本,那麼Twitter不會檢測到圖像,只會將文本放在推文上,圖像將被忽略。哪裏不對?

這是我的代碼:

Intent sharingIntent = new Intent(Intent.ACTION_SEND); 
Uri screenshotUri = Uri.parse("file:///sdcard/image.jpg"); 
sharingIntent.setType("image/*"); 
sharingIntent.putExtra(Intent.EXTRA_TEXT, "Body text of the new status"); 
sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri); 
startActivity(Intent.createChooser(sharingIntent, "Share image using")); 
+0

有一個看看這篇文章: http://stackoverflow.com/questions/2077008/android-intent-for-twitter-application/9151983#9151983 – Derzu

回答

14

指定MIME類型也爲文本。 "text/plain"是文本數據MIME的類型。嘗試使用"*/*"作爲MIME,因此您可以發送任何通用數據類型。

也嘗試更改ACTION_SENDACTION_SEND_MULTIPLE專門提供多個數據。約ACTION_SEND_MULTPLE

更多信息和處理MIME類型:

http://developer.android.com/reference/android/content/Intent.html

+0

我嘗試用*/*並沒有奏效。我不能使用ACTION_SEND_MULTIPLE,因爲它不存在,至少在Android 1.5上。 – NullPointerException

+1

現在我嘗試了ACTION_SEND_MULTIPLE和Android API 4,它不起作用。 – NullPointerException

+0

你試過'「*/*」'? –

22

您仍然可以與ACTION_SEND嘗試,不使用ACTION_SEND_MULTIPLE

ACTION_SEND_MULTIPLE導致了強制關閉,當我試圖分享到Gmail,G +創造新的意圖,等

這爲我工作完美:

Intent shareIntent = new Intent(Intent.ACTION_SEND); 
    Uri uri = Uri.parse("file:///sdcard/image.jpg"); 
    shareIntent.setType("*/*"); 
    shareIntent.putExtra(Intent.EXTRA_TEXT, "Body text of the new status"); 
    shareIntent.putExtra(Intent.EXTRA_STREAM, uri); 
    return shareIntent; 
+0

你怎麼構建uri? – Radu

+0

參見已編輯的答案 – Paschalis

+1

@ Paschalis:我嘗試了你的鱈魚蛋糕,但是當我與Facebook一起烤時,它給我烤麪包就像**「請只附上照片或單個視頻」**任何想法如何解決它? –