问题描述与背景
某用户使用Sultans CM13固件的OPX手机(已root),希望在连接无线局域网(WLAN)时切换到2G或GSM模式,并且在断开WLAN连接后恢复至3G或4G模式。该用户已经安装了Tasker和Security Settings应用,但通过配置Profile未能成功实现上述切换目标。
遇到的问题
-
preferred_network_mode
参数未生效。
-
- 在
settings.db
表格中没有找到相关选项。
- 在
-
- 使用Gravity Box(Xposed模块)可以成功切换网络模式,但在仅使用Tasker和Security Settings时未能实现。
解决方案
方法一:通过脚本命令直接修改系统设置
为达到目标,用户可采用以下步骤:
1. 通过ADB shell指令操作,手动更改 preferred_network_mode
状态。
2. 停止并重新启动移动网络代理(RIL)服务以使更改生效。
具体执行步骤如下:
adb shell settings put global preferred_network_mode 1
adb shell stop ril-daemon
adb shell start ril-daemon
方法二:利用Xposed和Gravity Box
更简便的方法是借助Gravity Box Xposed模块来实现网络模式切换。以下为使用Tasker配置的步骤:
- 安装并激活Gravity Box Xposed模块
- 在Tasker里创建一个Profile,设置触发条件为连接WLAN时。
- 配置Action为发送Intent,具体操作如下:
Send Intent [Action: gravitybox.intent.action.CHANGE_NETWORK_TYPE]
Extra: networkType:1
方法三:综合运用方法一和方法二
为了确保用户在不使用Xposed的情况下也能实现网络模式的自动切换,可以结合上述两种方法。即:
- 使用Gravity Box配置Tasker任务进行网络模式切换。
- 基于Gravity Box的任务设定,在WLAN连接及断开时自动调整为所需的网络类型。
这种方法虽较复杂但较为全面地覆盖了所有使用场景。
结论
采用Xposed + Gravity Box的方案可以更简便且灵活地实现用户需求。对于已经root的操作系统,此方法是最佳选择。如果希望通过Tasker仅依赖于系统命令的方式实现,可能需要先调整网络模式设置后再尝试发送Intent实现切换功能。
正文完