Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android中的电子邮件附件未成功_Android - Fatal编程技术网

android中的电子邮件附件未成功

android中的电子邮件附件未成功,android,Android,考虑以下代码: String outFileName = "/data/data/com.packagename/attachment.ics"; emailintent.putExtra(Intent.EXTRA_STREAM, Uri.parse(outFileName)); emailintent.setType("plain/text"); startActivity(Intent.createChooser(emailintent, "Send mai

考虑以下代码:

String outFileName = "/data/data/com.packagename/attachment.ics";

emailintent.putExtra(Intent.EXTRA_STREAM, Uri.parse(outFileName));
        emailintent.setType("plain/text");
        startActivity(Intent.createChooser(emailintent, "Send mail..."));
上面的代码正在启动电子邮件客户端,启动时会显示附件。但是当我发送电子邮件时,附件没有收到。尸体正在接收中。 这里出了什么问题

先谢谢你

编辑: 我需要为ics文件设置特定的mime类型吗?我甚至尝试发送一个txt文件,但也没有发送。当我试图发送电子邮件时,附件确实会显示,但当我收到电子邮件时,附件不会显示

emailintent.setType("text/calendar");
试试这个

emailintent.setType("text/calendar");

与此主题相关的线程很多

你试过添加这个吗

i.putExtra(Intent.EXTRA_流,Uri.parse(“文件:/”+attachmentFilePath))


与此主题相关的帖子很多

你试过添加这个吗

i.putExtra(Intent.EXTRA_流,Uri.parse(“文件:/”+attachmentFilePath))

}

这会有用的

}


这将起作用…

我发现了正在发生的问题。我将要附加到电子邮件的文件放入应用程序中的私人文件夹。电子邮件客户端无法访问

我所要做的就是把它放在SD卡上的公共目录里。。电子邮件客户端获得了访问权限,我开始接收我从应用程序发送的邮件

PS:即使对于ics文件,MIME类型也是纯文本


谢谢你的帮助。

我发现了正在发生的问题。我将要附加到电子邮件的文件放入应用程序中的私人文件夹。电子邮件客户端无法访问

我所要做的就是把它放在SD卡上的公共目录里。。电子邮件客户端获得了访问权限,我开始接收我从应用程序发送的邮件

PS:即使对于ics文件,MIME类型也是纯文本


感谢您的帮助。

我在使用附加SQLite数据库发送电子邮件时也面临同样的问题。我正在寻找这个问题的解决办法,但什么也没找到

无法通过电子邮件从内部存储发送附加文件

要通过电子邮件发送文件,请先将该文件保存到外部存储器,然后附加并发送

我正在使用此代码将文件保存到SD卡

public void copyFileToSdCard()
    {
        File f = new File(Environment.getExternalStorageDirectory() + "/File name");
        if(f.exists()) 
        {

        }
        else
        {
            try 
            {
                File sd = Environment.getExternalStorageDirectory();
                File data = Environment.getDataDirectory();

                if (sd.canWrite()) 
                {
                    String currentPath = "file path";
                    String backupFilePath = "file name ";
                    File currentFile = new File(data, currentPath);
                    File backupFile = new File(sd, backupFilePath);

                    if (currentFile.exists()) {
                        FileChannel src = new FileInputStream(currentFile).getChannel();
                        FileChannel dst = new FileOutputStream(backupFile).getChannel();
                        dst.transferFrom(src, 0, src.size());
                        src.close();
                        dst.close();
                    }
                }
            } 
            catch (Exception e) {
                Log.w("Backup", e);
            }
        }
    }
这是附加和发送的

Intent i = new Intent(Intent.ACTION_SEND);
            i.putExtra(android.content.Intent.EXTRA_EMAIL,new String[] {emailAddress}); 
            i.putExtra(Intent.EXTRA_SUBJECT, "Subject text");
            i.putExtra(Intent.EXTRA_TEXT, "Body text");
            Uri uri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "file name"));
            i.putExtra(Intent.EXTRA_STREAM, uri);
            i.setType("text/plain");
            startActivity(Intent.createChooser(i, "Send mail"));

