分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!
二:wifi模組的初始化::
在 systemserver 啟動的時候,會生成乙個connectivityservice的例項,
try catch (throwable e)
connectivityservice 的建構函式會建立wifiservice,
if (dbg) log.v(tag, "starting wifi service.");
mwifistatetracker = new wifistatetracker(context, handler);
wifiservice wifiservice = new wifiservice(context, mwifistatetracker);
servicemanager.addservice(context.wifi_service, wifiservice);
wifistatetracker 會建立wifimonitor 接收來自底層的事件,wifiservice和wifimonitor 是整
個模組的核心。wifiservice 負責啟動關閉wpa_supplicant、啟動關閉wifimonitor 監視執行緒
和把命令下發給wpa_supplicant,而wifimonitor則負責從wpa_supplicant 接收事件通知。
具體流程圖如下:
第三部分:wifi模組的啟動(使能)
wirelesssettings 在初始化的時候配置了由wifienabler 來處理wifi 按鈕,
private void inittoggles()
if (!wifinative.startsupplicant())
mwifistatetracker.starteventloop();
}// success!
persistwifienabled(enable);
updatewifistate(eventualwifistate);
return true;
}當使能成功後,會廣播傳送wifi_state_changed_action 這個intent通知外界wifi
已經成功使能了。wifienabler 建立的時候就會向android註冊接收
wifi_state_changed_action,因此它會收到該intent,從而開始掃瞄。
private void handlewifistatechanged(int wifistate)
具體流程如下流程圖所示:
第四部分:查詢熱點(ap)
上一節(第三部分:wifi開啟)中講到wifi模組開啟後會對外傳送wifi_state_changed_action。wifilayer中註冊了action的receiver。
當wifilayer收到此action後開始scan的流程,具體如下:
當wpa_supplicant 處理完scan 命令後,它會向控制通道傳送事件通知掃瞄完成,從wifi_wait_for_event 函式會接收到該事件,由此wifimonitor中的monitorthread 會被執行來出來這個事件:
第五部分:配置 ap 引數
當使用者在 wifisettings 介面上選擇了乙個ap 後,會顯示配置ap 引數的乙個對話方塊:
第六部分:wifi連線
具體流程參見以下流程圖:
給我老師的人工智慧教程打call!
Android 中Scheme協議的使用詳解
伺服器下發跳轉路徑,客戶端根據 伺服器下發跳轉路徑跳轉相應的頁面 zymobi 3g2win 9999 macthdetail?macthid 222 time 10001scheme 代表該schema 協議名稱 zymobi host 代表schema作用於哪個位址域 3g2win port 代...
Android 中Scheme協議的使用詳解
一 首先什麼是scheme?客戶端應用可以向系統註冊乙個 url scheme,該scheme用於從瀏覽器或其他應用中啟動本應用。通過指定的 url 字段,可以讓應用在被調起後直接開啟某些特定頁面。也可以執行某些指定動作。綜上scheme使用場景大致分以下幾種 1.伺服器下發跳轉路徑,客戶端根據伺服...
Android中如何使用WIFI來連線ADB
有的時候,我們限於種種原因,無法使用usb來連線裝置進行除錯,此時,可以通過wifi連線來進行。首先開啟手機的wifi設定,使其連線到網路。然後,需要在手機上對adb連線埠進行設定,這裡需要有root許可權的終端 terminal 應用,這種型別的應用在各個market都有不少,選擇乙個適合的就可以...