Java Android中的电子邮件位图图像

Java Android中的电子邮件位图图像,java,android,Java,Android,我试图做到这一点,当我点击一个按钮时,我的应用程序会以编程方式截取当前屏幕的屏幕截图,并将其存储在一个变量中(我已经做到了这一点)。然后,我想让它发送一封电子邮件,附加位图图像到它 (我已尝试在中对电子邮件地址等进行编码) 当我试图发送一封带有简单正文的电子邮件时,效果很好,但当我试图附加一张图片时,效果不好 Button emailBtn = (Button) findViewById(R.id.emailBtn); main = findViewById(R.id.main);//ema

我试图做到这一点,当我点击一个按钮时,我的应用程序会以编程方式截取当前屏幕的屏幕截图,并将其存储在一个变量中(我已经做到了这一点)。然后,我想让它发送一封电子邮件,附加位图图像到它

(我已尝试在中对电子邮件地址等进行编码)

当我试图发送一封带有简单正文的电子邮件时,效果很好,但当我试图附加一张图片时,效果不好

 Button emailBtn = (Button) findViewById(R.id.emailBtn);
 main = findViewById(R.id.main);//email form button
        emailBtn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Bitmap b = screenshot.takescreenshotOfRootView(main);
                //ImageView programLogo = (ImageView) findViewById(R.id.programLogo);
                //programLogo.setImageBitmap(b);
                String subject = "please work";
                Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
                        "mailto","myemail@gmail.com", null));
                intent.putExtra(Intent.EXTRA_SUBJECT, subject);
                intent.putExtra(Intent.EXTRA_TEXT, b);
                startActivity(Intent.createChooser(intent, "Choose an Email client :"));
                }
        });
舱单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.computingproject">

    <uses-permission android:name="android.permission.INTERNET"></uses-permission>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="Computing Project"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".Main11Activity"></activity>
        <activity android:name=".Main10Activity" />
        <activity android:name=".Main9Activity" />
        <activity android:name=".Main8Activity" />
        <activity android:name=".Main7Activity" />
        <activity android:name=".Main6Activity" />
        <activity android:name=".Main5Activity" />
        <activity android:name=".Main4Activity" />
        <activity android:name=".Main3Activity" />
        <activity android:name=".Main2Activity" />
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

任何帮助都将不胜感激!谢谢你

是一条路要走。你应该考虑使用它,或者用它来代替详细记录的文件。@ HARTWECOM,你的意思是用Exchange流替换外文文本,用ActhOnSeNeX替换ActhOnthEnto?因为一旦我按下按钮激活这个序列,程序就会崩溃。这是一条路要走。你应该考虑使用它,或者用它来代替详细记录的文件。@ HARTWECOM,你的意思是用Exchange流替换外文文本,用ActhOnSeNeX替换ActhOnthEnto?因为一旦我按下按钮激活这个序列,程序就会崩溃。
import android.graphics.Bitmap;
import android.view.View;

public class screenshot {

    public static Bitmap takescreenshot(View v) {
        v.setDrawingCacheEnabled(true);
        v.buildDrawingCache(true);
        Bitmap b = Bitmap.createBitmap(v.getDrawingCache());
        v.setDrawingCacheEnabled(false);
        return b;
    }

    public static Bitmap takescreenshotOfRootView(View v) {
        return takescreenshot(v.getRootView());
    }

}