所以我做了一个基本的android应用程序,使用Async在SQLite数据库中插入数据,我想查看这个数据库及其包含的表。 android监视器不允许我操作数据文件,所以我尝试使用命令行:
C:\users\user\AppData\Local\Android\sdk\platform-tools>adb root
然后我收到此消息:adb unable to connect for root : protocol fault (couldn't read status): connection reset by peer
我也试过没有以root身份连接:
adb -s <device code> shell
shell@m0:/ $ /data/data/com.example.user.myapplication/databases/mydb.db
但它给了我这样的信息:
can't execute : permission denied
我试图运行此命令:
C:\Users\user\AppData\Local\Android\sdk\platform-tools>adb shell
打开shell时我使用了Super User命令:
shell@m0 :/ $ su
它以root身份成功连接:
root@m0:/ #
尽管如此,当我想访问数据库时,仍然会收到权限被拒绝的消息。我没有选择。
我应该指出我的Android设备已植根。
答案 0 :(得分:0)
1)使用以下命令获取数据库:adb pull /data/data/com.example.user.myapplication/databases/mydb.db
2)启动&lt; android sdk path&gt; \ platform-tools \ sqlite3 mydb.db并在其中使用SQL命令(例如SELECT * FROM table1)
答案 1 :(得分:-1)
我刚刚发现如何克服权限被拒绝的问题并获得对数据库的访问权限。
实际上,我一直在做的问题是,我试图访问具有仅执行权限而不是读取和/或写入的文件。您可以通过Android设备监视器或在adb shell中键入此命令来查看权限类型:ls -l
因此,您需要做的是将权限类型从仅执行更改为读/写/执行,这由此命令完成:chmod 777 /data
实际上你需要从/ data到/data/data//databases/dbname.db chmod 777每个目录,以便你可以访问数据库并将其拉入计算机的目录。
请参阅本文中的完整文档:http://www.codeproject.com/Articles/825304/Accessing-internal-data-on-Android-device
我希望这可以帮助你。
不要忘记我是以root身份连接到adb shell(通过root我的android设备并在超级用户模式下执行adb shell)。