0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在Android操作系統(tǒng)手機(jī)終端上實(shí)現(xiàn)了3G和wIFI的無線漫游

電子設(shè)計(jì) ? 來源:郭婷 ? 作者:電子設(shè)計(jì) ? 2019-07-26 08:07 ? 次閱讀

隨著人們?nèi)粘I詈凸ぷ鞴?jié)奏的不斷加快,人們對(duì)信息獲取的便捷程度、對(duì)移動(dòng)辦公、移動(dòng)娛樂的重視程度正與日俱增。無線接人是滿足這一高速增長(zhǎng)需求的唯一途徑,無線接人的兩個(gè)主角是3G(3rdGeneration)技術(shù)和W1FI(Wireless Fidelity)技術(shù)。

本論文針對(duì)目前比較流行的Android系統(tǒng)手機(jī)終端的3G、wIFI連接機(jī)制實(shí)現(xiàn)了3G和wIFI的無線漫游。

1 Android平臺(tái)介紹

Android是Google公司最新推出的一個(gè)手機(jī)平臺(tái),是一個(gè)真正意義上的開放性移動(dòng)設(shè)備綜合平臺(tái)。它包括操作系統(tǒng)、用戶界面和應(yīng)用程序及移動(dòng)電話工作所需的全部軟件,而且不存在任何以往阻礙移動(dòng)產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙。Android是由Unix+Java構(gòu)成的。它的架構(gòu)和工作原理決定了Android即目前最具可移植性的手機(jī)操作系統(tǒng)。Android是開源軟件,能夠有效降低軟件的成本,從而降低手機(jī)的整體價(jià)格,最終讓每個(gè)用戶能夠自由的獲取信息。Android提供了一個(gè)從操作系統(tǒng)到應(yīng)用程序的完整的軟件棧,同時(shí)又允許人們定制差異化,以形成自己的競(jìng)爭(zhēng)優(yōu)勢(shì),這對(duì)于手機(jī)制造商來說,具有強(qiáng)大的吸引力。開源軟件帶來的另一個(gè)好處是允許廠商自主解決問題。在此我們借助android系統(tǒng)的開源性及可定制的特性在此基礎(chǔ)上增加了3G、WIFI的無線漫游機(jī)制。

2 WIFI漫游中ListView的作用

Activity是構(gòu)成應(yīng)用程序中最重要的構(gòu)造塊,在Android應(yīng)用程序中,幾乎都是通過Activity來與用戶進(jìn)行交互,所以Activity主要負(fù)責(zé)的就是創(chuàng)建與用戶進(jìn)行交互的顯示窗口,你可以在這些窗口里通過調(diào)用setContentView(View)方法來顯示你自己的用戶界面。在實(shí)際開發(fā)應(yīng)用程序的過程中通常需要用到列表顯示功能,那么在Android應(yīng)用中,我們是通過Android中的一個(gè)特殊組件ListView來進(jìn)行列表展示,它以列表的形式展示具體內(nèi)容,并且能夠根據(jù)數(shù)據(jù)的長(zhǎng)度自適應(yīng)顯示。列表的顯示需要3個(gè)元素。

1.ListVeiw。用來展示列表的View。

2. 適配器。用來把數(shù)據(jù)映射到ListView上的中介。

3. 數(shù)據(jù)。具體的將被映射的字符串、圖片、或者基本組件。

