我想分享两个应用之间的数据库文件中的两个应用程序之间共享文件,假设我有一个应用程序和App B.应用一种我创建数据库和它使用的应用程序A和应用B以及。但是,当我卸载我的应用程序我的数据库也被删除,但我想保留该数据库,如果我的应用程序B安装,如果两者都被删除它应该从存储中删除数据库。我想保持我的数据库始终在内部存储上。安卓:无需使用外部存储
0
A
回答
1
0
@ R.Pradhan ..是的,你可以在两个应用程序之间但共享一个数据库,有一个条件。
如果你想使用的应用程序之间的数据(只要它们由同一发行人发行的),就需要在这两个应用程序的AndroidManifest.xml中指定一个共享的用户ID。
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:sharedUserId="my.app" ... >
共享用户标识需要是至少有一个点分隔符的字符串。
其余是容易的,你不需要更动数据库路径。只需在两个应用程序中使用相同的DBAdapter。在托管数据库的应用程序中,使用本地上下文调用DBAdapter。
DBadapter hostDBAdapter = new DbAdapter(getApplicationContext());
performerDBadapter.open();
在第二个应用程序中,使用数据库托管应用程序的上下文访问数据库。 首先,定义共享上下文:
Context sharedContext = null;
try {
sharedContext = this.createPackageContext("replace.with.host.package.name", Context.CONTEXT_INCLUDE_CODE);
if (sharedContext == null) {
return;
}
} catch (Exception e) {
String error = e.getMessage();
return;
}
然后与共享上下文打开将对DBAdapter:
DbAdapter sharedDBadapter = new PerformerDbAdapter(sharedContext);
sharedDBadapter.open();
最后要注意,如果你的数据库中存在先前在清单中设置共享用户ID ,您将需要卸载/重新安装物理设备上的应用程序,以免将自己锁定在数据库之外(sqlite错误14)。另一方面,模拟器可能证明更宽容。最重要的是,如果您的应用在Android市场上发布,则在事后才能设置共享用户ID不起作用。
希望这会有所帮助。
相关问题
- 1. 安卓:不能安装保存到内部存储器
- 2. Android内存需要在外部存储上安装apk吗?
- 3. 安卓:使外部存储器上的文件夹私有或受保护
- 4. 外部存储
- 5. 安卓:访问内部存储不利用上下文
- 6. 外部存储到内部存储
- 7. 安卓到外部蓝牙轮询
- 8. 需要帮助安卓部件
- 9. Android外部存储
- 10. phonegap外部存储
- 11. Javascript安卓系统 - sdcard内部存储的rread文件
- 12. 无法使用NDK从外部存储器读取
- 13. 使用osmdroid而无法访问外部存储
- 14. 保存到外部存储
- 15. 问题在存储和安卓
- 16. 本地存储安卓和电话
- 17. 安卓数组数据存储问题
- 18. 获取存储在SD卡+安卓
- 19. 安卓parcelable例外
- 20. 安卓CharsetEncoder.canEncode例外
- 21. 存储在外部存储卡上
- 22. 在内部存储vs外部存储中存储应用图像
- 23. 星火RDD外部存储
- 24. 写入到外部存储
- 25. 从外部存储显示?
- 26. Android外部存储权限
- 27. 外部存储库变化
- 28. Android外部存储加密
- 29. 写入外部存储
- 30. android外部存储问题
不可能的数据库是专用.. !! –