Android WIFIスイープサイクルについて
1984 ワード
Wifi scan period:
1)現在のAndroid OSにWIFI接続が確立されていない場合は、コンパイル時に生成するbuildを使用する.Propの「wifi.supplicant_scan_interval」プロパティの値(秒単位)2)Android OSがアクティブなWIFI接続を確立している場合、スキャンサイクルは1)とは異なります.
3)Android OSがIDLE状態(early suspend)に入るとスキャンサイクルは10 minとなる.
同時に、上記の規則は以下の変更可能な要素によって一部変更されます.
a)vendorの一部は、システムのデフォルト属性を上書きします.たとえば、次のようにします.
b)Android 4.2.2、wpa_supplicant_6,wpa_supplicant_8のデフォルト値は5 sです.
そしてwpa_supplicant_6, wpa_supplicant_8には、実行時設定(wpa_cli.c)というパラメータ(一般release版Android、rootなしでは設定できません)が同時に存在します.
1)現在のAndroid OSにWIFI接続が確立されていない場合は、コンパイル時に生成するbuildを使用する.Propの「wifi.supplicant_scan_interval」プロパティの値(秒単位)2)Android OSがアクティブなWIFI接続を確立している場合、スキャンサイクルは1)とは異なります.
3)Android OSがIDLE状態(early suspend)に入るとスキャンサイクルは10 minとなる.
同時に、上記の規則は以下の変更可能な要素によって一部変更されます.
a)vendorの一部は、システムのデフォルト属性を上書きします.たとえば、次のようにします.
254PRODUCT_PROPERTY_OVERRIDES += \
255 wifi.interface=wlan0 \
256 wifi.supplicant_scan_interval=15
257
b)Android 4.2.2、wpa_supplicant_6,wpa_supplicant_8のデフォルト値は5 sです.
1725static struct wpa_supplicant * wpa_supplicant_alloc(void)
1726{
1727 struct wpa_supplicant *wpa_s;
1728
1729 wpa_s = os_zalloc(sizeof(*wpa_s));
1730 if (wpa_s == NULL)
1731 return NULL;
1732 wpa_s->scan_req = 1;
1733#ifdef ANDROID
1734 wpa_s->scan_interval = 5;
1735#endif
1736 return wpa_s;
1737}
そしてwpa_supplicant_6, wpa_supplicant_8には、実行時設定(wpa_cli.c)というパラメータ(一般release版Android、rootなしでは設定できません)が同時に存在します.
4827 reply_len = -1;
4828 } else if (os_strncmp(buf, "SCAN_INTERVAL ", 14) == 0) {
4829 if (wpa_supplicant_ctrl_iface_scan_interval(wpa_s, buf + 14))
4830 reply_len = -1;
4831 } else if (os_strcmp(buf, "INTERFACE_LIST") == 0) {
4832 reply_len = wpa_supplicant_global_iface_list(
2960static int wpa_supplicant_ctrl_iface_scan_interval(
2961 struct wpa_supplicant *wpa_s, char *cmd)
2962{
2963 int scan_int = atoi(cmd);
2964 return wpa_supplicant_set_scan_interval(wpa_s, scan_int);
2965}
1997int wpa_supplicant_set_scan_interval(struct wpa_supplicant *wpa_s,
1998 int scan_interval)
1999{
2000 if (scan_interval < 0) {
2001 wpa_msg(wpa_s, MSG_ERROR, "Invalid scan interval %d",
2002 scan_interval);
2003 return -1;
2004 }
2005 wpa_msg(wpa_s, MSG_DEBUG, "Setting scan interval: %d sec",
2006 scan_interval);
2007 wpa_s->scan_interval = scan_interval;
2008
2009 return 0;
2010}