ListView 繪制的過程如下:首先,系統(tǒng)在繪制ListView 之前,將會(huì)先調(diào)用getCount方法來獲取Item 的個(gè)數(shù)。之后每繪制一個(gè)Item 就會(huì)調(diào)用一次getView 方法,在此方法內(nèi)就可以引用事先定義好的xml來確定顯示的效果并返回一個(gè)View對(duì)象作為一個(gè)Item 顯示出來。也正是在這個(gè)過程中完成了適配器的主要轉(zhuǎn)換功能,把數(shù)據(jù)和資源以開發(fā)者想要的效果顯示出來。也正是getView 的重復(fù)調(diào)用,使得ListView 的使用更為簡(jiǎn)單和靈活。這兩個(gè)方法是自定ListView顯示效果中最為重要的,同時(shí)只要重寫好了前兩個(gè)方法,ListView就能完全按開發(fā)者的要求顯示。而getltem和getltemld方法將會(huì)在調(diào)用ListView的響應(yīng)方法的時(shí)候被調(diào)用到。所以要保證ListView的各個(gè)方法有效的話,這兩個(gè)方法也得重寫。ListView作為一個(gè)數(shù)據(jù)顯示的機(jī)制,在用戶添加完SSID節(jié)點(diǎn)可以通過這種機(jī)制顯示出來,同時(shí)還添加了刪除,修改按鈕及SSID序號(hào)。這些SSID節(jié)點(diǎn)作為wIFI漫游的搜索節(jié)點(diǎn),按照用戶的經(jīng)常使用的級(jí)別定義優(yōu)先順序。

2.1 SharedPreference實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)

Android 平臺(tái)給我們提供了一個(gè)SharedPreferences類,它是一個(gè)輕量級(jí)的存儲(chǔ)類,特別適合用于保存軟件配置參數(shù)。SharedPreferences是以鍵值對(duì)來存儲(chǔ)應(yīng)用程序的配置信息的一種方式,它只能存儲(chǔ)基本數(shù)據(jù)類型。一個(gè)程序的配置文件僅可以在本應(yīng)用程序中使用,或者說只能在同一個(gè)包內(nèi)使用,不能在不同的包之間使用。實(shí)際上SharedPreferences是采用了XML格式將數(shù)據(jù)存儲(chǔ)到設(shè)備中,在DDMS中的File Explorer中的/data/data/~ package name>/shares prefs目錄下。

在Android操作系統(tǒng)手機(jī)終端上實(shí)現(xiàn)了3G和wIFI的無線漫游

因?yàn)閟haredPreferences是使用xml文件保存數(shù)據(jù),getSharedPreferences(name,mode)方法的第一個(gè)參數(shù)用于指定該文件的名稱,名稱不用帶后綴,后綴會(huì)由Android自動(dòng)加上。如果希望SharedPreferences使用的xml文件能被其他應(yīng)用讀和寫,可以指定Context.M ODE—W ORLD— READABLE 和Context.MODE WORLD WRITEABI E權(quán)限。另外Activity還提供了另一個(gè)getPreferences(mode)方法操作SharedPreferences,這個(gè)方法默認(rèn)使用當(dāng)前類不帶包名的類名作為文件的名稱。訪問SharedPreferences中的數(shù)據(jù)代碼如下:

在Android操作系統(tǒng)手機(jī)終端上實(shí)現(xiàn)了3G和wIFI的無線漫游

Long num — ssidvalues.getI ong(SSIDNUM ,O);如果訪問其他應(yīng)用中的Preference,前提條件是該preference創(chuàng)建時(shí)指定了Context.MODE WORLDREADABLE 或者Context.MODE WORLDWRITEABLE權(quán)限。在此實(shí)現(xiàn)中是將數(shù)據(jù)存儲(chǔ)在用戶自己定義的SharedPreference文件中,用戶將SSID節(jié)點(diǎn)添加到用戶定義的SSIDINFO文件中。

2.2 3G WIFI無線漫游功能設(shè)計(jì)

在基于android系統(tǒng)手機(jī)中的wIFI和3G都有相應(yīng)的設(shè)置選項(xiàng),在WIFI設(shè)置關(guān)閉的情況下默認(rèn)通過3G 網(wǎng)絡(luò)連接上網(wǎng)。用戶會(huì)經(jīng)常去一些有wIFI熱點(diǎn)的地方,這些熱點(diǎn)是給用戶免費(fèi)開放的,可以通過WIFI網(wǎng)絡(luò)連接到互聯(lián)網(wǎng)。這些經(jīng)常用的AP節(jié)點(diǎn)就是用戶設(shè)置的SSID節(jié)點(diǎn)。

