Android WIFI 详解
public void handleMessage(Message msg) {
intevent;
switch (msg.what) {
case EVENT_DHCP_START:
……
Log.d(TAG, DhcpHandler: DHCP requeststarted);
//启动一个DHCPclient的精灵进程,为mInterfaceName请求分配一个IP地//址
if (NetworkUtils.runDhcp(mInterfaceName, mDhcpInfo)) {
event= EVENT_INTERFACE_CONFIGURATION_SUCCEEDED;
if(LOCAL_LOGD) Log.v(TAG, DhcpHandler: DHCP request succeeded);
} else {
event= EVENT_INTERFACE_CONFIGURATION_FAILED;
Log.i(TAG,DhcpHandler: DHCP request failed: +
NetworkUtils.getDhcpError());
}
……
}
这 里调用了一个NetworkUtils.runDhcp()函数,NetworkUtils类是一个网络服务的辅助类,它主要定义了一些本地接口,这些接 口会通过他们的JNI层android_net_NetUtils.cpp文件和DHCP client通信,并获取IP地址。
至此,IP地址获取完毕,Wifi启动流程结束。
评论