安卓应用程序是否可以将其他应用程序限制为仅WiFi(无根)



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

基本上,我希望我的应用程序能够控制其他应用程序是否只能通过移动数据或WiFi访问数据。

为我指明正确的方向也将不胜感激。

理论上是的。

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

这是可以通过adb shell启动的svc工具。不过,它确实出错了,给我的代码是137(未推出的Nexus 5)。但从代码中,您可以看到这在理论上应该如何工作。

检索TelephonyManagerenableDataConnectivity,这当然是一个隐藏的API(请参见:https://github.com/android/platform_frameworks_base/blob/6b8a3a52acf1c2722551f1ea1ce47831f87939cd/telephony/java/com/android/internal/telephony/ITelephony.aidl)。通过重新编译您构建的android.jar或使用反射,可以访问隐藏的API(请参阅:如何构建具有隐藏和内部API的android SDK?)。

希望这能有所帮助。

相关内容

最新更新