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

Я сделал форму обратной связи в моем приложении для Android.

Я хочу, чтобы я заполнил весь текст в этой форме (editText) для доставки на мой адрес электронной почты без открытия каких-либо других приложений или около того.

Я не смог понять, как это сделать, но потом подумал, как это сделать:

EditText etUserLikeResponse = (EditText) findViewById(R.id.user_like_response);
        EditText etUserDontLikeResponse = (EditText) findViewById(R.id.user_dont_like_response);
        EditText etUserOtherFeaturesResponse = (EditText) findViewById(R.id.user_other_features_response);

        String etUserLikeResponseText = etUserLikeResponse.getText().toString();
        String etUserDontLikeResponseText = etUserDontLikeResponse.getText().toString();
        String etUserOtherFeaturesResponseText = etUserOtherFeaturesResponse.getText().toString();

        Uri etUserLikeResponseTextUri = Uri.parse(etUserLikeResponseText);
        Uri etUserDontLikeResponseTextUri = Uri.parse(etUserDontLikeResponseText);
        Uri etUserOtherFeaturesResponseTextUri = Uri.parse(etUserOtherFeaturesResponseText);

        final ArrayList<Uri> userResponseUri = new ArrayList<>();
        userResponseUri.add(etUserLikeResponseTextUri);
        userResponseUri.add(etUserDontLikeResponseTextUri);
        userResponseUri.add(etUserOtherFeaturesResponseTextUri);

        Button btnSendFeedback = (Button) findViewById(R.id.btn_send_feedback);
        btnSendFeedback.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                final Handler handler2 = new Handler();
                handler2.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        Intent userFeedbackIntent = new Intent();
                        userFeedbackIntent.setAction(Intent.ACTION_SEND_MULTIPLE);
                        userFeedbackIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, userResponseUri);
                        userFeedbackIntent.setType("message/rfc822");
                        userFeedbackIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{"abc.xyz321ba@gmail.com"});
                        startActivity(userFeedbackIntent);
                    }
                }, 200);
            }
        });

Я сначала захватил текст, написанный на EditText и затем преобразуется в Uri сделать то же самое, что и здесь: http://developer.android.com/training/sharing/send.html

Проблема, с которой я сталкиваюсь сейчас, заключается в том, что, когда я нажимаю на btnSendFeedback и выберите Gmail, там написано " Не удалось прикрепить файл ".

Поскольку я новичок, я не могу понять, что я делаю неправильно.

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

Извините за плохое форматирование вопроса.

Благодарю.

1 ответ

Решение

Хорошо, похоже, что вы используете Intent.EXTRA_STREAM который включает в себя "файл", а у вас нет файла, не так ли? (проверьте этот ответ: Android: Intent.ACTION_SEND с EXTRA_STREAM не прикрепляет изображение при выборе приложения Gmail в htc Hero), поэтому вы можете создать текстовый файл, а затем попытаться прикрепить его к своей электронной почте.

Другой вариант может быть просто заполнить тело вашего письма (отметьте: Отправить адрес электронной почты) с данными, которые вы хотите отправить.


Обновление: если вы хотите отправить электронное письмо с данными в теле письма, см. Developer.android.com: намерение по электронной почте

И если вы хотите избежать других приложений в процедуре, вы можете проверить это так: Ответ на отправку электронной почты в Android с использованием API Java, не используя встроенное приложение по умолчанию.

Другие вопросы по тегам