面临同样需求,我昨天基本搞定了~
首先是高版本安卓监控wifi需要开启定位,省电模式即可,我是用tasker改成了默认省电模式定位,只在打开地图软件等特殊应用时才自动切换成高精度,关闭地图打车app时自动切回省电模式!
然后是wifi连接状态跟踪,建议用android.net.wifi.RSSI_CHANGED这个intent,触发的任务是:第一步获取wifi信号强度,若信号强度低于-78db(中等信号强度是-70到-80,这个值可以自己定),则运行shell命令(需root):svc wifi disable,关wifi回到纯数据连接
这样有个问题是一出门wifi就会被关掉,那到家或办公室后怎么再自动打开呢,我是用的“周边wifi”这个状态,监控家里或办公室的wifi ssid,最低活跃信号级别可以选高点,我是选的5,勾选切换wifi这个选项,触发的任务是shell命令:vc wifi enable,开启wifi自动连接
这两个互相配合,基本上可实现wifi随信号强度自动开关
如果珍惜流量的话,还可以再加个配置:监测到接入特定wifi时自动关闭数据连接,断开特定ssid连接时则自动开启数据连接
因为现在流量多,所以把这个规则去掉了
