Tasker脚本+Gravity Box切换网络模式

9次阅读
没有评论

问题描述与背景

某用户使用Sultans CM13固件的OPX手机(已root),希望在连接无线局域网(WLAN)时切换到2G或GSM模式,并且在断开WLAN连接后恢复至3G或4G模式。该用户已经安装了Tasker和Security Settings应用,但通过配置Profile未能成功实现上述切换目标。

遇到的问题

    1. preferred_network_mode 参数未生效。
    1. settings.db 表格中没有找到相关选项。
    1. 使用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配置的步骤:

  1. 安装并激活Gravity Box Xposed模块
  2. 在Tasker里创建一个Profile,设置触发条件为连接WLAN时。
  3. 配置Action为发送Intent,具体操作如下:
    Send Intent [Action: gravitybox.intent.action.CHANGE_NETWORK_TYPE]
    Extra: networkType:1

方法三:综合运用方法一和方法二

为了确保用户在不使用Xposed的情况下也能实现网络模式的自动切换,可以结合上述两种方法。即:

  1. 使用Gravity Box配置Tasker任务进行网络模式切换。
  2. 基于Gravity Box的任务设定,在WLAN连接及断开时自动调整为所需的网络类型。

这种方法虽较复杂但较为全面地覆盖了所有使用场景。

结论

采用Xposed + Gravity Box的方案可以更简便且灵活地实现用户需求。对于已经root的操作系统,此方法是最佳选择。如果希望通过Tasker仅依赖于系统命令的方式实现,可能需要先调整网络模式设置后再尝试发送Intent实现切换功能。

正文完