WIFI AP節(jié)點(diǎn)認(rèn)證連接過程:

①搜索過程。終端進(jìn)入wIFI后,首先搜索候選網(wǎng)絡(luò)的AP信息,AP搜索過程就是終端掃描信道獲取AP信息的過程,也叫AP掃描過程。在此過程中,終端在某個(gè)頻道上發(fā)出請(qǐng)求消息,然后等待AP回應(yīng),然后轉(zhuǎn)到下一個(gè)頻道。IEEE802.n標(biāo)準(zhǔn)規(guī)定,AP在收到終端發(fā)出的請(qǐng)求信息后,必須回復(fù)攜帶自身信息的包給終端,終端成功收到AP回復(fù)后,就能夠確知AP的存在并獲取妙的相關(guān)信息。

② 認(rèn)證過程。終端在發(fā)起切換連接上wIFI一個(gè)新的AP時(shí),需要通過AP的認(rèn)證。在進(jìn)入認(rèn)證階段后,AP先發(fā)送一個(gè)待驗(yàn)證的內(nèi)容片斷給終端,終端解析此內(nèi)容后將解析結(jié)果返回給AP,再判斷終端解析后的內(nèi)容是否正確,如果正確則通過認(rèn)證,否則失敗。3個(gè)子過程缺少一個(gè)過程都會(huì)導(dǎo)致此次認(rèn)證失敗,因此保證了AP認(rèn)證機(jī)制的可靠性。盡管這3個(gè)過程比較復(fù)雜,在終端與AP之間產(chǎn)生了多次的交互,然而這些過程并不占用太多的時(shí)間。

③ 重關(guān)聯(lián)過程。在經(jīng)過認(rèn)證后,需要與連接上的AP進(jìn)行重關(guān)聯(lián),然后通過AP連接上網(wǎng)。在重關(guān)聯(lián)過程中,終端先發(fā)送重關(guān)聯(lián)請(qǐng)求幀給AP,該幀包含了終端一些信息,如終端所支持的數(shù)據(jù)比特率及終端將要進(jìn)行連接的AP在網(wǎng)絡(luò)中的SSID。在接收到請(qǐng)求后,AP處理請(qǐng)求并為該終端建立一條關(guān)聯(lián)ID號(hào)同時(shí)分配一部分存儲(chǔ)空間來存儲(chǔ)相關(guān)信息。然后AP向終端發(fā)送重關(guān)聯(lián)響應(yīng)來通終端關(guān)聯(lián)成功還是失敗,同時(shí)包含AP建立重關(guān)聯(lián)的相關(guān)信息。如果關(guān)聯(lián)成功,則終端可以使用此AP聯(lián)網(wǎng)并與其他已經(jīng)聯(lián)網(wǎng)的終端進(jìn)行通信了。

④ 地址配置。終端在連接上AP后,AP要給終端分配一個(gè)IP地址,使其通過IP地址連接上互聯(lián)網(wǎng)。

以上步驟是wIFI在熱點(diǎn)區(qū)域連接AP節(jié)點(diǎn)認(rèn)證的過程。在android系統(tǒng)中wIFI如果設(shè)定為關(guān)閉即使是在有wIFI熱點(diǎn)區(qū)域也不會(huì)進(jìn)行搜索連接。為此我們添加了wIFI漫游過程。首先每隔一個(gè)固定間隔時(shí)間打開wIFI設(shè)置,查找是否有wIFI熱點(diǎn),如果有就進(jìn)行以上的wIFI連接AP節(jié)點(diǎn)的過程,然后查找用戶設(shè)定的SSID節(jié)點(diǎn),查找到和用戶設(shè)定的一致的SSID節(jié)點(diǎn)則進(jìn)行網(wǎng)絡(luò)連接。網(wǎng)絡(luò)連接終端可以發(fā)起切換,在與3G 網(wǎng)絡(luò)斷開后使用存儲(chǔ)的信息與wIFI的AP建立連接,通過wIFI上網(wǎng),從3G 網(wǎng)絡(luò)切換到WIFI網(wǎng)絡(luò)連接到Internet。

