我想知道是否有办法在所选应用上断开或禁用网络连接。由于有像“假Wifi连接”这样的Xposed模块正在运行,我相信这应该是可能的。
谢谢。
答案 0 :(得分:0)
通常我们使用类似的东西检查网络是否已连接
ConnectivityManager connectivityManager
= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
isConnected = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting();
所以你可以使用Xposed挂钩NetworkInfo类的方法isConnectedOrConnectiong()并从中返回true。
XposedHelpers.findAndHookMethod(NetworkInfo.class, loadPackageParam.classLoader, "isConnectedOrConnecting", new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
super.beforeHookedMethod(param);
param.setResult(false);
}
});
param.setResult(false)跳过对原始方法的调用,并且由于调用而返回false(从未进行过调用)
我希望这会有所帮助。
编辑: 来自android docs
getActiveNetworkInfo在API级别1中添加
NetworkInfo getActiveNetworkInfo()
返回有关当前活动的默认数据网络的详细信息。什么时候 已连接,此网络是传出连接的默认路由。 在启动网络之前,您应该始终检查isConnected() 交通。当没有默认网络时,这可能会返回null。
因此,当没有默认网络时,调用可能会返回null。在这种情况下,这不起作用。