0

私のアプリは正常に電子メールを送信しますが、画像を添付しようとするとコードがクラッシュします。コード スニペットは次のとおりです。

        Intent i = new Intent(Intent.ACTION_SEND);
        i.setType("message/rfc822");
        i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"email address"});
        i.putExtra(Intent.EXTRA_SUBJECT, "subject of email");
        i.putExtra(Intent.EXTRA_TEXT   , "body of email");
    //  i.putExtra(Intent.EXTRA_STREAM, R.drawable.pic4);



        try {
            startActivity(Intent.createChooser(i, "Send mail..."));
        } catch (android.content.ActivityNotFoundException ex) {
            Toast.makeText(EidCards.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
        }

コメントされている行はコードをクラッシュさせます 解決方法を提案してください!

4

2 に答える 2

1

これはあなたのためには機能しません:

i.putExtra(Intent.EXTRA_STREAM, R.drawable.pic4);

R.drawable.pic4のタイプは何ですか?それはドローアブルを解決するために使用される整数ではありませんか?

他の人がどのように画像を添付しているかを確認する: Intent.ACTION_SENDとIntent.EXTRA_STREAMを使用してGoogle+アプリと画像を共有する

于 2012-08-10T10:30:02.400 に答える
1

まあそれは簡単でした:P

Intent i = new Intent(Intent.ACTION_SEND);

        int imageURI=R.drawable.pic4;

        i.setType("message/rfc822");
        i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"email address"});
        i.putExtra(Intent.EXTRA_SUBJECT, "subject of email");
        i.putExtra(Intent.EXTRA_TEXT   , "body of email");
        i.putExtra(Intent.EXTRA_STREAM, R.drawable.pic4);

            i.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://"+getPackageName()+"/"+imageURI));


        try {
            startActivity(Intent.createChooser(i, "Send mail..."));
        } catch (android.content.ActivityNotFoundException ex) {
            Toast.makeText(EidCards.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
        }
于 2012-08-10T10:31:47.020 に答える