我在使用附加SQLite数据库发送电子邮件时也面临同样的问题。我正在寻找这个问题的解决办法,但什么也没找到

无法通过电子邮件从内部存储发送附加文件

要通过电子邮件发送文件,请先将该文件保存到外部存储器,然后附加并发送

我正在使用此代码将文件保存到SD卡

public void copyFileToSdCard()
    {
        File f = new File(Environment.getExternalStorageDirectory() + "/File name");
        if(f.exists()) 
        {

        }
        else
        {
            try 
            {
                File sd = Environment.getExternalStorageDirectory();
                File data = Environment.getDataDirectory();

                if (sd.canWrite()) 
                {
                    String currentPath = "file path";
                    String backupFilePath = "file name ";
                    File currentFile = new File(data, currentPath);
                    File backupFile = new File(sd, backupFilePath);

                    if (currentFile.exists()) {
                        FileChannel src = new FileInputStream(currentFile).getChannel();
                        FileChannel dst = new FileOutputStream(backupFile).getChannel();
                        dst.transferFrom(src, 0, src.size());
                        src.close();
                        dst.close();
                    }
                }
            } 
            catch (Exception e) {
                Log.w("Backup", e);
            }
        }
    }
这是附加和发送的

Intent i = new Intent(Intent.ACTION_SEND);
            i.putExtra(android.content.Intent.EXTRA_EMAIL,new String[] {emailAddress}); 
            i.putExtra(Intent.EXTRA_SUBJECT, "Subject text");
            i.putExtra(Intent.EXTRA_TEXT, "Body text");
            Uri uri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "file name"));
            i.putExtra(Intent.EXTRA_STREAM, uri);
            i.setType("text/plain");
            startActivity(Intent.createChooser(i, "Send mail"));


这与电子邮件附件有什么关系。。为什么在我收到邮件时不显示…它在我发送邮件或emailintent.setType(“text/plain”)时显示;首先告诉我什么是attachment.ics?它是一个包含一些事件细节的文件,我已经通过代码输入了这些细节。此文件可以在MAC系统上打开。如果我们点击mac上的ics文件,那么该文件的内容将直接添加到mac OS中的日历中。。ie iCal.只需尝试附加图像并检查图像是否会在电子邮件中出现。。?我认为这个文件会产生问题..这和电子邮件附件有什么关系。。为什么在我收到邮件时不显示…它在我发送邮件或emailintent.setType(“text/plain”)时显示;首先告诉我什么是attachment.ics?它是一个包含一些事件细节的文件,我已经通过代码输入了这些细节。此文件可以在MAC系统上打开。如果我们点击mac上的ics文件,那么该文件的内容将直接添加到mac OS中的日历中。。ie iCal.只需尝试附加图像并检查图像是否会在电子邮件中出现。。?我认为这个文件会产生问题..不起作用,正如你上面所建议的。我仍然无法收到附件不工作,你上面建议的。我仍然无法收到附件。您是否允许上网?您的文件路径是否正确?在处理ics文件时,是否需要添加特殊的MIME类型?请使用此emailIntent.setType(“文本/日历”);而不是emailIntent.setType(“文本/html”);因为您使用的是“.ics”“扩展名文件,,,可能有效。您的文件位置是什么?”?在asset folderno中,这是我的路径:/data/data/com.helios.NauticDates/attachment.icsu是否授予internet权限?您的文件路径是否正确?在处理ics文件时,是否需要添加特殊的MIME类型?请使用此emailIntent.setType(“文本/日历”);而不是emailIntent.setType(“文本/html”);因为您使用的是“.ics”“扩展名文件,,,可能有效。您的文件位置是什么?”?在asset folderno中,以下是我的路径:/data/data/com.helios.NauticDates/attachment.ics如何在外部存储器中保存文件:如何在外部存储器中保存文件: