如何通过电子邮件发送在"android/data"中创建的文件?



我想通过电子邮件共享使用服务制作和编写的文件。我知道我不能与电子邮件共享一个私人文件,但是如何使用内容提供商来做到这一点。我在线阅读内容提供商可以提供帮助,但我无法使其正常工作。(我将文件创建代码与意图创建合并为简单(

Intent email = new Intent(Intent.ACTION_SEND);
    email.putExtra(Intent.EXTRA_EMAIL, new String[]{ "someone@gmail.com"});
    email.putExtra(Intent.EXTRA_SUBJECT, "Nothing");
    email.putExtra(Intent.EXTRA_TEXT, "Nothing");
    email.setType("message/rfc822");
    Uri uri = null;
    try {
        File file = new File(this.getExternalFilesDir(null), "samplefile.txt");
        uri = FileProvider.getUriForFile(this, "lcukerd.com.android.fileprovider", file);
        FileOutputStream osw = new FileOutputStream(file);
        osw.write("Say something".getBytes("UTF-8"));
        osw.close();
        Log.i("File Reading stuff", "success");
    } catch (Exception e)
    {
        Log.e(tag,"File creation error",e);
    }
    //Uri uri =  FileProvider.getUriForFile(this, "lcukerd.com.android.fileprovider", );
    //Uri uri = Uri.fromFile(getFileStreamPath("samplefile.txt"));
    Log.d(tag,uri.toString());
    email.putExtra(Intent.EXTRA_STREAM,uri);
    startActivityForResult(Intent.createChooser(email, "Choose an Email client :"),1);

我可以选择选择应用程序,但是什么也没发生。Gmail应用不打开。

gmail如果使用Uri uri = Uri.fromFile(getFileStreamPath("samplefile.txt"));,则打开打开

实际上,我想从服务写文件,然后通过电子邮件发送该文件。请帮助我实现这一目标。

使用以下代码,

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
emailIntent.setType("*/*");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] {"me@gmail.com"}); 
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, 
"Test Subject"); 
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, 
"go on read the emails");     
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromfile(new File(yourtextfilepath));
startActivity(Intent.createChooser(emailIntent, "Send mail..."));

确保您的文本文件路径应来自外部存储卡。操作发送不接受内部内存中的文件。也可以尝试链接1

最新更新