Android应用是否可以将其他应用仅限制为WiFi(没有root)?

时间:2013-12-16 07:55:17

标签: java android wifi connectivity

我想知道是否有可能制作一个Android应用程序(不需要root),可以启用和禁用其他应用程序的移动数据使用?我知道有一个功能可以在原生Android设置中切换每个应用程序的后台服务,所以也许有一些公共方法可以让我使用自己的应用程序。

基本上,我希望我的应用控制其他应用是否可以通过移动数据或WiFi访问数据。

我也非常感谢指向正确的方向。

1 个答案:

答案 0 :(得分:0)

理论上,是的。

请参阅:https://github.com/android/platform_frameworks_base/blob/dbc51de44fe4f9a7f81528204250de32ec405d39/cmds/svc/src/com/android/commands/svc/DataCommand.java

这是svc工具,可以通过adb shell启动。但是,对于我(无根提取的Nexus 5),它确实出现了错误代码137。但是从代码中你可以看出这在理论上应该如何运作。

您检索TelephonyManagerenableDataConnectivity,当然这是一个隐藏的API(请参阅:https://github.com/android/platform_frameworks_base/blob/6b8a3a52acf1c2722551f1ea1ce47831f87939cd/telephony/java/com/android/internal/telephony/ITelephony.aidl)。通过重新编译您构建的android.jar或使用反射(参见:How do I build the Android SDK with hidden and internal APIs available?),可以访问隐藏的API。

希望这有帮助。