电子邮件附件仅适用于更改后的extra_text

时间:2018-06-19 14:01:11

标签: android email android-intent attachment

我正在尝试在Android应用程序中发送一个或多个CSV文件。该代码工作正常,并且在gmail应用程序运行时,附件和所有“ EXTRAS”(如主题,文本)均可用。当我发送电子邮件时,电子邮件将不带附件地到达。 仅当我更改电子邮件文本/正文中的至少一个字母时,才会正确发送电子邮件(带有附件)。 如果删除EXTRA_TEXT是同样的问题,则必须在GMail应用中至少输入一个字母。

您怎么看代码,我也尝试了intent.setType(“ plain / text”)

这是我的代码:

File filePath = getActivity().getApplicationContext().getFilesDir();
    File files[] = filePath.listFiles();
    uris = new ArrayList<>();

    for (File file : files){
        if(file.getPath().endsWith(".csv")){
            uris.add(FileProvider.getUriForFile(getActivity(),"com.my.company", file ));
        }
    }
    if(uris.size() > 0){
        Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE);
        //intent.setType("plain/text");
        intent.setType("message/rfc822");
        intent.putExtra(Intent.EXTRA_EMAIL, new String[] {"myEmail@abc.com"});
        intent.putExtra(Intent.EXTRA_SUBJECT, "new CSV");
        intent.putExtra(Intent.EXTRA_TEXT, "Hello, there is a new CSV file for you");
        intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

        startActivityForResult(Intent.createChooser(intent, "Sending multiple attachments"), REQUEST_EMAIL_CODE);
    } else {
        Toast.makeText(getActivity(), "no files available", Toast.LENGTH_SHORT).show();
    }

谢谢您的帮助

0 个答案:

没有答案