如何将我的应用程序反馈表中填写的文本发送到我的电子邮件地址?请查看详情

How to get the text filled in feedback form of my app to my email address? Please see details

我在我的 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 时,它显示“无法附加文件'.

由于我是初学者,我不知道自己做错了什么。

请告诉我,如果还有其他好的方法可以完成此任务,请告诉我。

抱歉问题格式错误。

谢谢。

好的,好像您正在使用 Intent.EXTRA_STREAM,其中涉及 'file',但您没有任何文件,是吗? (检查此答案:Android: Intent.ACTION_SEND with EXTRA_STREAM doesn't attach any image when choosing Gmail app on htc Hero),因此您可以创建一个 txt 文件,然后尝试将其附加到您的电子邮件中。

其他选项可以只用您要发送的数据填充您的电子邮件正文(检查:Send Email Intent)。


更新:如果您想发送一封包含电子邮件正文中数据的电子邮件,请参阅 Developer.android.com: Email intent

如果你想避免在进程中使用其他应用程序,你可以检查这个,所以回答: Sending email in android using javamail api without using the default built in app