#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);
}
}
}
Скриншот:
Как решить вашу проблему
В общем, я думаю, что мы должны сделать это, как показано ниже.
- Проверьте журнал на панели Logcat в Android Studio, возможно, есть исключения.
- Добавлен отладочный код, который вы хотите добавить.
Ответ №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()
}