小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Android系統(tǒng)同時(shí)打開WIFI與3G網(wǎng)絡(luò)模式

 WindySky 2016-07-15

編程時(shí)候發(fā)現(xiàn)當(dāng)打開WIFI網(wǎng)絡(luò)的時(shí)候系統(tǒng)默認(rèn)就會(huì)把3G網(wǎng)絡(luò)給關(guān)閉,估計(jì)是出于省電的原因才如此做的,但目前我需要同時(shí)使用這兩個(gè)網(wǎng)絡(luò)接口,經(jīng)過一番研究找到了方法,故寫成日志記錄下來。

1、android網(wǎng)絡(luò)機(jī)制。

wifi的開啟關(guān)閉首先由應(yīng)用程序觸發(fā)的事件開始(比如用戶點(diǎn)擊開啟圖標(biāo)),然后傳入framework層,framework層啟動(dòng)wpa_supplicant,同時(shí)建立socket連接與wpa_supplicant進(jìn)行通信,包括對wpa_supplicant的控制與得到wpa_supplicant的回傳結(jié)果。若連接上了一個(gè)無線網(wǎng)絡(luò),則調(diào)用dhcp服務(wù)申請ip地址(或者使用預(yù)先設(shè)置好的ip,不過大部分情況下是dhcp的)。若這一切正常則斷開3g網(wǎng)絡(luò)連接并關(guān)閉3g接口。

因此從這個(gè)角度分析,若要同時(shí)啟動(dòng)3g和wifi則必須繞過framework層,手動(dòng)完成上述所有操作。

因此我找到的方法是在3g網(wǎng)絡(luò)不斷的情況下,手動(dòng)啟動(dòng)wifi網(wǎng)絡(luò),連接指定ap并申請ip。

2、操作步驟。

(1) 準(zhǔn)備工作

因?yàn)闋砍兜降讓硬僮?,所以root必不可少,在root的情況下進(jìn)入adb shell,若adb daemon沒有root使用adb root命令進(jìn)而使adb shell獲得root權(quán)限。

原則上使用android里的終端軟件也是可以的,但我沒有測試。

(2)加載wifi驅(qū)動(dòng)。

不加載驅(qū)動(dòng)在netcfg里面根本看不到wlan0網(wǎng)卡,因此首先要加載驅(qū)動(dòng)。

一般情況下,驅(qū)動(dòng)放在/system/lib/modules下,我的驅(qū)動(dòng)模塊是wlan.ko。

insmod /system/lib/modules/wlan.ko。

加載前:

加載后:

發(fā)現(xiàn)多出來了wlan0也就是wifi網(wǎng)卡

 

(3)開啟wifi網(wǎng)卡

使用netcfg wlan0 up開啟wifi網(wǎng)卡,使用ifconfig wlan0 up也同樣可以。

開啟后:

 

(4)連接ap

啟動(dòng)wpa_supplicant并使之連接ap,在使用android系統(tǒng)時(shí),如果開啟wifi后范圍內(nèi)有一個(gè)之前連接過的wifi(而且這個(gè)wifi的ssid和密碼還沒改的話),那么我們的系統(tǒng)就會(huì)自動(dòng)連接到這個(gè)wifi。因此手機(jī)里肯定是在某處記錄者各個(gè)曾經(jīng)連接過的wifi的ssid和密碼。

我的手機(jī)(小米2,miui開發(fā)版3.xxx)這個(gè)默認(rèn)位置是/data/misc/wifi/wpa_supplicant.conf。當(dāng)把這個(gè)配置文件傳給wpa_supplicant啟動(dòng)的時(shí)候,就會(huì)自動(dòng)嘗試連接其中記錄的wifi網(wǎng)絡(luò)。

使用命令wpa_supplicant -iwlan0 -c/data/misc/wifi/wpa_supplicant.conf -B 啟動(dòng)wpa_supplicant,-B代表后臺運(yùn)行,-i指定無線網(wǎng)卡。

此時(shí)若一切正常就會(huì)連接上無線ap,使用dmesg查看信息得到:

可以看到有連接成功的信息。

 

(5)使用dhcp獲取ip信息

連接上了暫時(shí)還不能用,因?yàn)闆]有配置ip,使用dhcpcd wlan0配置ip信息,使用netcfg wlan0 dhcp也可以。

若出現(xiàn)類似以下信息則說明成功。

 

此時(shí)我們就在android下同時(shí)啟用了wifi和3g。

此時(shí)使用netcfg可以看到兩個(gè)接口都有ip,說明我們的方法有效。

 

當(dāng)然最重要的是以上操作都可以在android用簡單的程序來實(shí)現(xiàn)。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多