九月 22, 2015

利用tasker自动切换移动网络类型

最新进展: 今日早晨刷基带测试4G,然而运营商已完美支持回落(2015/10/22)

前段时间到移动更换了USIM卡后赠送了1G流量(4G专用),手持Nexus5在通话后不能自动切换回4G网络,这缺陷对处女座的我来说是不能容忍的。于是乎经过一番搜索找到了一个比较靠谱的实现方法,其原理是先切换到LTE only,等注册到4G后在切换为LTE/GSM auto。至于为什么要切换为LTE/GSM auto则是因为当前4G网络无法承载语音通话业务,通话时只能使用2G网络。如何能让用户在使用4G的时候能正常接打电话,CSFB电路域回落就是一种比较普遍的解决方案。 具体CSFB的实现原理可参阅维基百科电路域回退

部分地区可实现自动完美切换,这与运营商设备调试有关,本人所处城市在10月初升级Android M前还是无法支持自动切换。

啰嗦了这么多,现在我们动手来实现自动切换网络

先决条件

截图未能保留只能用文字叙述重点了。

gravitybox.intent.action.CHANGE_NETWORK_TYPE
Cat: None
Mime类型: 可选
Data:可选
额外: networkType:11
额外: 可选
数据包: 可选
类: 可选
目标: Broadcast Receiver

注意:填写时不能有空格

步骤已经理清,头部和中间5S等待时间是防止切换过快不能成功注册4G,提高成功率。

附上networkType对应的网络类型

networkType:11 表示 LTE only
networkType:1 表示 2g only
networkType:2 表示 3G only
networkType:9 表示 LTE/2G auto
networkType:0 表示 3G/2G auto

结语: 这是一种手动方案,需要做的准备工作和限制比较多。其一,xposed对新系统支持度较差;其二,root后手机风险较高;其三,xposed可能导致的手机无限重启。注定了此方法只适合喜欢折腾有耐心的机友。

还有一种较为安全的方案是使用PerfectLTE来实现自动切换,只需要root就可以使用。与第一种方案相比灵活度稍差,因为它只会在通话后触发,而第一种方案可以设定任意触发条件。

Tasker被誉为神级APP,这次我们才使用到了它较为简单的功能。有了它你才知道什么才叫自动化什么才叫智能。