java– 如何读取另一个应用程序的数据库

java– 如何读取另一个应用程序的数据库,第1张

概述我正在使用root设备.我已经从我的电脑上连接了adbshell,我可以验证其他数据库是否存在,我可以查询它的表.但是在我的java代码中,当我尝试打开数据库时,我收到错误android.database.sqlite.SQLiteException:unabletoopendatabasefile我试图像这样打开数据库:SQLiteDat

我正在使用root设备.
我已经从我的电脑上连接了adb shell,我可以验证其他数据库是否存在,我可以查询它的表.

但是在我的java代码中,当我尝试打开数据库时,我收到错误

androID.database.sqlite.sqliteException: unable to open database file

我试图像这样打开数据库:

sqliteDatabase.openDatabase(PATH, null, sqliteDatabase.OPEN_Readonly);

路径类似于/data/data/com.xxx.xxx/databases/xx.db

我应该读这样的其他应用程序的数据库还是有另一种方式?

更新:
我也尝试在这个主题Push my apk to /system/app中建议系统应用程序

我认为它的工作原理是因为应用程序管理器之后无法卸载应用程序,就像普通的应用程序一样,所以我认为它是一个系统应用程序.但我仍然无法访问数据库,但我确信路径和权限都可以.

解决方法:

默认情况下,AndroID OS不允许应用程序访问彼此的私人文件夹.为了能够读取另一个应用程序文件夹中的文件:

1)您需要使用相同的用户ID安装这两个应用程序.将此添加到两个清单中:

androID:sharedUserID="com.xx.xx"

2)如果其他应用程序是第三方应用程序,那么您唯一的选择是将您的应用程序安装为系统应用程序.要做到这一点,你需要一个root电话,你需要挂载系统文件夹.然后,您需要将您的应用程序放入/ system / app /文件夹并重新启动手机.它应该在引导期间自动安装.

总结

以上是内存溢出为你收集整理的java – 如何读取另一个应用程序的数据库全部内容,希望文章能够帮你解决java – 如何读取另一个应用程序的数据库所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1116371.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存