3

Android アプリから画像を共有しようとしています。WhatsAppの写真だけでなく、メールの添付ファイルとして送信しようとしています。

コードは次のとおりです。

String imageUrl = Path to image (eg. sdcard/pictures/image1.jpg);
shareImage.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Uri uriToImage= Uri.parse(imageUrl);
                    Log.d("Image", ""+uriToImage);
                    Intent shareIntent = new Intent();
                    shareIntent.setAction(Intent.ACTION_SEND);
                    shareIntent.putExtra(Intent.EXTRA_STREAM, uriToImage);
                    shareIntent.setType("image/*");
                    startActivity(Intent.createChooser(shareIntent, "Share image:"));
                }
            });

何が起こっているのですか:

  1. WhatsApp では、画像を簡単に共有できます。
  2. Gmail では、添付ファイルを送信できませんでしたと表示されます。
  3. ハングアウトで、次のようなトーストが表示されますPhoto couldn't be found
  4. Facebookでも、投稿に画像が付いていませんが投稿できます。
  5. Facebook Messenger で、開かずにクラッシュします。

これについて私が従ったチュートリアルはhereです。チュートリアルのsend binary content一部は、私が実装したものです。

私が試したもう1つのことは、画像をに設定して、ImageView表示されるかどうかを確認することでした。画像が正しく表示されます。また、ログ メッセージにはイメージの正しいパスが出力されます。

また、質問 1質問 2の回答を読んで試しましたが、役に立ちませんでした。

どこが間違っていますか?

4

2 に答える 2

5

これを試して、

try
                {
                    File myFile = new File(share_image_path);
                    MimeTypeMap mime = MimeTypeMap.getSingleton();
                    String ext = myFile.getName().substring(myFile.getName().lastIndexOf(".") + 1);
                    String type = mime.getMimeTypeFromExtension(ext);
                    Intent sharingIntent = new Intent("android.intent.action.SEND");
                    sharingIntent.setType(type);
                    sharingIntent.putExtra("android.intent.extra.STREAM", Uri.fromFile(myFile));
                    startActivity(Intent.createChooser(sharingIntent, "Share using"));
                }
                catch (Exception e)
                {
                    Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
                }
于 2015-04-14T13:57:52.413 に答える