2016-11-29 4 views
2

私はデバイス上にあるオーディオファイルを共有するために次のコードを使用しています:は、Android上でFacebookのメッセンジャーでの音声を共有することができません:「申し訳ありませんが、メッセンジャーは、このファイルを処理することができませんでした」

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_SEND); 
intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://pathToFile")); 
intent.setType("audio/*"); 
activity.startActivity(Intent.createChooser(intent, "Share...")); 

をAndroidはシステム共有ダイアログを開き、共有の意図を処理するための適切なアプリを選択できます。オーディオファイルは、Gmail、WhatsApp、Telegram、Googleドライブと正常に共有されます。

しかしMessengerは、次のエラーを示しています。私はAndroidのダウンロードアプリを使用して同じファイルを共有しようとすると、それはすべてのメッセンジャーでうまく動作しますが、しかし

enter image description here

を。

enter image description here

なぜメッセンジャーが正しく私の共有要求を処理しません、他のすべてのアプリが行いながら、どのようなそれはダウンロードアプリからの共有と同じように動作しますので、私のコードに変更する必要があります(そうそれはメッセンジャーのために働くだろう)?

答えて

3

Facebook Messengerがスペースを含むファイル名を受け入れないことが判明しました。これは、「audio test.mp3」という名前のオーディオファイルを共有できないことを意味しますが、「audio_test .MP3"

はまた、私は実際にこれらの2行を入れていた何をしたか、長い時間からこの問題に直面していた(A、N、O、C、など)

+0

そうです。 'intent.putExtra(Intent.EXTRA_STREAM、Uri.fromFile:;: ' intent.putExtra(Intent.EXTRA_STREAM、Uri.parse( "ファイル:// pathToFile"))これを ' は、私は最終的にこれを変更しました(new File(pathToFile))); ' そしてすべてがすべてのケースで動作するようになりました。 Facebookのアプリにバグがあり、URLを正しく処理していないようです。だからあなたがそれをどのように作成するかが重要です。 – csbubbles

1

を非ASCII文字を受け入れません。これにより、任意のファイル形式と任意のファイル名で動作するようになりました。

intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(pathToFile))); 

彼のコメントのおかげで@csbubblesに感謝します。

関連する問題