Java Android发送带有附件错误的电子邮件
我想从我的应用程序发送带有附件的电子邮件(附件是csv文件),但Gmail说,附件无法添加。将文本转换为csv或将附件添加到gmail中是否有错误 我的代码:Java Android发送带有附件错误的电子邮件,java,android,gmail,Java,Android,Gmail,我想从我的应用程序发送带有附件的电子邮件(附件是csv文件),但Gmail说,附件无法添加。将文本转换为csv或将附件添加到gmail中是否有错误 我的代码: public class EmailInput extends DialogFragment { View mainView; TextView email; Button submitSend; ArrayList<String> resultsEmail; ArrayList<
public class EmailInput extends DialogFragment {
View mainView;
TextView email;
Button submitSend;
ArrayList<String> resultsEmail;
ArrayList<String> valuesMail;
TextView soucetVysledkuMail;
String subject = "Kubírovací kalkulačka";
MainActivity MA;
String attachmentFile;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
MA = (MainActivity) getActivity();
mainView = inflater.inflate(R.layout.fragment_email_input, container, false);
email = (TextView) mainView.findViewById(R.id.email);
submitSend = (Button) mainView.findViewById(R.id.submitSend);
resultsEmail = ((MainActivity) getActivity()).getVysledky();
valuesMail = ((MainActivity) getActivity()).getValues();
soucetVysledkuMail = ((MainActivity) getActivity()).getSoucetVysledku();
getDialog().setTitle("Odeslat výsledky");
submitSend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String FILENAME = "email-attachment.csv";
String string = "";
try {
FileOutputStream fOut = ((MainActivity) getActivity()).getContext().openFileOutput(FILENAME, Context.MODE_PRIVATE);
for (int i = 0; i < resultsEmail.size(); i++) {
string += resultsEmail.get(i) + "," + valuesMail.get(i);
}
string += "Součet výsledků:," + MA.getsoucetVsechVysledkuMA();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
attachmentFile = "mail-attachment.csv";
Uri URI = Uri.parse("file://" + attachmentFile);
String content = results();
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{email.getText().toString()});
emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
emailIntent.putExtra(Intent.EXTRA_TEXT, content);
emailIntent.putExtra(Intent.EXTRA_STREAM, URI);
emailIntent.setType("text/plain");
startActivity(Intent.createChooser(emailIntent, "Vyberte aplikaci:"));
}
});
return mainView;
}
public String results() {
String content = "";
for (int i = 0; i < resultsEmail.size(); i++) {
int cislovka = i+1;
content += cislovka + ". " + resultsEmail.get(i) + " (" + valuesMail.get(i) + ") \n";
}
content += "Součet výsledků: " + MA.getsoucetVsechVysledkuMA();
return content;
}
}
公共类EmailInput扩展了DialogFragment{
主视图;
TextView电子邮件;
按钮提交发送;
ArrayList结果邮件;
ArrayList valuesMail;
TextView soucetVysledkuMail;
String subject=“Kubírovacíkalkulačka”;
主要活动MA;
字符串附件文件;
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
MA=(MainActivity)getActivity();
mainView=充气机。充气(R.layout.fragment\u email\u输入,容器,false);
email=(TextView)mainView.findViewById(R.id.email);
submitSend=(按钮)mainView.findviewbyd(R.id.submitSend);
结果邮件=((MainActivity)getActivity()).getVysledky();
valuesMail=((MainActivity)getActivity()).getValues();
soucetVysledkuMail=((主活动)getActivity()).getSoucetVysledku();
getDialog().setTitle(“Odeslat výsledky”);
submitSend.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
String FILENAME=“email attachment.csv”;
字符串=”;
试一试{
FileOutputStream fOut=((MainActivity)getActivity()).getContext().openFileOutput(文件名,Context.MODE_PRIVATE);
对于(int i=0;i
权限有问题。如果要将文件附加到邮件,则必须将其保存在公共文件夹(如Documents)中。权限有问题。如果要将文件附加到邮件中,则必须将其保存在公共文件夹中,如“文档”