我正在尝试编写一个可以打开和关闭移动数据连接的应用。 已经有了源代码并构建了我自己的sdk,在那里我删除了@hide语句,所以我可以使用相关的函数
cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
cm.setMobileDataEnabled(true);
还找出了我需要的权限,特别是WRITE_SECURE_SETTINGS,它仅适用于系统应用程序。我读了adamk的comment,现在需要知道如何做他建议的事情(将应用程序添加到系统或使用平台密钥签名)。
首先,我想在模拟器上执行此操作,然后在我的手机上执行此操作(根植并使用自定义ROM)。 我尝试将其推送到模拟器上的系统目录:
adb remount
adb push app.apk /system/app/
adb sync
哪个不起作用,找不到并安装了应用程序。
我忘记了什么?如何正确地做到这一点?
答案 0 :(得分:3)
所以,我终于找到了问题并解决了它。 我其实非常接近:
adb remount
adb push app.apk /system/app/
这是在模拟器上执行此操作的正确方法(无需adb同步)。我看了logcat,发现你需要签署你的.apk文件所以系统不会拒绝它,即使在这种情况下没有增加任何有效性。 如果您以这种方式推送已签名的.apk,它将获得所需的权限并按预期工作 - 在我的情况下,打开和关闭移动数据连接。 对于手机部分(使用ClockworkMod): 启动进入恢复模式,挂载/ system文件夹并启用USB存储。然后以与模拟器相同的方式继续,重新启动手机,你就可以开始了。 希望这可以帮助遇到同样问题的人。