http://m.blog.csdn.net/linux_zkf/article/details/7492720
整个WIFIHAL实现都很简单,都是对wpa_supplicant的操作和使用,如果需要自己实现
WIFI HAL可以参考wifi.c来实现wifi.h中所定义的接口,并且设置驱动的路径、名称、模块的名称等参数,
具体操作都将由wpa_supplicant来完成。
其中wifi.h定义了Android系统中WIFI硬件抽象层接口,wifi.h定义
//装载wifi驱动
int wifi_load_driver();
//缷载wifi驱动
int wifi_unload_driver();
//开始、停止supplicant
int wifi_start_supplicant();
int wifi_stop_supplicant();
//连接supplicant
int wifi_connect_to_supplicant();
//关闭supplicant连接
void wifi_close_supplicant_connection();
int wifi_wait_for_event(char *buf,size_t len);
int wifi_command(const char *command,char *reply, size_t *reply_len);
// DHCP请求
int do_dhcp_request(int *ipaddr, int*gateway, int *mask, int *dns1, int *dns2, int *server, int *lease);
const char *get_dhcp_error_string();
操作接口都很简单,其中比较重要的是wifi_wait_for_event和wifi_command函数,
前者用于接收wpa_supplicant上报的事件,而后者用于向wpa_supplicant进程发送命令.