web-dev-qa-db-ja.com

メールを送信するにはACTION_SENDTO

Android 2.1。スニペットの何が問題になっていますか?

public void onClick(View v) {
  Intent intent = new Intent(Intent.ACTION_SENDTO);
  Uri uri = Uri.parse("mailto:[email protected]");
  intent.setData(uri);
  intent.putExtra("subject", "my subject");
  intent.putExtra("body", "my message");
  startActivity(intent);
}
32
Sang Shin

_ACTION_SENDTO_を使用する場合、putExtra()はインテントに件名とテキストを追加するようには機能しません。 setData()Uriツールを使用して、件名とテキストを追加します。

この例は私にとってはうまくいきます:

_// ACTION_SENDTO filters for email apps (discard bluetooth and others)
String uriText =
    "mailto:[email protected]" + 
    "?subject=" + Uri.encode("some subject text here") + 
    "&body=" + Uri.encode("some text here");

Uri uri = Uri.parse(uriText);

Intent sendIntent = new Intent(Intent.ACTION_SENDTO);
sendIntent.setData(uri);
startActivity(Intent.createChooser(sendIntent, "Send email")); 
_
80

実際、EXTRAが機能する方法を見つけました。これは、ACTION_SENDTOに関してここで見つけた回答の組み合わせです

http://www.coderanch.com/t/520651/Android/Mobile/no-application-perform-action-when

そして私がここで見つけたHTMLのための何か:

HTMLメールの送信方法 (ただし、このHTML投稿でACTION_SENDTOを使用する方法のバリエーションは機能しませんでした-表示されている「サポートされていないアクション」が表示されました)

    // works with blank mailId - user will have to fill in To: field
    String mailId="";
    // or can work with pre-filled-in To: field
// String mailId="[email protected]";
Intent emailIntent = new Intent(Intent.ACTION_SENDTO, 
                                    Uri.fromParts("mailto",mailId, null)); 
emailIntent.putExtra(Android.content.Intent.EXTRA_SUBJECT, "Subject text here"); 
    // you can use simple text like this
// emailIntent.putExtra(Android.content.Intent.EXTRA_TEXT,"Body text here"); 
    // or get fancy with HTML like this
emailIntent.putExtra(
             Intent.EXTRA_TEXT,
             Html.fromHtml(new StringBuilder()
                 .append("<p><b>Some Content</b></p>")
                 .append("<a>http://www.google.com</a>")
                 .append("<small><p>More content</p></small>")
                 .toString())
             );
startActivity(Intent.createChooser(emailIntent, "Send email..."));
19
Andy Weinstein

あなたはこれを試すことができます

 Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
            "mailto", emailID, null));
    emailIntent.putExtra(Intent.EXTRA_SUBJECT,
            Subject);
    emailIntent.putExtra(Intent.EXTRA_TEXT,
            Text);
    startActivity(Intent.createChooser(emailIntent, Choosertitle);

わたしにはできる

5
MPG