如何将我的应用程序反馈表中填写的文本发送到我的电子邮件地址?请查看详情
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
我在我的 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