2.3 WIFI漫游功能模塊框圖

為了能夠在間隔固定時(shí)間查詢是否有wIFI熱點(diǎn)區(qū)域,特啟動(dòng)了一個(gè)漫游線程,該線程主要完成了如果已經(jīng)在wIFI熱點(diǎn)區(qū)域則打開wIFI設(shè)置,將wIFI的AP節(jié)點(diǎn)與用戶設(shè)定的SSID進(jìn)行比較如果為設(shè)定的SSID節(jié)點(diǎn)則進(jìn)行連接,否則即使在熱點(diǎn)區(qū)域仍然用3G 網(wǎng)絡(luò)連接。

在3G連接的情況下實(shí)現(xiàn)探測(cè)wIFI節(jié)點(diǎn)流程圖,如果探測(cè)到的SSID在設(shè)定的I ist列表中,將3G關(guān)閉并自動(dòng)連接到設(shè)定的SSID,實(shí)現(xiàn)流程圖如圖1所示。

在Android操作系統(tǒng)手機(jī)終端上實(shí)現(xiàn)了3G和wIFI的無線漫游

3 結(jié)束語

本文提出了一種基于Android系統(tǒng)終端控制上實(shí)現(xiàn)3G到WIFI以及WIFI到3G 的無線漫游機(jī)制,分析了3G到WIFI的連接、認(rèn)證、得到AP信息的過程。

