wifi上层有默认设置有三个睡眠策略
以ics为例,在休眠状态下保持WLAN连接
1:始终 --代码中是wow模式睡眠,始终保持wifi连接
2:仅限充电时--在充电时才始终保持wifi连接
3:从不 --采用deepsleep模式睡眠,休眠后wifi不连接
底层驱动有四种状态:
enum {
WLAN_POWER_STATE_ON = 0,
WLAN_POWER_STATE_CUT_PWR = 1,
WLAN_POWER_STATE_DEEP_SLEEP,
WLAN_POWER_STATE_WOW
};
上层鱼底层通过文件/sys/android_wlan/wlan_power/sleep_policy进行通信
1:始终 对应WLAN_POWER_STATE_WOW
2,3是WLAN_POWER_STATE_DEEP_SLEEP
上层有关的文件:
frameworks/base/services/java/com/android/server/WifiService.java
frameworks/base/core/java/android/provider/Settings.java
中间层设置此文件的文件为frameworks/base/services/java/com/android/server/WifiService.java中
在第三种情况,在屏灭后wifi默认会在15分钟后进行休眠,这里需注意
android:wpa_supplicant中使用的四个套接字
上行接口: