从不同的包访问数据库:它给出错误:android.database.sqlite.SQLiteException:无法打开数据库文件

我有两个不同的应用程序
1. databaseSetup Application – database.apk
2.销售应用程序 – salesApp.apk

我之所以喜欢这样,是因为如果数据库损坏,只需要重新安装数据库.那时候不需要安装应用程序.

用于databaseSetup应用程序的包

  /data/data/com.xont.app/databases/

销售应用程序包 – com.xont.controller

我想从不同的包访问数据库.这意味着销售应用程序包是com.xont.controller&数据库包是/data/data/com.xont.app/databases/.

是否可以访问此文件夹的不同应用程序?

对于这个问题,我从我的朋友Click获得了链接

在那里,我无法理解共享用户ID并由相同的签名密钥签名.什么是用户ID&西宁钥匙?

请有人告诉我什么是UserID,SingingKey? &安培;我该如何分享

请帮帮我…

提前致谢…

解决方法:

是的,您可以访问来自不同应用程序的文件夹,如果两个应用程序都使用相同的签名密钥签名,并且两者都具有相同

现在用于用户ID和签名密钥,

User IDs and File Access

在安装时,Android为每个程序包提供不同的Linux用户ID.在程序包的生命周期内,该标识保持不变.在不同的设备上,同一个包可能有不同的UID;重要的是每个包在给定设备上具有不同的UID.

You can use the sharedUserId attribute in the AndroidManifest.xml's manifest tag of each package to have them assigned the same user ID.

如果可能,将您的数据库文件放在本地数据库目录中,或者在SD卡中,您可以从任何应用程序访问.但它对数据库的安全性有关.

相关文章

SQLite架构简单,又有Json计算能力,有时会承担Json文件/RES...
使用Python操作内置数据库SQLite以及MySQL数据库。
破解微信数据库密码,用python导出微信聊天记录
(Unity)SQLite 是一个软件库,实现了自给自足的、无服务器...
安卓开发,利用SQLite实现登陆注册功能