Как сделать ImageButton непосредственно открытым email composer по клику?
Я сделал одно приложение для epaper / emagazine, в котором я хочу дать imagebutton для email composer, что если я нажму на эту кнопку, он сразу откроет email composer, вставив все данные этой страницы в тело сообщения email composer, спрашивая только адрес получателя.
У меня есть выход, но вместо электронной почты он открывает всплывающий список с запросом обмена сообщениями и 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 ответа:
Вызов метода
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" />
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(); }
Используя намерение, нам не нужно разрешение..