我想编写一个 xposed 模块,我可以在其中通过 VoWiFi 重定向 VoLTE 呼叫。我想知道哪种方法决定呼叫是通过 VoLTE 还是 VoWifi,我会挂钩该方法并完成工作。
基本上使用 WiFi 我想给网络一种设备正在使用移动数据并通过 wifi 发送呼叫的错觉
注意:我是 android 编程新手。如果我的问题看起来含糊不清,请原谅。
我想编写一个 xposed 模块,我可以在其中通过 VoWiFi 重定向 VoLTE 呼叫。我想知道哪种方法决定呼叫是通过 VoLTE 还是 VoWifi,我会挂钩该方法并完成工作。
基本上使用 WiFi 我想给网络一种设备正在使用移动数据并通过 wifi 发送呼叫的错觉
注意:我是 android 编程新手。如果我的问题看起来含糊不清,请原谅。
因此,即使您使用移动数据,您也想给人一种您已连接到 WIFI 的错觉。
我们检查的方式是这样的:
ConnectivityManager cm =
(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;
所以你可以做的是,hook ConnectivityManager 的 getType 方法,并且在 afterhook 方法中总是返回 ConnectivityManager.TYPE_WIFI
这样做的方法是调用
param.setResult(ConnectivityManager.TYPE_WIFI);//may be you need casting here
在后钩。
在此处阅读有关连接的更多信息: https ://developer.android.com/training/monitoring-device-state/connectivity-monitoring.html
编辑:我希望您熟悉 afterHook 和 beforeHook 方法以及 xposed 的工作原理。