我目前正在构建一个c#windows应用程序,需要从Android设备清空短信收件箱。
我正在使用RegawMOD.android lib来创建和执行adb
命令。
首先想到的是删除mmssms.db
并重启有效的设备。
但是,重启设备需要花费大量时间。
所以我采取了另一种方法:
我将数据库复制到内部SD卡
将它拉到我的电脑
使用sqlite
(通过代码)访问它并清空SMS表。
将其复制回内部SD卡。
问题在于将其复制回/data/data/com.android.providers.telephony/databases/
当我尝试在代码中运行它时,即使我使用shell和su
设置运行它,我也会获得权限被拒绝。如果我在命令行提示符下在adb shell
中运行相同的代码,它将完美运行。
这是代码:
AdbCommand MoveToData = Adb.FormAdbShellCommand(device, true, "cat", "/storage/sdcard0/download/mmssms.db > /data/data/com.android.providers.telephony/databases/mmssms.db");
答案 0 :(得分:0)
在su 0 cat /storage/sdcard0/download/mmssms.db > /data/data/com.android.providers.telephony/databases/mmssms.db
命令中,只有重定向前的部分以root
权限运行。重定向仍在使用您应用的用户ID。