1

エミュレーターを使用して、インテント経由でテキスト メールを送信する通常のコードがあります。私が抱えている問題は、電子メール クライアントの「作成」アクティビティ (ICS AVD を使用) が startActivity() の実行時に表示されることです。すべてのフィールドが正しく入力されているので、[送信] をクリックしてプロセスを終了する必要があります。その後、コントロールはアプリケーション UI に戻り、電子メールは宛先に正しく配信されます。エミュレータの電子メール アプリケーションをポップアップ表示せずに、バックグラウンドでスムーズに送信するにはどうすればよいですか? これが私のコードです:

public class AppPilot extends Application {
    ...
    private static Context context;
    ...
    @Override
    public void onCreate() {
        super.onCreate();
        context = this;
    }
    ....
        /**
     * Send an Email 
     * @param emailAddress
     * @param emailObject
     * @param emailBody
     */
    public static void sendEmailCoupon(String emailAddress, String emailSubject,
        String  emailBody)  {

        String emailadd[] = { emailAddress };
        Intent emailIntent = new Intent(Intent.ACTION_SEND);
        emailIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        emailIntent.putExtra(Intent.EXTRA_EMAIL, emailadd);
        emailIntent.putExtra(Intent.EXTRA_SUBJECT, emailSubject);
        emailIntent.setType("plain/text");
        emailIntent.putExtra(Intent.EXTRA_TEXT, emailBody);
        context.startActivity(emailIntent);
}
4

1 に答える 1

2

この投稿が元の投稿の前にクリックされた場合に備えて、将来探している人のための答えは次のとおりです。デフォルト/組み込みアプリを使用せずにJavaMail APIを使用してAndroidでメールを送信する 基本的に、最初に 3 つの jar ファイルをダウンロードします - mail.jar (URI: http://javamail-android.googlecode.com/files/mail.jar ); activation.jar (URI: http://javamail-android.googlecode.com/files/activation.jar ); additional.jar (URI: http://javamail-android.googlecode.com/files/additionnal.jar) を Eclipse プロジェクトの /libs フォルダーに入れます。次に、それぞれを右クリックし、[ビルド パス] > [ビルド パスに追加] で参照します。別の「Email」クラスを作成し、「droopie」によって上記のリンクに投稿されたコードに 100% 従います。セキュリティ設計の原則や Android をアプリケーション コンテナーとしてバイパスするには、JavaMail を使用する必要があります。HTH

于 2013-01-14T14:52:51.343 に答える