Я не могу запустить код намерения электронной почты на своем телефоне

#java #android #android-studio

Вопрос:

введите описание изображения здесь

код намерения электронной почты полностью выполняется в мобильной модели Android, предоставляемой Android studio, но когда я запускаю код в своем личном телефоне, он не работает… пожалуйста, ответьте ??

Комментарии:

1. Я там какая-то ошибка в вашем журнале

2. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.

Ответ №1:

Не забудьте указать тип намерения, чтобы оно запускало почтовые клиенты

    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 prompts email client only  
    email.setType("message/rfc822");  
      
    startActivity(Intent.createChooser(email, "Choose an Email client :"));

  
 

Ответ №2:

Код Котлина,

 val selectorIntent = Intent(Intent.ACTION_SENDTO)
selectorIntent.data = Uri.parse("mailto:")
val emailIntent = Intent(Intent.ACTION_SEND)
emailIntent.putExtra(Intent.EXTRA_EMAIL, arrayOf<String>("mail id"))
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject")
emailIntent.selector = selectorIntent
startActivity(Intent.createChooser(emailIntent, "Send email..."))
 

Java-код,

 Intent selectorIntent = new Intent(Intent.ACTION_SENDTO);
selectorIntent.setData(Uri.parse("mailto:"));
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{"mail id"});
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
emailIntent.setSelector(selectorIntent);
startActivity(Intent.createChooser(emailIntent, "Send email..."));
 

Ответ №3:

 Intent intEmail = new Intent(Intent.ACTION_SENDTO);
intEmail.setType("plain/text");
intEmail.setData(Uri.parse("mailto:"));
intEmail.putExtra(Intent.EXTRA_EMAIL, new String[]{"receiver_email_address"});
            
 if (intEmail.resolveActivity(getPackageManager()) != null){
    startActivity(intEmail);
    }
 

Ответ №4:

Я протестировал код майяра хассана, он отлично работал на моей стороне. [на Samsung Android 8.1]

Код:

 public class TestSentMail extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test_sent_mail);

        Button button = findViewById(R.id.submitButton);
        button.setOnClickListener(view -> {
            submitOrder();
        });
    }

    private void submitOrder() {
        Intent intent = new Intent(Intent.ACTION_SENDTO);
        intent.setData(Uri.parse("mailto:"));
        intent.putExtra(Intent.EXTRA_SUBJECT, "coffe order for tancolo");
        if (intent.resolveActivity(getPackageManager()) != null) {
            startActivity(intent);
        }
    }
}
 

Скриншот:

отправленный скриншот электронной почты

Как решить вашу проблему

В общем, я думаю, что мы должны сделать это, как показано ниже.

  1. Проверьте журнал на панели Logcat в Android Studio, возможно, есть исключения.
  2. Добавлен отладочный код, который вы хотите добавить.

Ответ №5:

 val i = Intent(Intent.ACTION_SEND)
    i.type = "message/rfc822"
    i.putExtra(Intent.EXTRA_EMAIL, arrayOf<String>("sumsolutions.net@gmail.com"))
    i.putExtra(Intent.EXTRA_SUBJECT, "Feedback")
    i.putExtra(Intent.EXTRA_TEXT, "Text here...")
    try {
        startActivity(Intent.createChooser(i, "Send mail..."))
    } catch (ex: ActivityNotFoundException) {
        Toast.makeText(this, "There are no email clients installed.", Toast.LENGTH_SHORT)
            .show()
    }