我想通过电子邮件发送我的应用程序的数据库文件。这使我在错误情况下更容易提供帮助。为此,我需要检索我的应用程序的安装文件夹。我如何实现这一点,以便我可以发送我的数据库,这是在这里APP-FOLDER \ databases \ mydb.db
由于
答案 0 :(得分:0)
希望,您在询问策略或从何处开始这样做。
您可以遵循几种方法,
1)将您的db文件保存到SD卡,然后您可以使用它来发送邮件功能。您可以使用SQLiteDatabase.openOrCreateDatabase(String, SQLiteDatabase.CursorFactory)
完成此操作,只需将"/sdcard/yrdatabase.db"
作为第一个参数传递。
2)如果您没有将其保存到SD卡,那么只需将您的db文件移动到SD卡。您可以使用以下代码实现此目的。 (即将以下功能绑定到您的按钮或以任何方式从您的应用程序调用它)
public void copyDBToSDCard() {
try {
InputStream myInput = new FileInputStream("/data/data/com.yrproject/databases/"+DATABASE_NAME);
File file = new File(Environment.getExternalStorageDirectory().getPath()+"/"+DATABASE_NAME);
if (!file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
Log.i("TAG","File creation failed for " + file);
}
}
OutputStream myOutput = new FileOutputStream(Environment.getExternalStorageDirectory().getPath()+"/"+DATABASE_NAME);
byte[] buffer = new byte[1024];
int length;
while ((length = myInput.read(buffer))>0){
myOutput.write(buffer, 0, length);
}
//Close the streams
myOutput.flush();
myOutput.close();
myInput.close();
Log.i("TAG","copied");
} catch (Exception e) {
Log.i("TAG","exception="+e);
}
}
完成访问db
文件后,您可以使用邮件功能进一步使用它。