Android - появляется ошибка «ни одно приложение не может выполнить это действие» при попытке отправить электронное письмо? - PullRequest
10 голосов
/ 25 апреля 2011

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

Вот мой код: -

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();
}

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

Ответы [ 2 ]

18 голосов
/ 25 апреля 2011

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

emailIntent.setType("message/rfc822");

или

emailIntent.setType("text/plain");
0 голосов
/ 12 августа 2014

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...