簡體   English   中英

Android發送帶有附件錯誤的電子郵件

[英]Android send email with attachment error

我想從我的應用程序發送帶有附件的電子郵件(附件是csv文件),但是Gmail表示無法添加該附件。 將文本轉換為csv或向gmail添加附件是否出錯?

我的代碼:

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;
    }
}

權限有問題。 如果要將文件附加到郵件,則必須將其保存在公共文件夾(如“文檔”)中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM