附件不附带电子邮件

时间:2014-09-16 13:16:22

标签: android android-sqlite email-attachments

我正在开发小型Android应用程序。在那个用户想要备份 SQLite数据库所以我尝试附加 SQLite数据库到邮件,当我在 android设备上运行这个应用程序时,打开一个对话框,显示 Gmail &其他一些应用。当我选择 Gmail 时,它会自动显示发送邮件ID 主题电子邮件内容附件还,现在我点击发送邮件发送到相应的电子邮件。当我检查电子邮件附件不可用时?为什么SQLite数据库没有附加?我的代码出了什么问题?

File getdbdatapath= Environment.getDataDirectory();
String currentDBPath = "/data/com.example.appname/databases/dbname/"; 
File path=new File(getdbdatapath, currentDBPath);
Log.d("Path", path.toString());

//File extdb= Environment.getExternalStorageDirectory();
//String extpath=extdb+"/NewFolder/dbname";
//File pathp=new File(extdb, extpath);
//Log.d("New Path", pathp.toString());

Log.i(getClass().getSimpleName(), "send  task - start");

final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);

String address = "clientmailid@gmail.com";
String subject = "Application Database";
String emailtext = "Please check the database as attachement";

//emailIntent.setType("Application/database");
//emailIntent.setType("text/html");
//emailIntent.setType("message/rfc822");            
emailIntent.setType("vnd.android.cursor.dir/email");  

emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] { address });

emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);

emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + path));

emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, emailtext);

startActivity(Intent.createChooser(emailIntent, "Send Mail..."));

我提到了link1 link2 link3,将mailIntent.setType("text/html");更改为多个setTypes。从外部获取数据库,但没有工作。帮我。提前谢谢。


此代码工作正常

String extpath=Environment.getExternalStorageDirectory() +"/NewFolder/dbname";
File pathp=new File(extpath);

在上面的代码中,它需要mnt> sdcard> mnt> sdcard> NewFloder> dbname所以现在无法附加此代码工作正常。

1 个答案:

答案 0 :(得分:1)

您需要将文件复制到电子邮件活动可以访问的位置。例如。到SD卡。