0
A
回答
0
尽管这可能不是您尝试执行的最佳解决方案,但您的数据库已存储在/data/data/your.package.name中。您只需将其作为文件加载并保存到SD卡即可。检查这里的,这是否代码:
+0
好的,在这种情况下,我将如何从一个本地数据库导入到另一个本地数据库?而不是导出到SDCARD然后再导入回来。 – william
+1
您可以在免费应用程序中创建一个内容提供程序,将整个数据库暴露给其他应用程序。然后在付费应用程序的第一次运行中,创建一个新的空数据库,通过查询Content Provider并填写新数据库从原始应用程序获取数据。 –
1
出口例如:
public void exportDB(){
try {
File sd = Environment.getExternalStorageDirectory();
if (sd.canWrite()) {
String currentDBPath = "data/data/com.mypack.myapp/databases/mydb.db";
String backupDBPath = sd + "/filename.db";
File currentDB = new File(currentDBPath);
File backupDB = new File(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();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
导入是非常相似的出口:
public void importDB(){
try {
File sd = Environment.getExternalStorageDirectory();
if (sd.canWrite()) {
String currentDBPath = sd + "/filename.db";
String backupDBPath = "data/data/com.mypack.myapp/databases/mydb_2.db";
File currentDB = new File(currentDBPath);
File backupDB = new File(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();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
相关问题
- 1. 将MySql数据库导出到文件
- 2. 将sqlite2数据库导出到SQL
- 3. 将SQL数据库导出到Access - ASP.NET
- 4. 将数据库查询导出到OPML?
- 5. 将测试数据库导入到主数据库
- 6. 如何将SQL Server 2008数据库图导出到另一个数据库?
- 7. 将数据库表导出到模型导出
- 8. 从数据库导出数据到HTML?
- 9. 将Apex从一个数据库导出/导入到另一个数据库
- 10. 将数据导出到Excel
- 11. 将数据导出到excel
- 12. 将SDcard中的文件链接存储到SQLite数据库
- 13. 如何将数据从Hadoop导出到MySQL /任何数据库?
- 14. 将ASPNETDB数据导出到另一个数据库
- 15. 使用ClosedXML将数据从excel导出到数据库表
- 16. Wordpress使用$ wpdb将数据从数据库导出到csv
- 17. 将数据从BigQuery导出到本地PostgreSQL/MySql数据库
- 18. 如何将数据从SQL数据库导出到MS Excel中
- 19. 如何将数据从csv文件导出到mysql数据库?
- 20. SSIS 2008:将SQL数据导出到Access数据库2010表
- 21. CodeIgniter:将数据从数据库导出到Excel中并下载
- 22. 崩溃试图将MySQL数据库迁移到带有SQL Server导入导出向导的SQL Server
- 23. 试图从Oracle数据库导出java源代码
- 24. 试图将Heroku数据库下载到本地:连接到数据库失败
- 25. 将sqlite数据库导出为csv - Sqlite.swift
- 26. 将mysql数据库导出为excel
- 27. 将空数据库值导出为Excell
- 28. 从SQL Server导出CSV数据导入到Neo4j图形数据库
- 29. 将数据从MYSQL数据库导入和导出到P5.JS项目
- 30. 如何将mySql数据库导出到嵌入式数据库(例如H2)?
你能否详细到底为什么你要这个,如果这个交换应该在两个方向进行,等等 - 这听起来像你可能想要共享userId或ContentProvider。 –
我有一个免费版本的应用程序。然后我做了一个有一些很好的升级。但我希望用户能够将其当前数据库导出到SDCARD,然后导入到付费版本。 – william
您是否搜索过[实现免费/付费Android应用程序]的更一般问题(http://stackoverflow.com/search?q=android+%2Bfree+%2Bpaid)?这里有一些很好的答案,从共享用户ID到免费的应用程序和付费的“解锁”应用程序,无需重复您的整个应用程序。 –