2017-01-02 4 views
1

電子メールを送信するインテントアクティビティを作成しようとしています。 使用するAndroid:インテントを使用して電子メールを送信する - 電子メールアプリケーションのみを提供する

public void emailSend(View view){ 
     Intent emailIntent = new Intent(Intent.ACTION_SEND); 
     emailIntent.setData(Uri.parse("mailto:")); 
     emailIntent.setType("plain/text"); 
     emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Nächstes Treffen"); 
     emailIntent.putExtra(Intent.EXTRA_EMAIL,adressListe); 
     if (emailIntent.resolveActivity(getPackageManager()) != null){ 
      startActivity(emailIntent); 
     } 
    } 

私は単なるメールアプリ以上のものを提供しています。 使用

public void emailSend(View view){ 
     Intent emailIntent = new Intent(Intent.ACTION_SENDTO); 
     emailIntent.setData(Uri.parse("mailto:")); 
     emailIntent.setType("plain/text"); 
     emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Nächstes Treffen"); 
     emailIntent.putExtra(Intent.EXTRA_EMAIL,adressListe); 
     if (emailIntent.resolveActivity(getPackageManager()) != null){ 
      startActivity(emailIntent); 
     } 
    } 

ボタンをクリックしても何も起こりません。

emailIntent.setType("plain/text"); 

については も異なる結果と

emailIntent.setType("messageage/rfc822"); 

emailIntent.setType("*/*"); 

すべてを試してみましたが、どれも唯一の電子メールアプリケーションをそういえばすっかり忘れていません。

これを解決する方法はありますか?ヘルプは非常に高く評価されるだろう!

ありがとうございます!

+1

'setType'を使わずに試しましたか? –

+3

'plain/text'は有効なMIMEタイプではありません。 2番目のアプローチを出発点として使いますが、 'EXTRA_EMAIL'を取り除き、そのアドレスを' Uri'に( 'mailto:...'の '...'として)置きます。これをサポートする電子メールプログラムにはユーザがアクセスできない可能性があるので、 'resolveActivity()'が 'null'を返す場合は' else'ブロックが必要です。 – CommonsWare

+0

https://developer.android.com/guide/components/intents-common.html見出し**メール** – Raghunandan

答えて

-2

これは仕事をするでしょう!これが機能しない場合、私に知らせて

Intent intentMail = new Intent(Intent.ACTION_SEND); 
intentMail.setType("message/rfc822"); 
intentMail.putExtra(Intent.EXTRA_EMAIL, new String[]{ 
        "[email protected]" }); // the To mail. 
intentMail.putExtra(Intent.EXTRA_SUBJECT, "Subject goes here"); 
intentMail.putExtra(Intent.EXTRA_TEXT, "Content goes here"); 

// now we have created the mail, lets try and send it. 
try { 
    startActivity(Intent.createChooser(intentMail, "Message to User to do what next")); 
} catch (android.content.ActivityNotFoundException ex) { 
    Toast.makeText(Activity.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show(); 
} 

Intent intent = new Intent(Intent.ACTION_SEND); 
intent.setType("plain/text"); 
intent.putExtra(Intent.EXTRA_EMAIL, new String[] { "[email protected]" }); 
intent.putExtra(Intent.EXTRA_SUBJECT, "subject"); 
intent.putExtra(Intent.EXTRA_TEXT, "mail body"); 
startActivity(Intent.createChooser(intent, "")); 
+0

なぜ答えが下落したのですか? – Tulsi

+0

これは正しい方向に進んでいると思います。少なくとも私は頻繁に連絡を取った連絡先の1人にメールを直接送信することさえできました。しかし、まだ提供された "Googleドライブに保存"とスタッフ..... – JohnDoe

0

これは私が働いているコードがあります。ああ、エラーログはありますか?

*編集、これは私がコードを見つけた場所ですので、倍増します。 Source

+0

こんにちは、答えのおかげで。私はadressListが先に宣言した相違点をすべて持っています。String [] adressListe = adressen.split( "、"); 'adressenは複数のアドレスを含むStringです。しかし、私がボタンをクリックすると、それは私にもoneDriveを提供します.... – JohnDoe

関連する問題