Как сделать так, чтобы ImageButton напрямую открывал почтовый композитор по клику? - PullRequest
3 голосов
/ 21 июня 2011

Я сделал одно приложение для epaper / emagazine, в котором я хочу дать кнопку image для компоновщика электронной почты, которая, если я нажму на эту кнопку, откроет композитор электронной почты, вставив все данные этой страницы в тело сообщения компоновщика электронной почты. спрашивать только адрес получателя.

У меня есть вывод, но вместо электронной почты он открывает всплывающий список с запросом обмена сообщениями и Bluetooth.

Это мой код:

final Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setType("text/plain");
emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[] { "lets.think.android@gmail.com" });
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "App Error Report");
emailIntent.putExtra(Intent.EXTRA_TEXT, "stacktrace");
activity(Intent.createChooser(emailIntent, "Send error report..."));

Ответы [ 2 ]

12 голосов
/ 21 июня 2011

Вызов sendEmail() метод по нажатию кнопки:

final Context context = getApplicationContext();    
Button button = (Button) findViewById(R.id.openpdfbutton);          
button.setOnClickListener(new OnClickListener() {               
    public void onClick(View arg0) {
        sendEmail(context, new String[]{"abc@xyz.com"}, "Sending Email",
                  "Test Email", "I am body");
    }
});

Определите метод sendEmail():

public static void sendEmail(Context context, String[] recipientList,
            String title, String subject, String body) {
    Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);    
    emailIntent.setType("plain/text");    
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, recipientList);
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);   
    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, body);
    context.startActivity(Intent.createChooser(emailIntent, title));
}

И установить разрешение в AndroidManifest.xml файле:

<uses-permission android:name="android.permission.INTERNET" />
0 голосов
/ 09 апреля 2014
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("message/rfc822");
i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"recipient@example.com"});
i.putExtra(Intent.EXTRA_SUBJECT, "subject of email");
i.putExtra(Intent.EXTRA_TEXT   , "body of email");
try {
    startActivity(Intent.createChooser(i, "Send mail..."));
} catch (android.content.ActivityNotFoundException ex) {
    Toast.makeText(MyActivity.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
}

используя намерение, нам не нужно разрешение ..

...