gpt4 book ai didi

java - 如何保存另一个Android应用程序的sqlite db文件?

转载 作者:行者123 更新时间:2023-12-01 13:18:09 26 4
gpt4 key购买 nike

我为我们公司的销售人员开发了应用程序。他们中的大多数人在农村地区进行销售,而且这些地区很多时候没有信号。然后他们告诉我们他们将销售同步到服务器。但更多的销售详细信息丢失了。然后我尝试开发工具作为我的应用程序的第三方工具,以将本地数据库文件保存到手机内存中。然后我们可以通过电子邮件获取它。这里是代码

    try {
File sd = Environment.getExternalStorageDirectory();
File data = Environment.getDataDirectory();
Toast.makeText(getApplicationContext(), "SD Card Detecting ", Toast.LENGTH_SHORT).show();
if (sd.canWrite()) {
Toast.makeText(getApplicationContext(), "Backup is writing to SD card", Toast.LENGTH_SHORT).show();
String currentDBPath = "//data//com.lk.lankabell.android.activity//databases//TSRDBNEW";
String backupDBPath = "TSRDBNEW-Backup";
File currentDB = new File(data, currentDBPath);
File backupDB = new File(sd, backupDBPath);

if (currentDB.exists()) {
FileChannel src = new FileInputStream(currentDB).getChannel();
FileChannel dst = new FileOutputStream(backupDB).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
Toast.makeText(getApplicationContext(), "Backup is successful to SD card", Toast.LENGTH_SHORT).show();
}
}
} catch (Exception e) {
Toast.makeText(getApplicationContext(), "Backup is un-success to SD card", Toast.LENGTH_SHORT).show();
}

我使用了我的主要应用程序 [android+ksoap+axis2] 技术。

请建议我实现这个。我尝试了上面的代码。但它不起作用。它也需要 SD 卡。我的数据库网址有任何问题吗?

enter image description here

最佳答案

您无法如此轻松地从任何应用程序的数据“私有(private)”文件夹中“获取”文件。最好的方法是,当您从类到数据库创建/更新/删除时,创建一个新查询来获取您想要的信息,将其保存为字符串,然后保存在 txt 文件或 json 文件中的 sdcard 中,或您想要的某种格式。使用 CSV 格式可能是一个可能的解决方案(没有数据库模型不能做更多):

public void generateTXTOnSD(String[] lines_txt) 
{
// lines_txt contains an array of each register in CSV format.
try
{
File root = new File(Environment.getExternalStorageDirectory(),"NameOfDirectoryYouWantToSave");
if (!root.exists())
{
root.mkdirs();
}
Calendar cal = Calendar.getInstance();
// I made this to no override early versions of data I have stored.
String hour= String.valueOf(cal.get(cal.HOUR_OF_DAY))+"_"+String.valueOf(cal.get(cal.MINUTE))+"_"+String.valueOf(cal.get(cal.SECOND));
File txtfile = new File(root, name_txt+hour+".txt");
FileWriter writer = new FileWriter(txtfile);
//Every line contain the info you want to save
for (String line_txt : lines_txt) {
writer.append(line_txt);
writer.append('\r');
writer.append('\n');

}
writer.flush();
writer.close();


}
catch(IOException e)
{
// ERROR

}
}

希望这有帮助。

关于java - 如何保存另一个Android应用程序的sqlite db文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22298637/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com