2011-07-15 47 views
0

我需要以編程方式共享視頻資源上的URL。 URL的 例子是http://flash.video.worldnow.com/kold/KOLD_20110714204221200AA.mp4無法通過Android共享Facebook上的視頻URL Intent.ACTION_SEND

我用Intent.ACTION_SEND它:

Intent sendIntent = new Intent(Intent.ACTION_SEND); 
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Test subject"); 
sendIntent.putExtra(Intent.EXTRA_TEXT, "http://flash.video.worldnow.com/kold/KOLD_20110714204221200AA.mp4"); 
sendIntent.setType("text/plain"); 
startActivity(Intent.createChooser(sendIntent, 
       "Share URL")); 

Facebook的Android應用程序無法處理的URL,並顯示以下錯誤:

「Flash對象必須有'swfsrc' 和 'IMGSRC' 屬性」

如何避免錯誤?如何將所需的屬性放入「文本/純文本」消息中?

回答

1

我已經看了Facebook應用程序源(ShareLinkActivity),並沒有發現任何可能性增加必填字段共享請求。僅使用意圖附加參數Intent.EXTRA_TEXT的內容。

0

看一看here.看起來它希望在一個JSON編碼數組編碼的swfsrc和IMGSRC此頁面。希望這可以幫助。

+0

感謝您的回答,但我不使用JSON請求。我需要使用常見的Android功能發送(即Intent.ACTION_SEND)。在這種情況下,任何社交客戶(例如Facebook,Twitter等)都可以處理相同的意圖,並且還可以通過SMS,MMS和電子郵件發送。我需要找到一種方法,如何在簡單的文本消息中提供Facebook字段所需的上述內容,並通過Intent分享。 – jkov

+0

您可以將JSON編碼數組作爲額外文本添加到意圖中!使用Facebook,流附件是定義帖子的一組結構化數據! – Kenny

+0

在我的情況下,內容Intent.EXTRA_TEXT不能是JSON。這段文字對於在Twitter上分享也應該仍然有效。應該使用另一個額外的參數名稱來將附件添加到意圖額外?我已經嘗試將它與名稱「附件」放在一起,但沒有成功:sendIntent.putExtra(「attachment」,「{\」media \「:[{\」type \「:\」flash \「,\」swfsrc \ 「:\」 「+ 」flash.video.worldnow.com/kold/KOLD_20110718232729103AC.mp4「; \t + 」\「 \ 」IMGSRC \「:\」 icanhascheezburger.files.wordpress.com/2009/04/... \ 「}]}」); 僅供參考:參數名稱Intent.EXTRA_TEXT也被嘗試過,它也被Facebook的ShareUrlActivity忽略 – jkov

1

幾個小時試圖找出如何使它的工作上傳和Facebook,YouTube上,Instagram的和WhatsApp的分享視頻後。這是爲我工作的代碼。上傳錄製的視頻從您的應用程序社交媒體應用

嘗試用視頻處理,並在內容中指定MediaStore.Video.Media.Data在使用ContentValues。

ContentValues content = new ContentValues(4); 
     content.put(Video.VideoColumns.DATE_ADDED, 
     System.currentTimeMillis()/1000); 
     content.put(Video.Media.MIME_TYPE, "video/mp4"); 
     content.put(MediaStore.Video.Media.DATA, "your_path_to_video"); 
     ContentResolver resolver = getBaseContext().getContentResolver(); 
     Uri uri = resolver.insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, content); 

     Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND); 
     sharingIntent.setType("video/*"); 
     sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,"Title"); 
     sharingIntent.putExtra(android.content.Intent.EXTRA_STREAM,uri); 
     startActivity(Intent.createChooser(sharingIntent,"share:")); ` 
0

我搜索這個將近7小時,以下是我的工作完美的唯一的解決辦法。

File filePath = filesList[position]; 
      Intent shareIntent = new Intent(); 
      shareIntent.setAction(Intent.ACTION_SEND); 
      shareIntent.putExtra(Intent.EXTRA_TEXT, "Text"); 
      shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(filesList[position].getAbsolutePath()))); //optional//use this when you want to send an image 
      shareIntent.setType("video/mp4"); 
      shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
      startActivity(Intent.createChooser(shareIntent, "send")); 
相關問題