我想通过电子邮件发送我的应用程序的数据库文件。这使我更容易在错误情况下提供帮助。为此,我需要检索我的应用程序的安装文件夹。我怎样才能做到这一点,以便我可以发送我的数据库,它位于 APP-FOLDER\databases\mydb.db
谢谢
我想通过电子邮件发送我的应用程序的数据库文件。这使我更容易在错误情况下提供帮助。为此,我需要检索我的应用程序的安装文件夹。我怎样才能做到这一点,以便我可以发送我的数据库,它位于 APP-FOLDER\databases\mydb.db
谢谢
希望,您正在询问策略或从哪里开始这样做。
您可以遵循几种方法,
1)将您的 db 文件保存到 sdcard,然后您可以使用它来发送邮件。您可以通过使用SQLiteDatabase.openOrCreateDatabase(String, SQLiteDatabase.CursorFactory)
并简单地"/sdcard/yrdatabase.db"
作为第一个参数传递来实现这一点。
2)如果您不将其保存到 sdcard ,则只需将您的 db 文件移动到 sdcard。您可以使用以下代码实现此目的。(即将以下功能绑定到您的按钮或无论如何从您的应用程序中调用它)
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
文件后,您可以使用邮件功能进一步使用它。