Как отправить почту по нажатию кнопки Android Studio? - PullRequest
0 голосов
/ 09 января 2019

Я хочу отправить электронное письмо, и когда нажата кнопка, я хочу получить список приложений на основе электронной почты. Когда я использую приведенный ниже исходный код, он выводит все приложения, основанные на сообщениях, как показано на рисунке

Intent intent2 = new Intent(Intent.ACTION_SEND);
intent2.setData(Uri.parse("mailto:"));
intent2.setType("plain/text");
intent2.putExtra(Intent.EXTRA_EMAIL, new String[]{email});
startActivity(intent2);

Когда я нажимаю на кнопку, такие приложения показывают

enter image description here

но я хочу только приложения на основе электронной почты, например. Что я должен изменить, чтобы получить такой список приложений?

enter image description here

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Просто вызовите намерение для электронной почты в вашем onClicklistener,

Intent email = new Intent(Intent.ACTION_SEND);  
email.putExtra(Intent.EXTRA_EMAIL, new String[]{ to});  
email.putExtra(Intent.EXTRA_SUBJECT, subject);  
email.putExtra(Intent.EXTRA_TEXT, message);  

//need this to prompt`enter code here`s email client only  
email.setType("message/rfc822");  

startActivity(Intent.createChooser(email, "Choose an Email client :"));  
0 голосов
/ 09 января 2019

Вы можете использовать это

 btnReport.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String mailto = "mailto:useremail@gmail.com" +
                    "?cc=" +
                    "&subject=" + Uri.encode("your subject") +
                    "&body=" + Uri.encode("your mail body");
            Intent emailIntent = new Intent(Intent.ACTION_SENDTO);
            emailIntent.setData(Uri.parse(mailto));

            try {
                startActivity(emailIntent);
            } catch (ActivityNotFoundException e) {
                Toast.makeText(context, "Error to open email app", Toast.LENGTH_SHORT).show();
            }
        }
    });
...