gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 11:44:53 25 4
gpt4 key购买 nike

我正在使用 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 操作系统不允许应用程序访问彼此的私有(private)文件夹。为了能够读取另一个应用程序文件夹中的文件:

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

android:sharedUserId="com.xx.xx"

2) 如果其他应用程序是第 3 方应用程序,那么您唯一的选择是将您的应用程序安装为系统应用程序。为此,您需要有根电话,并且需要挂载 system 文件夹。然后你需要将你的应用程序放入 /system/app/ 文件夹并重启手机。它应该在引导期间自动安装。

关于java - 如何读取另一个应用程序的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11244212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com