我正在开发小型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所以现在无法附加此代码工作正常。
答案 0 :(得分:1)
您需要将文件复制到电子邮件活动可以访问的位置。例如。到SD卡。