Android WIFI 掃描概念流程

閱讀時間約 2 分鐘

Android Wifi掃瞄的部分區分成被動掃描與主動掃描:

主動掃瞄:每隔一段時間廣播發送probe request的請求,在各個頻段上詢問AP的訊息,若有收到回應,做紀錄,超時的話則換到下個頻段進行廣播。

被動掃瞄:不發送請求,因為是以省電為目的,因此是單純接收AP傳送的beacon,通過接收到的beacon以獲取AP列表。

在Android的範疇又分為一般掃瞄與PNO掃瞄:

一般掃瞄:即為上方所提的掃瞄(WifiSettings和WifiConnectivityManager)。

PNO掃瞄:掃瞄週期相比於一般掃瞄長,只在特殊情況進行掃瞄,像是滅屏+不連接網路的情況下掃瞄(在WifiConntivityManager的模塊進行)。

主要進行的Android類為兩種:

WifiConnectivity 及 WifiSettings後續下發時皆為觸及WifiScanner,WifiConnectivity牽扯到的比較相似於手機本身的變化觸發的掃瞄,如螢幕亮暗。

WifiSettings觸發的掃瞄偏向於使用者進行某些動作觸發的掃瞄,如開關WIFI掃瞄功能等等。

最後,因為工作需要,這次做了一個簡單的追蹤WIFI主動掃描下發的其中一個流程,從上層至底層:APP -> Framework ->底層 hal。

  1. 主要追蹤的過程是從WifiSetting觸發掃描時開始運作
  2. 接續到BaseWifiTracker -> WifiPickerTracker -> WifiManager(此處皆屬於Application層)
  3. 從WifiManager -> WifiService的過程需要經過AIDL進程
  4. 接著Service的部分從startScan()的API依序調用到Framework層的結尾,即是WifiNative。(Framework層)
  5. 後續從WifiNative之後開始皆為hal層的範圍,因此程式語言改為C++/C

raw-image

