Android — выдает ошибку «ни одно приложение не может выполнить это действие» при попытке отправить электронное письмо?

#android #email #dialog #feedback

#Android #Адрес электронной почты #диалоговое окно #Отзывы

Вопрос:

Я создаю приложение, в котором собираюсь предоставить своим клиентам функцию обратной связи. Для достижения этого я создал небольшое диалоговое окно, в котором пользователь может ввести отзыв и отправить его на мой почтовый идентификатор. Я пробовал некоторые фрагменты кода, которые я нашел в Интернете, но всякий раз, когда я пытаюсь отправить электронное письмо с эмулятора или реального устройства, я получаю сообщение об ошибке «Ни одно приложение не может выполнить это действие».

Вот мой код :-

 public void emailDialog()
{
    AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
    alertDialog.setTitle("Feedback");
    alertDialog.setMessage("Please tell us that what you feel about our product. If you are facing any problem or found any bug then please report to us. Your review is important to us. Thanks!!");
    final EditText input = new EditText(this);
    input.setLines(8);
    alertDialog.setView(input);
    alertDialog.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            String value = input.getText().toString();
            String address = "varundroid@gmail.com";
            String subject = "FeedBack";
            final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
            emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, address);
            emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
            emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, value);
            CompleteTaskManager.this.startActivity(Intent.createChooser(emailIntent, "Send Email.."));
        }
    });
    alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int whichButton) {
        // Canceled.
      }
    });
alertDialog.show();
}
  

Пожалуйста, помогите.

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

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

2. @Jim да, это то, что мне интересно. Я думал, это потому, что в моем emulaotr нет приложения электронной почты, но когда я попробовал его на реальном устройстве, оно выдавало мне ту же ошибку, и странно то, что мое приложение электронной почты полностью настроено и функционирует на моем устройстве, и все же я сталкиваюсь с этой ошибкой.

Ответ №1:

Я думаю, вам нужно установить тип объекта intent. Можете ли вы попробовать следующее

 emailIntent.setType("message/rfc822");
  

или

 emailIntent.setType("text/plain");
  

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

1. спасибо, чувак, ты мой спаситель, лол, и, пожалуйста, не смейся над моей глупой ошибкой: P ….. кстати, сейчас все работает нормально, но я не получаю поле адреса в поле «КОМУ» моего почтового приложения. есть идеи, почему это так?

2. нет проблем… Я думаю, что переменная address должна быть строковым массивом. Что-то вроде String address = {«varundroid@gmail.com «};

Ответ №2:

Если кто-то пытается сделать это из настроек XML, я добился этого, добавив в элемент Preference намерение в качестве action ACTION_SENDTO и в качестве data mailto:your.email@domain.com. Надеюсь, это может кому-то помочь.