該機(jī)制的實(shí)現(xiàn)還主要用到了android中的ListView用來進(jìn)行數(shù)據(jù)顯示,利用了adapter實(shí)現(xiàn)了IAstView的數(shù)據(jù)傳輸,以及利用SharedPreference實(shí)現(xiàn)簡(jiǎn)單數(shù)據(jù)存儲(chǔ)。該漫游機(jī)制的實(shí)現(xiàn)方便了用戶使用,減少了用戶使用3G網(wǎng)絡(luò)流量的費(fèi)用。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 手機(jī)
    +關(guān)注

    關(guān)注

    35

    文章

    6888

    瀏覽量

    157836
  • 3G
    3G
    +關(guān)注

    關(guān)注

    4

    文章

    851

    瀏覽量

    181992
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3939

    瀏覽量

    127641
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    3G發(fā)展概述,3G頻譜分配,3G業(yè)務(wù)應(yīng)用

    3G發(fā)展和演進(jìn)介紹:3G發(fā)展概述,3G頻譜分配,3G業(yè)務(wù)應(yīng)用第三代移動(dòng)通信的提出IMT-2000是第三代移動(dòng)通信系統(tǒng)
    發(fā)表于 06-14 19:31

    [原創(chuàng)]Symbian和3G的關(guān)系

    息息相關(guān)的緣故,和許多來華清遠(yuǎn)見咨詢培訓(xùn)課程的朋友交流溝通的過程中,我不止一次地發(fā)現(xiàn):有許多人把3G和Symbian完全等同起來,甚至認(rèn)為從事3G產(chǎn)品的開發(fā)就一定是從事基于Symb
    發(fā)表于 12-02 14:53

    3G終端的關(guān)鍵技術(shù)和發(fā)展趨勢(shì)

    傳感器兩種。CCD圖像質(zhì)量?jī)?yōu)良,但其功耗和體積較大,需要多種電源且產(chǎn)能有限。CMOS傳感器體積、功耗上具有優(yōu)勢(shì),移動(dòng)終端上應(yīng)用較多。3.2軟件關(guān)鍵技術(shù)3G
    發(fā)表于 03-26 08:49

    [推薦]免費(fèi)培訓(xùn)嘍!教你玩轉(zhuǎn)3G手機(jī)

    ,比如:第一代代表:大哥大,第二代代表:全球通,第三代的代表就是3G,3G與2G的主要區(qū)別是傳輸聲音和數(shù)據(jù)的速度上的提升,所以
    發(fā)表于 10-27 14:55

    [分享]免費(fèi)培訓(xùn)嘍!教你玩轉(zhuǎn)3G手機(jī)

    ,比如:第一代代表:大哥大,第二代代表:全球通,第三代的代表就是3G3G與2G的主要區(qū)別是傳輸聲音和數(shù)據(jù)的速度上的提升,所以
    發(fā)表于 10-27 15:08

    軌道交通路面3G手機(jī)移動(dòng)可視化巡檢系統(tǒng)方案

    巡檢設(shè)備實(shí)現(xiàn)與中心對(duì)講,實(shí)時(shí)觀看現(xiàn)場(chǎng)的實(shí)時(shí)情況。2、系統(tǒng)組成本系統(tǒng)設(shè)計(jì)是基于3GWIFI無線
    發(fā)表于 01-28 10:05

    底板上怎么做 3g wifi 模塊,跑操作系統(tǒng)對(duì)主頻有沒有要求?

    底板上怎么做 3g wifi 模塊。跑操作系統(tǒng)對(duì)主頻有沒有要求?
    發(fā)表于 11-08 09:24

    怎么實(shí)現(xiàn)基于嵌入式Linux系統(tǒng)3G/4G路由器設(shè)計(jì)?

    ,智能終端等用戶可以利用自帶的WiFi功能接入該無線局域網(wǎng),然后再將該無線局域網(wǎng)橋接至3G/4G
    發(fā)表于 05-24 06:07

    如何設(shè)計(jì)出基于Android操作系統(tǒng)3G手機(jī)網(wǎng)絡(luò)攝像機(jī)客戶端軟件?

    本文深入研究MJPEG視頻壓縮算法,闡述算法實(shí)現(xiàn)過程,并設(shè)計(jì)出基于Android操作系統(tǒng)3G
    發(fā)表于 06-01 06:29

    3G時(shí)代五大手機(jī)操作系統(tǒng)是哪些?

    3G時(shí)代五大手機(jī)操作系統(tǒng)是哪些?  未來的手機(jī)之戰(zhàn),必將是操作系統(tǒng)之戰(zhàn)。   2
    發(fā)表于 02-25 09:48 ?2364次閱讀

    用于Android手機(jī)操作系統(tǒng)VideoEngine

    用于Android手機(jī)操作系統(tǒng)VideoEngine Global IP Solutions(GIPS)公司宣布,率先推出用于Android手機(jī)
    發(fā)表于 04-17 10:15 ?2056次閱讀

    3G手機(jī)操作系統(tǒng)的研究和分析

     本文全面介紹3G智能手機(jī)的功能和應(yīng)用。對(duì)目前智能手機(jī)采用的主要操作系統(tǒng)進(jìn)行了比較和分析,指出了智能
    發(fā)表于 10-28 15:30 ?3594次閱讀

    Android系統(tǒng)終端實(shí)現(xiàn)3G WIFI無線漫游

    本文提出了一種基于Android系統(tǒng)終端控制上實(shí)現(xiàn)3GWIFI以及
    發(fā)表于 12-24 00:36 ?1829次閱讀
    <b class='flag-5'>Android</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>終端</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>3G</b> <b class='flag-5'>WIFI</b><b class='flag-5'>無線</b><b class='flag-5'>漫游</b>

    基于3G無線傳感的橋梁集群健康監(jiān)測(cè)系統(tǒng)

    介紹一種基于3G無線傳感的橋梁集群健康實(shí)時(shí)監(jiān)測(cè)系統(tǒng)。系統(tǒng)3G
    發(fā)表于 08-08 14:48 ?41次下載
    基于<b class='flag-5'>3G</b><b class='flag-5'>無線</b>傳感的橋梁集群健康監(jiān)測(cè)<b class='flag-5'>系統(tǒng)</b>

    基于Android系統(tǒng)終端實(shí)現(xiàn)3G WIFI無線漫游

    基于Android系統(tǒng)終端實(shí)現(xiàn)3G WIFI無線
    發(fā)表于 01-13 22:02 ?3次下載