<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 基于局域網(wǎng)的視頻聊天系統(tǒng)--蛙酷

          基于局域網(wǎng)的視頻聊天系統(tǒng)--蛙酷

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

            (5) Settings應(yīng)用程序部分

          本文引用地址:http://www.ex-cimer.com/article/267433.htm

            這是自帶的一個(gè)應(yīng)用程序,在手機(jī)的Settings中,它可以讓用戶手動(dòng)打開或關(guān)閉功能。當(dāng)用戶打開功能后,它會(huì)自動(dòng)搜索周圍的無線網(wǎng)絡(luò),并以列表的形式顯示,供用戶選擇,默認(rèn)會(huì)連接用戶上一次成功連接的無線網(wǎng)絡(luò)。這部分代碼位于./packages/apps/Settings/src/com/android/settings/wifi中。

            3.2 Wi-Fi執(zhí)行過程

            3.2.1 從Settings中啟動(dòng)Wi-Fi

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

            當(dāng)成功使能后,廣播發(fā)送WIFI_STATE_CHANGED_ACTION這個(gè)Intent通知外界Wi-Fi已經(jīng)成功使能。WifiEnabler創(chuàng)建的時(shí)候就會(huì)向注冊接收

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

            3.2.2 查找AccessPoint (AP)

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

            對每一個(gè)掃描返回的AP,WifiLayer會(huì)調(diào)用WifiSettings的onAccessPointSetChanged函數(shù),從而最終把該AP加到GUI顯示列表中。

            3.2.3 連接AP

            當(dāng)用戶在AcessPointDialog中選擇好加密方式和輸入密鑰之后,再點(diǎn)擊連接按鈕,Android就會(huì)去連接這個(gè)AP。

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

          c++相關(guān)文章:c++教程




          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();