2016-05-10 7 views
0

私はJavaプログラミングには全く新しいですが、私はFacebookメッセンジャー表現アプリケーションのために次の共有を実装する必要があります。私の問題は今私が画像を取得する方法を知らないことです私の引き出しからどのようにそれを行うことができますか?Android - ファイルからDrawableのImg Uriを取得する

このコードは、ボタンのonclickをトリガします。画像はあなたのUriを変更する必要が私の描画可能なその呼ばimg.png

public void CompartirWhatsApp(View view) { 
     FacebookSdk.sdkInitialize(getApplicationContext()); 

     String mimeType = "image/png"; 
     String route = "drawable://" + R.drawable.img;; 
     File file = new File(route); 
     Uri contentUri = Uri.fromFile(file); 
     // contentUri points to the content being shared to Messenger 
     ShareToMessengerParams shareToMessengerParams = 
       ShareToMessengerParams.newBuilder(contentUri, mimeType) 
         .build(); 

     // Sharing from an Activity 
     MessengerUtils.shareToMessenger(
       this, 
       SHARE_TO_MESSENGER_REQUEST_CODE, 
       shareToMessengerParams); 
    } 

答えて

0

です。 R.drawable.imgはリソースIDです。

例:アプリケーションのパッケージ名を持つ

Uri uri = Uri.parse("android.resource://your.package.here/drawable/img"); 

変更 "your.package.here"。


EDIT

私はFacebookSdkと経験を持っていません。しかし、すばやいGoogle検索では、あなたの質問に関連するコードスニペットと問題が表示されます。たとえば、thisコードスニペット呼び出しのsetMetaDataです。

Uri uri = Uri.parse("android.resource://<package name>/drawable/image_name"); 

...ことを確認します。例:

ShareToMessengerParams shareToMessengerParams = ShareToMessengerParams.newBuilder(uri,"image/jpeg").setMetaData("{ \"image\" : \"img\" }").build(); 

いくつかのより多くの関連リンクには次のように

Facebook Messenger sending metadata (Android)

Get the URI of an image stored in drawable

+0

クラッシュはしませんが、まだ画像を取得できません –

+0

追加のメタデータを送信する場合にのみ必要だと思っています。試してみます。申し訳ありません。 P –

0

あなたが名前でURIを決定することができますパッケージ名を上の行に置きます。

文字列名の代わりにリソース名を使用することもできます。

0

プライベートアプリファイルに属しているため、リソース内のファイルを直接共有することはできません。メディアデータベースに挿入したり、外部ストレージまたは外部キャッシュのどこかにコピーした場合にのみ共有できます。ほとんどのパーツでは、そのためにストレージを書き込む許可が必要です。外部ファイルのキャッシュディレクトリに保存することもできますが、それにはkitkatの下にあるAPIのアクセス許可も必要です。 基本的には、リソースからビットマップオブジェクトを取得できますが、アプリケーションを共有してアクセスできるUriでアクセス可能にする必要があります。 また、uri権限を付与することもできます。あなたは直接uriを使用し、NOT uriはファイルに基づいて使用します。ファイルに基づいている場合は、アクセスに問題があります。

+0

これは説明していますが、以前に作成したファイルをdrawableからsdcardに保存して直接uriを呼び出すにはどうすればよいですか?今のところ、私は外部記憶装置に画像を複製することはできません。 –

関連する問題