以上是關於本次的紀錄。

    1會員
    37內容數
    留言0
    查看全部
    發表第一個留言支持創作者!
    dab戴伯的沙龍 的其他內容
    主要在工作上剛好接觸到SQLite的資料庫,因此想藉由這個機會將這個技術了解一下~ Android 內可使用SQLite資料庫,有著輕量級的特性,因此適合用於行動設備上。Android SQLite 主要提供SQLiteOpenHelper與SQLiteDatabase兩個類別使用。 而這次主要
    目的: 利用第三方API抓取網路資料下載並呈現在APP上。 學習運用搜尋欄,並搜尋自己想找的電影。 自製表格,並讓資訊呈現在APP上。 這次運用了search bar 和 自製表格以及分析JSON檔的部分: 首先,要使用search bar要增加protocol : UISearchRes
    目的: 熟悉collection view的使用 這次運用了collection view製作了行事曆的概念,主要是想結合電影,讓他可以顯示出你每天看過的電影,但執行上真的難好多啊!!所以先上來把目前為止做出來的內容說明一下: collection view 使用上與table view很像,
    目的: Timer倒數計時。 熟練基本的 Swift 程式語法。 熟悉 iOS App 畫面的製作。 製作多頁面 App & 頁面間傳資料的能力。 使用 UIAlertController。 透過 present 顯示以下連結提到的某一種 controller。(不包含 UIAlertC
    目的: 熟練資料傳遞的技巧。 建立日期: 這次試著多用function的方式進行,會讓程式簡潔很多。這裡可以注意到,使用到calendar function去製造出年月日的效果,這樣就可以從datepicker中取.date值放入function進行換算成生日的星座。 2. 傳資料到下個頁面
    目的: 在 viewDidLoad 裡寫程式。 2. 利用 AVPlayer 播放音樂。 3. 包含播放鍵,暫停鍵,下一首,上一首。 4. 使用 IBOutlet 和 IBAction 實現 App 的功能。 5. 畫面上至少需包含以下元件,而且程式也有使用這些元件。 text fiel
    主要在工作上剛好接觸到SQLite的資料庫,因此想藉由這個機會將這個技術了解一下~ Android 內可使用SQLite資料庫,有著輕量級的特性,因此適合用於行動設備上。Android SQLite 主要提供SQLiteOpenHelper與SQLiteDatabase兩個類別使用。 而這次主要
    目的: 利用第三方API抓取網路資料下載並呈現在APP上。 學習運用搜尋欄,並搜尋自己想找的電影。 自製表格,並讓資訊呈現在APP上。 這次運用了search bar 和 自製表格以及分析JSON檔的部分: 首先,要使用search bar要增加protocol : UISearchRes
    目的: 熟悉collection view的使用 這次運用了collection view製作了行事曆的概念,主要是想結合電影,讓他可以顯示出你每天看過的電影,但執行上真的難好多啊!!所以先上來把目前為止做出來的內容說明一下: collection view 使用上與table view很像,
    目的: Timer倒數計時。 熟練基本的 Swift 程式語法。 熟悉 iOS App 畫面的製作。 製作多頁面 App & 頁面間傳資料的能力。 使用 UIAlertController。 透過 present 顯示以下連結提到的某一種 controller。(不包含 UIAlertC
    目的: 熟練資料傳遞的技巧。 建立日期: 這次試著多用function的方式進行,會讓程式簡潔很多。這裡可以注意到,使用到calendar function去製造出年月日的效果,這樣就可以從datepicker中取.date值放入function進行換算成生日的星座。 2. 傳資料到下個頁面
    目的: 在 viewDidLoad 裡寫程式。 2. 利用 AVPlayer 播放音樂。 3. 包含播放鍵,暫停鍵,下一首,上一首。 4. 使用 IBOutlet 和 IBAction 實現 App 的功能。 5. 畫面上至少需包含以下元件,而且程式也有使用這些元件。 text fiel
    你可能也想看
    Google News 追蹤
    Thumbnail
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
    Thumbnail
    Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
    Thumbnail
    Android TV 開發教學,會有人想學 Android TV APP 嗎?有人對電視上的應用程式有興趣嗎?
    Thumbnail
    在Android平台上探索角色扮演遊戲的世界,是許多遊戲愛好者的最愛。隨著手機遊戲的不斷演進,現在的RPG遊戲已經讓人目不暇給。今天我們將帶您深入了解最受歡迎的Android RPG遊戲,讓您能夠輕鬆找到您下一個遊戲冒險的目的地。
    Thumbnail
    現在的智慧型手機都已經具有定位功能,可在Google地圖知道自己的所在位置,也能夠傳送座標給朋友輕鬆找到會面地點。 其實連手機拍出的照片,也能夠自動儲存拍照地點的定位資訊!
    Thumbnail
    惡意軟體Malware是指專門設計用來破壞、干擾或竊取電腦系統、網路或設備的軟體,常見攻擊目標包括高階用戶和廣泛使用的應用程式。 而Rafel RAT是一種針對Android手機的新型惡意軟體,能夠控制用戶的設備,甚至攔截2FA雙重驗證訊息,主要透過偽裝成合法應用程式並取得敏感權限來進行攻擊。
    Thumbnail
    Android 版 Chrome 瀏覽器中新增了朗讀功能,可以將網頁文字轉換為語音並播放,方便用戶聆聽網頁內容,支援多國語言,包括繁/簡體中文、英文、日語、法文、德文等,還可調整播放速度和選擇語音。
    Thumbnail
    瀏覽器安裝擴充功能可以發揮本身以外的功能。微軟於 2023 年開始在 Android 版 Edge 上測試擴充功能,現階段可以取得官方推薦項目,無法前往 Chrome 或 Edge 商店安裝擴充功能。
    Thumbnail
    本課程學習如何建立 Android Wear (Wear OS by Google) 智慧穿戴式手錶專案的步驟。詳細說明了如何在 Android Studio 中建立 Wear OS 專案,包括選擇專案範本、設定專案屬性、建立手錶模擬器等步驟。最後,示範了運行專案並在模擬器上修改顯示文字的過程。
    Thumbnail
    本課程學習如何透過函數重構程式碼,提高可讀性、可維護性和重用性。以按鈕操作為例,將不同邏輯提取成函數,例如 allClear()、equalSign() 等,使程式碼更簡潔易懂,提升開發效率。
    Thumbnail
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
    Thumbnail
    Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
    Thumbnail
    Android TV 開發教學,會有人想學 Android TV APP 嗎?有人對電視上的應用程式有興趣嗎?
    Thumbnail
    在Android平台上探索角色扮演遊戲的世界,是許多遊戲愛好者的最愛。隨著手機遊戲的不斷演進,現在的RPG遊戲已經讓人目不暇給。今天我們將帶您深入了解最受歡迎的Android RPG遊戲,讓您能夠輕鬆找到您下一個遊戲冒險的目的地。
    Thumbnail
    現在的智慧型手機都已經具有定位功能,可在Google地圖知道自己的所在位置,也能夠傳送座標給朋友輕鬆找到會面地點。 其實連手機拍出的照片,也能夠自動儲存拍照地點的定位資訊!
    Thumbnail
    惡意軟體Malware是指專門設計用來破壞、干擾或竊取電腦系統、網路或設備的軟體,常見攻擊目標包括高階用戶和廣泛使用的應用程式。 而Rafel RAT是一種針對Android手機的新型惡意軟體,能夠控制用戶的設備,甚至攔截2FA雙重驗證訊息,主要透過偽裝成合法應用程式並取得敏感權限來進行攻擊。
    Thumbnail
    Android 版 Chrome 瀏覽器中新增了朗讀功能,可以將網頁文字轉換為語音並播放,方便用戶聆聽網頁內容,支援多國語言,包括繁/簡體中文、英文、日語、法文、德文等,還可調整播放速度和選擇語音。
    Thumbnail
    瀏覽器安裝擴充功能可以發揮本身以外的功能。微軟於 2023 年開始在 Android 版 Edge 上測試擴充功能,現階段可以取得官方推薦項目,無法前往 Chrome 或 Edge 商店安裝擴充功能。
    Thumbnail
    本課程學習如何建立 Android Wear (Wear OS by Google) 智慧穿戴式手錶專案的步驟。詳細說明了如何在 Android Studio 中建立 Wear OS 專案,包括選擇專案範本、設定專案屬性、建立手錶模擬器等步驟。最後,示範了運行專案並在模擬器上修改顯示文字的過程。
    Thumbnail
    本課程學習如何透過函數重構程式碼,提高可讀性、可維護性和重用性。以按鈕操作為例,將不同邏輯提取成函數,例如 allClear()、equalSign() 等,使程式碼更簡潔易懂,提升開發效率。