私はインテントを使用して画像を共有しようとしています。ここに私が作成した方法はあります画像のみWhatsappと共有しますが、Androidの他のアプリとは共有しません。
public void shareImg(int fileNum) //Consider fileNum=R.drawable.img
{
Uri uri= Uri.parse("android.resource://"
+ context.getPackageName() + "/" + fileNum);
Intent share=new Intent();
share.setAction(Intent.ACTION_SEND);
share.setType("image/*");
share.putExtra(Intent.EXTRA_STREAM, uri);
share.putExtra(Intent.EXTRA_TEXT, "Sent Via ---");
Intent chooser= Intent.createChooser(share, "Share Via");
context.startActivity(chooser);
}
画像はキャプション付きのWhatsappで適切に共有されています。しかし、GmailやMessengerなどとアプリを共有しようとすると、Toastにエラーが表示されます。
たとえば、
Gmailが言う:空のファイルを添付することはできません
メッセンジャーは言う:あなたは共有の意図を使用して画像を共有することができ、画像
いくつかのアプリケーションは '' android.resource' Uri'スキームをサポートしています。 – CommonsWare
これを実現するには、まずそのリソースドロワブルをストレージに保存してからファイルURIと共有する必要があります。 –
しかし、ギャラリーや他のアプリから選択すると動作します。 – ss007