【发布时间】:2014-04-13 11:10:57
【问题描述】:
我为我们公司的销售人员开发了应用程序。他们中的大多数人在农村地区进行销售,更多时候这些地区没有信号。然后他们告诉我们他们将他们的销售同步到服务器。但是更多的销售细节丢失了。 然后我尝试开发工具作为我的应用程序的第三方工具,以将本地数据库文件保存到手机内部存储器。然后我们可以通过电子邮件获取它。这里是代码
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 卡。我的数据库 url 有任何问题吗?
【问题讨论】:
-
尝试使用此方法获取数据库路径:getDatabasePath("TSRDBNEW")
-
编辑:我错过了一个重要的细节:是同一个应用程序。一个不错的选择是使用数据库中的 SQLiteOpenHelper,然后使用适配器进行查询。
-
亲爱的 LuS。我必须在哪里添加您的代码片段。请您添加作为答案。?
-
@PriyanRockZ 将 String currentDBPath = ... 替换为: File dbFile = getApplicationContext().getDatabasePath("TSRDBNEW");然后 String currentDBPath = dbFile.getAbsolutePath();希望这会有所帮助
标签: java android android-sqlite axis2