新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 基于局域網的視頻聊天系統--蛙酷

        基于局域網的視頻聊天系統--蛙酷

        作者:邱超 丁建輝 陽平 時間:2014-12-29 來源:電子產品世界 收藏
        編者按:  摘要:隨著無線網絡的發展,支持Wi-Fi的電子產品越來越多,與Wi-Fi綁定的應用也層出不窮,但還沒有一款基于Wi-Fi的視頻聊天軟件能夠滿足人們的日常交互需求,因此我們開發出“蛙酷”,一款基于局域網的視頻聊天軟件,能夠在局域網覆蓋下實現隨時隨地視頻聊天和視頻會議,且無需耗費任何手機數據流量,真正給用戶帶來了隨聊隨見的交互體驗。   1 引言   目前,社會所流行的聊天軟件所專注的問題僅限于視頻效果和軟件盈利上,應用目的趨于商業化,而沒有真正從用戶的角度出發去設計開發軟件,

          (5) Settings應用程序部分

        本文引用地址:http://www.104case.com/article/267433.htm

          這是自帶的一個應用程序,在手機的Settings中,它可以讓用戶手動打開或關閉功能。當用戶打開功能后,它會自動搜索周圍的無線網絡,并以列表的形式顯示,供用戶選擇,默認會連接用戶上一次成功連接的無線網絡。這部分代碼位于./packages/apps/Settings/src/com/android/settings/wifi中。

          3.2 Wi-Fi執行過程

          3.2.1 從Settings中啟動Wi-Fi

          當用戶按下Wi-Fi按鈕后,調用WifiEnabler的onPreferenceChange,再由WifiEnabler調用WifiManager的setWifiEnabled接口函數,通過AIDL,調用WifiService的setWifiEnabled函數,WifiService接著向自身發送一條MESSAGE_ENABLE_WIFI消息,在處理該消息的代碼中做真正的使能工作:首先裝載WIFI內核模塊(該模塊的位置硬編碼為"/system/lib/modules/wlan.ko"), 然后啟動wpa_supplicant(配置文件硬編碼為"/data/misc/wifi/wpa_supplicant.conf"),再通過WifiStateTracker啟動WifiMonitor中的監視線程。

          當成功使能后,廣播發送WIFI_STATE_CHANGED_ACTION這個Intent通知外界Wi-Fi已經成功使能。WifiEnabler創建的時候就會向注冊接收

          WIFI_STATE_CHANGED_ACTION,因此它會收到該Intent,從而開始掃描。

          3.2.2 查找AccessPoint (AP)

          掃描的入口函數是WifiService的startScan,它往wpa_supplicant發送SCAN命令。當wpa_supplicant處理完SCAN命令后,它會向控制通道發送事件通知掃描完成, wifi_wait_for_event函數會接收到該事件,由此WifiMonitor中的MonitorThread會被執行處理這個事件,WifiStateTracker接著廣播SCAN_RESULTS_AVAILABLE_ACTION這個Intent,WifiLayer注冊了接收SCAN_RESULTS_AVAILABLE_ACTION這個Intent,所以它的相關處理函數handleScanResultsAvailable會被調用,在該函數中拿到SCAN的結果(最終是往wpa_supplicant發送SCAN_RESULT命令并讀取返回值來實現的)。

          對每一個掃描返回的AP,WifiLayer會調用WifiSettings的onAccessPointSetChanged函數,從而最終把該AP加到GUI顯示列表中。

          3.2.3 連接AP

          當用戶在AcessPointDialog中選擇好加密方式和輸入密鑰之后,再點擊連接按鈕,Android就會去連接這個AP。

          WifiLayer會先檢測這個AP是不是之前被配置過,這個是通過向wpa_supplicant發送LIST_NETWORK命令并且比較返回值來實現的,如果wpa_supplicant沒有這個AP的配置信息,則向wpa_supplicant發送ADD_NETWORK命令來添加該AP,ADD_NETWORK命令返回一個ID,WifiLayer再用這個返回的ID作為參數向wpa_supplicant發送ENABLE_NETWORK命令,從而讓wpa_supplicant去連接該AP。

        c++相關文章:c++教程




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 揭西县| 深水埗区| 平南县| 临城县| 荔浦县| 泾源县| 鄂伦春自治旗| 霍城县| 鲜城| 剑河县| 荔浦县| 平原县| 太和县| 达孜县| 铅山县| 中宁县| 涡阳县| 张家川| 漳平市| 鹿泉市| 始兴县| 密云县| 大洼县| 武平县| 泸州市| 昌吉市| 晋州市| 南通市| 临邑县| 信宜市| 丘北县| 华蓥市| 丁青县| 乐山市| 英山县| 思南县| 浮梁县| 房山区| 青铜峡市| 绵竹市| 绥中县|