2011-07-15 21 views
0

ビデオリソースにURLをプログラムで共有する必要があります。Android経由でビデオURLをFacebook上で共有できない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のアンドロイドアプリケーションはURLやショー、次のエラーを処理することはできません:URLの 例は、私はそれのためにIntent.ACTION_SENDを使うhttp://flash.video.worldnow.com/kold/KOLD_20110714204221200AA.mp4

です'swfsrc'と 'imgsrc'の属性 "

エラーを回避するにはどうすればよいですか?必要な属性を "text/plain"メッセージに入れる方法は?

答えて

1

私はFacebookのアプリケーションソース(ShareLinkActivity)を見てきましたが、要求を共有するために必要なフィールドを追加する可能性はありませんでした。インテント追加パラメータIntent.EXTRA_TEXTの内容のみが使用されます。

0

このページを見るhere. swfsrcとimgsrcがJSONエンコードされた配列でエンコードされているようです。お役に立てれば。

+0

回答ありがとうございますが、私はJSONリクエストを使用しません。送信に一般的なAndroid機能(つまり、Intent.ACTION_SEND)を使用する必要があります。この場合、同じインテントを任意のソーシャルクライアント(例えば、Facebook、Twitterなど)が処理することができ、また、SMS、MMSおよびEメールを介して送信することもできる。私は単純なテキストメッセージで上記のようにFacebookフィールドに必要な上記の方法を見つける方法を見つける必要がありますし、それを共有してください。 – jkov

+0

JSONエンコードされた配列をインテントの余分なテキストとして配置することができます。 Facebookのストリームの添付ファイルは、ポストを定義する構造化データの配列です! – Kenny

+0

コンテンツIntent.EXTRA_TEXTは私の場合、JSONにすることはできません。このテキストは、Twitterでの共有にも有効です。添付ファイルをインテントの余分なものに入れるために、別の追加のパラメータ名を使用する必要がありますか?ノー成功と名 "添付ファイル" でそれを置くためにしようと試みてきました:sendIntent.putExtra( "添付ファイル"、 "{\" メディア\ ":[{\" タイプ\ ":\" フラッシュ\ "\" swfsrc \を":\" "+ "flash.video.worldnow.com/kold/KOLD_20110718232729103AC.mp4"; \t + "\"、\ "IMGSRCの\":icanhascheezburger.files.wordpress.com/2009/04/... \" \ "}]}"); FYI :名前Intent.EXTRA_TEXT paramenterも試みた、それはまた、FacebookのShareUrlActivityによって無視されます – jkov

1

facebook、youtube、instagram、whatsappでビデオをアップロードしたり共有したりする方法を調べるのに数時間を要しています。これは私のために働いたコードです。アプリケーションからソーシャルメディアアプリケーションに録画したビデオをアップロードする

動画を扱うときにContentValuesを使用し、コンテンツにMediaStore.Video.Media.Dataを指定してみます。

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"));