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

Я создал форму обратной связи в своем приложении для 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[]{"[email protected]"});
                        startActivity(userFeedbackIntent);
                    }
                }, 200);
            }
        });

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

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

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

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

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

Спасибо.


person Community    schedule 21.11.2015    source источник


Ответы (1)


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

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


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

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

person mayo    schedule 21.11.2015
comment
я хочу не прикреплять файл куда-либо, а отправлять тексты прямо на мой адрес электронной почты, не открывая какое-либо другое приложение или что-то в этом роде. Пожалуйста, дайте мне знать, как я могу это сделать. - person ; 22.11.2015
comment
Если вы хотите отправить электронное письмо, не открывая приложение, вы должны запрограммировать это, без помощи других приложений, а намерения - прямо противоположное. В любом случае проверьте обновленный ответ. - person mayo; 22.11.2015