欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于Android的多PDP數(shù)據(jù)傳輸方法

文檔序號:7807412閱讀:186來源:國知局
一種基于Android的多PDP數(shù)據(jù)傳輸方法
【專利摘要】本發(fā)明提供一種基于Android的多PDP數(shù)據(jù)傳輸方法,用于供至少一應(yīng)用程序?qū)Χ鄠€(gè)PDP設(shè)備作數(shù)據(jù)傳輸,所述方法包括:判斷APN是否激活,若未激活,則激活A(yù)PN以建立主PDP數(shù)據(jù)連接;若已激活,則在已經(jīng)激活的APN的主PDP數(shù)據(jù)連接以外建立對應(yīng)多個(gè)PDP設(shè)備的從PDP數(shù)據(jù)連接;掛接多個(gè)PDP設(shè)備至Android系統(tǒng)中的通信協(xié)議棧;應(yīng)用程序建立與通信協(xié)議棧間的Socket;將Socket綁定至通信協(xié)議棧下應(yīng)用程序需傳輸?shù)腜DP設(shè)備,以進(jìn)行數(shù)據(jù)傳輸,如此,能全面支持多PDP數(shù)據(jù)連接,更主動(dòng)有效管理PDP數(shù)據(jù)連接情況,省去路由選擇使傳輸更加高效,帶寬利用充分,斷開空閑設(shè)備節(jié)省網(wǎng)絡(luò)資源。
【專利說明】-種基于Android的多PDP數(shù)據(jù)傳輸方法

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及通信【技術(shù)領(lǐng)域】,特別是涉及一種基于Android的多PDP數(shù)據(jù)傳輸方法。

【背景技術(shù)】
[0002] 現(xiàn)有Android系統(tǒng)只支持單FOP (Packet Data Protocol,分組數(shù)據(jù)協(xié)議)數(shù)據(jù)傳 輸,而基帶通信系統(tǒng)支持多PDP數(shù)據(jù)傳輸,導(dǎo)致目前系統(tǒng)無法充分發(fā)揮基帶通信系統(tǒng)所提 供的數(shù)據(jù)傳輸能力,無法獲得更快的數(shù)據(jù)傳輸率。對于單PDP數(shù)據(jù)傳輸,當(dāng)上層應(yīng)用需要使 用不同的APN進(jìn)行數(shù)據(jù)業(yè)務(wù)時(shí),只能中斷先前的APN(Access Point Name,接入點(diǎn))下的FOP 數(shù)據(jù)連接,重新激活新的APN,在新的APN下建立PDP數(shù)據(jù)連接,這樣會導(dǎo)致使用先前APN的 應(yīng)用中數(shù)據(jù)傳輸出現(xiàn)中斷,只能等到新的APN下的PDP數(shù)據(jù)傳輸結(jié)束后,才能重新激活先前 的APN,重新建立新的PDP數(shù)據(jù)連接,如果應(yīng)用對數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性要求較高,則可能先前 的應(yīng)用直接癱瘓或退出了,這樣用戶只能重新開啟先前的應(yīng)用,并從頭開始進(jìn)行數(shù)據(jù)業(yè)務(wù), 不僅造成數(shù)據(jù)流量的浪費(fèi),也會帶給用戶很不好的體驗(yàn)效果。特別是在3G網(wǎng)絡(luò)已經(jīng)成熟, 4G網(wǎng)絡(luò)已經(jīng)逐步商用的環(huán)境下,移動(dòng)網(wǎng)絡(luò)提供的數(shù)據(jù)帶寬和數(shù)據(jù)業(yè)務(wù)都會增強(qiáng),同一時(shí)刻 只能進(jìn)行一條PDP數(shù)據(jù)業(yè)務(wù)的系統(tǒng)已無法適應(yīng)這種環(huán)境了。
[0003] 目前比較近似的一種方案是僅僅實(shí)現(xiàn)了基于CMWAP的MMS應(yīng)用開啟時(shí),不影響此 時(shí)基于CMWAP的其他數(shù)據(jù)業(yè)務(wù),解決方法是在Android的Framework框架層中,加入了對基 于CMWAP的麗S業(yè)務(wù)的特殊處理,從而實(shí)現(xiàn)一種情況下的多PDP傳輸。由于該方案僅僅只 針對MMS有效,仍然不是普遍意義上的多PDP傳輸,并且也僅僅只支持CMWAP這一個(gè)APN下 的數(shù)據(jù)傳輸,應(yīng)用場景非常有限。


【發(fā)明內(nèi)容】

[0004] 鑒于以上所述現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供一種基于Android的多 PDP數(shù)據(jù)傳輸方法,解決上述現(xiàn)有技術(shù)中單PDP或多PDP傳輸?shù)娜毕荨?br> [0005] 為實(shí)現(xiàn)上述目標(biāo)及其他相關(guān)目標(biāo),本發(fā)明提供一種基于Android的多PDP數(shù)據(jù)傳 輸方法,用于供至少一應(yīng)用程序?qū)Χ鄠€(gè)PDP設(shè)備作數(shù)據(jù)傳輸,其中,所述方法包括:判斷APN 是否激活,若未激活,則激活所述APN以建立主PDP數(shù)據(jù)連接;若已激活,則在已經(jīng)激活的 APN的主PDP數(shù)據(jù)連接以外建立對應(yīng)所述多個(gè)PDP設(shè)備的從PDP數(shù)據(jù)連接;掛接所述多個(gè) PDP設(shè)備至所述Android系統(tǒng)中的通信協(xié)議棧;所述應(yīng)用程序建立與所述通信協(xié)議棧間的 Socket ;將所述Socket綁定至通信協(xié)議棧下所述應(yīng)用程序需傳輸?shù)腜DP設(shè)備,進(jìn)而進(jìn)行所 述數(shù)據(jù)傳輸。
[0006] 優(yōu)選的,所述APN是通過激活的APN設(shè)置列表來管理的。
[0007] 優(yōu)選的,所述方法還包括:在所述數(shù)據(jù)傳輸完畢或所述PDP設(shè)備在預(yù)設(shè)時(shí)間內(nèi)沒 有數(shù)據(jù)傳輸,APN釋放所述數(shù)據(jù)傳輸完畢或預(yù)設(shè)時(shí)間內(nèi)沒有數(shù)據(jù)傳輸?shù)腜DP數(shù)據(jù)連接,其 中,所述PDP數(shù)據(jù)連接的釋放包括:從所述通信協(xié)議棧卸載所述數(shù)據(jù)傳輸完畢或預(yù)設(shè)時(shí)間 內(nèi)沒有數(shù)據(jù)傳輸?shù)腜DP設(shè)備。
[0008] 優(yōu)選的,所述掛接所述多個(gè)PDP設(shè)備至所述Android系統(tǒng)中的通信協(xié)議棧,包括: 至少配置PDP設(shè)備的IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)地址及DNS地址參數(shù),以供后續(xù)為所述PDP設(shè) 備綁定Socket。
[0009] 優(yōu)選的,綁定于所述PDP設(shè)備的Socket通過Socket列表來管理;所述將所述 Socket綁定至通信協(xié)議棧下所述應(yīng)用程序需調(diào)用的PDP設(shè)備,進(jìn)而進(jìn)行所述數(shù)據(jù)傳輸,包 括:PDP設(shè)備接收到應(yīng)用程序傳輸來的數(shù)據(jù)包,將需回傳數(shù)據(jù)發(fā)送至所述通信協(xié)議棧;所述 通信協(xié)議棧從需回傳的數(shù)據(jù)包中解析出源IP地址、目的IP地址、源端口及目的端口,并據(jù) 以確定PDP設(shè)備而從Socket列表中搜索綁定的Socket,將需回傳數(shù)據(jù)交給對應(yīng)的Socket 以傳輸至對應(yīng)的應(yīng)用程序。
[0010] 優(yōu)選的,所述通信協(xié)議棧包括TCP/UDP協(xié)議棧及IP協(xié)議棧;所述需回傳數(shù)據(jù)是先 在IP協(xié)議棧進(jìn)行處理,然后到TCP/UDP協(xié)議棧進(jìn)行處理以解析出源IP地址、目的IP地址、 源端口及目的端口。
[0011] 優(yōu)選的,每個(gè)PDP設(shè)備與所綁定的Socket之間為一對一或一對多的關(guān)系。
[0012] 優(yōu)選的,所述Socket綁定PDP設(shè)備是通過調(diào)用Android系統(tǒng)中的setsocketopt 函數(shù)完成的。
[0013] 優(yōu)選的,所述應(yīng)用程序是通過廣播消息來獲取所述對應(yīng)需調(diào)用的PDP設(shè)備名稱, 所述綁定是指將PDP設(shè)備名稱與Socket綁定。
[0014] 優(yōu)選的,所述Android系統(tǒng)中的Framework部分完成所述APN激活、PDP設(shè)備掛接 通信協(xié)議棧、及所述PDP數(shù)據(jù)連接建立的步驟。
[0015] 如上所述,本發(fā)明提供一種基于Android的多PDP數(shù)據(jù)傳輸方法,用于供至少一應(yīng) 用程序?qū)Χ鄠€(gè)PDP設(shè)備作數(shù)據(jù)傳輸,其中,所述方法包括:判斷APN是否激活,若未激活,則 激活所述APN以建立主PDP數(shù)據(jù)連接;若已激活,則在已經(jīng)激活的APN的主PDP數(shù)據(jù)連接以 外建立對應(yīng)所述多個(gè)PDP設(shè)備的從PDP數(shù)據(jù)連接;掛接所述多個(gè)PDP設(shè)備至所述Android 系統(tǒng)中的通信協(xié)議棧;所述應(yīng)用程序建立與所述通信協(xié)議棧間的Socket ;將所述Socket綁 定至通信協(xié)議棧下所述應(yīng)用程序需傳輸?shù)腜DP設(shè)備,進(jìn)而進(jìn)行所述數(shù)據(jù)傳輸,如此,便能夠 全面支持多PDP數(shù)據(jù)連接,使應(yīng)用程序能夠更加主動(dòng)有效的管理PDP數(shù)據(jù)連接情況;且將 Socket與PDP設(shè)備進(jìn)行綁定,省去進(jìn)行路由選擇使傳輸更加高效,并且只要通信基帶芯片 能夠支持,對建立的PDP數(shù)據(jù)連接數(shù)目沒有限制,能夠更加充分利用帶寬,并可對沒有進(jìn)行 數(shù)據(jù)傳輸?shù)腜DP數(shù)據(jù)連接主動(dòng)斷開,更加節(jié)省網(wǎng)絡(luò)資源。

【專利附圖】

【附圖說明】
[0016] 圖1顯示為本發(fā)明的基于Android的多PDP數(shù)據(jù)傳輸方法的一實(shí)施例的流程示意 圖。
[0017] 圖2顯示為本發(fā)明一實(shí)施例中APN設(shè)置列表的結(jié)構(gòu)示意圖。
[0018] 圖3顯示為本發(fā)明一實(shí)施例中的數(shù)據(jù)傳輸?shù)脑硎疽鈭D。
[0019] 元件標(biāo)號說明
[0020] S1?S6方法步驟

【具體實(shí)施方式】
[0021] 以下通過特定的具體實(shí)例說明本發(fā)明的實(shí)施方式,本領(lǐng)域技術(shù)人員可由本說明書 所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點(diǎn)與功效。本發(fā)明還可以通過另外不同的具體實(shí) 施方式加以實(shí)施或應(yīng)用,本說明書中的各項(xiàng)細(xì)節(jié)也可以基于不同觀點(diǎn)與應(yīng)用,在沒有背離 本發(fā)明的精神下進(jìn)行各種修飾或改變。需說明的是,在不沖突的情況下,本申請中的實(shí)施例 及實(shí)施例中的特征可以相互組合。
[0022] 如圖1所示,本發(fā)明提供一種基于Android的多PDP數(shù)據(jù)傳輸方法,用于供至少一 應(yīng)用程序?qū)Χ鄠€(gè)PDP設(shè)備作數(shù)據(jù)傳輸,其中,所述方法包括:
[0023] 步驟S1 :判斷APN是否激活。
[0024] 在一實(shí)施例中,所述APN是指一種網(wǎng)絡(luò)接入技術(shù)。APN的英文全稱是Access Point Name,中文全稱叫接入點(diǎn),是在通過手機(jī)或平板電腦等移動(dòng)終端上網(wǎng)時(shí)必須配置的 一個(gè)參數(shù),它決定了通過哪種接入方式來訪問網(wǎng)絡(luò);所述APN是通過激活的APN設(shè)置列表 (Apnsetting列表)來管理的,對于單PDP數(shù)據(jù)連接系統(tǒng),Android的Framework部分只需 要維護(hù)一個(gè)激活的ApnSetting,也只需要維護(hù)一條PDP數(shù)據(jù)連接;為了支持多PDP數(shù)據(jù)連 接,貝 1J需要維護(hù)一個(gè)激活的ApnSetting列表,且每個(gè)激活的ApnSetting下面至少先有一個(gè) 主PDP連接(即Primary PDP Data Connection),除了第一次激活A(yù)PN建立的PDP數(shù)據(jù)連接 為主PDP數(shù)據(jù)連接外,其余的皆為從PDP數(shù)據(jù)連接(即Secondary PDP DataConnection), 所述APN設(shè)置列表具體結(jié)構(gòu)可參見圖2。
[0025] 步驟S2 :若未激活,則激活所述APN以建立主PDP數(shù)據(jù)連接。
[0026] 在一實(shí)施例中,在Android系統(tǒng)中,APN在未激活時(shí),即手機(jī)或平板電腦等終端未 有網(wǎng)絡(luò)接入點(diǎn)接入,因此需先判斷對應(yīng)的APN是否激活,未激活的話則將其激活,并建立主 PDP數(shù)據(jù)連接,進(jìn)而建立從PDP數(shù)據(jù)連接。
[0027] 當(dāng)然,在步驟S2中還可包括:判斷主PDP數(shù)據(jù)連接是否建立成功;若建立成功,則 繼續(xù)判斷,并可將PDP設(shè)備的名稱返回給通信協(xié)議棧進(jìn)而到達(dá)應(yīng)用程序,由于所述主PDP數(shù) 據(jù)連接的建立必然也是由所述應(yīng)用程序的請求所產(chǎn)生,因此,應(yīng)用程序是可以通過廣播消 息并通過所述通信協(xié)議棧到達(dá)各PDP設(shè)備來獲取所述對應(yīng)需調(diào)用的PDP設(shè)備名稱;若建立 失敗,則提示用戶或重新連接或退出應(yīng)用程序。
[0028] 步驟S3 :若已激活,則在已經(jīng)激活的APN的主PDP數(shù)據(jù)連接以外建立對應(yīng)所述多 個(gè)PDP設(shè)備的從PDP數(shù)據(jù)連接。
[0029] 在一實(shí)施例中,在建立從PDP數(shù)據(jù)連接的步驟中,還可以包括:判斷建立從PDP數(shù) 據(jù)連接是否成功;若成功,則開始后續(xù)關(guān)于數(shù)據(jù)傳輸?shù)牟襟E;若建立失敗,則提示用戶或重 新連接或退出應(yīng)用程序。
[0030] 步驟S4 :掛接所述多個(gè)PDP設(shè)備至所述Android系統(tǒng)中的通信協(xié)議棧;
[0031] 在一實(shí)施例中,優(yōu)選的,可以在每次建立成功一 PDP數(shù)據(jù)連接(可以是主PDP數(shù)據(jù) 連接,也可是從PDP數(shù)據(jù)連接)后,即將對應(yīng)需數(shù)據(jù)傳輸?shù)腜DP設(shè)備掛接至通信協(xié)議棧;當(dāng) 然在其他實(shí)施例中,亦可先建立所有PDP數(shù)據(jù)連接然后掛接所有對應(yīng)的PDP設(shè)備,皆可以本 領(lǐng)域技術(shù)人員可以據(jù)以實(shí)施為準(zhǔn);所述通信協(xié)議棧包括TCP/UDP協(xié)議棧及IP協(xié)議棧,在本 發(fā)明中的具體應(yīng)用將于后續(xù)說明,主要是用于作為應(yīng)用程序和PDP設(shè)備之間的數(shù)據(jù)傳輸橋 梁。
[0032] 并且,在該步驟中,在掛接上PDP設(shè)備時(shí),還可同時(shí)配置PDP設(shè)備的IP地址、子網(wǎng) 掩碼、網(wǎng)關(guān)地址及DNS地址等參數(shù),以供后續(xù)為所述PDP設(shè)備綁定Socket (即應(yīng)用程序?yàn)閭?輸數(shù)據(jù)產(chǎn)生的"插口 "或稱"接口 "函數(shù),通常稱為"套接字")為特征依據(jù)。
[0033] 步驟S5 :所述應(yīng)用程序建立與所述通信協(xié)議棧間的Socket。
[0034] 在一實(shí)施例中,步驟S5即為應(yīng)用程序App建立至通信協(xié)議棧的連接口,也就是說, 通信協(xié)議棧和應(yīng)用程序之間通過建立的Socket連接,通信協(xié)議棧和PDP設(shè)備之間通過建立 的PDP數(shù)據(jù)連接來連接。
[0035] 步驟S6 :將所述Socket綁定至通信協(xié)議棧下所述應(yīng)用程序需傳輸?shù)腜DP設(shè)備,進(jìn) 而進(jìn)行所述數(shù)據(jù)傳輸。
[0036] 在一實(shí)施例中,在單PDP數(shù)據(jù)連接系統(tǒng)中,Android的通信協(xié)議棧中只掛接一個(gè) PDP設(shè)備,應(yīng)用程序進(jìn)行數(shù)據(jù)傳輸時(shí),只需要建立Socket,就可以通過掛接的PDP設(shè)備進(jìn)行 數(shù)據(jù)業(yè)務(wù);但在多PDP數(shù)據(jù)連接系統(tǒng)中,Android的通信協(xié)議棧中掛接了多個(gè)PDP設(shè)備, 如果應(yīng)用還是按照單PDP系統(tǒng)建立Socket,則通信協(xié)議棧只會根據(jù)路由情況,任意選擇一 個(gè)PDP設(shè)備進(jìn)行數(shù)據(jù)傳輸,這樣就會出現(xiàn)混亂;所以,在本發(fā)明中,應(yīng)用程序(App)在建立 Socket進(jìn)行數(shù)據(jù)傳輸業(yè)務(wù)時(shí),需要通過setsocketopt函數(shù)將PDP設(shè)備名稱(如上所述,例 如PDP數(shù)據(jù)連接建立成功后,應(yīng)用程序能通過廣播獲取PDP設(shè)備名稱)與Socket進(jìn)行綁定; 綁定于所述PDP設(shè)備的Socket通過Socket列表來管理。
[0037] 需說明的是,雖然上述實(shí)施例中綁定的是PDP設(shè)備名稱,但是在其他實(shí)施例中,同 樣是可以替換為例如MAC地址或設(shè)備ID號等其他對應(yīng)每個(gè)PDP設(shè)備的唯一標(biāo)識皆可,而非 以上述為限。
[0038] 請參閱圖3,所述數(shù)據(jù)傳輸過程,具體來說,當(dāng)PDP設(shè)備接收到應(yīng)用程序傳輸來的 分組Packe數(shù)據(jù)包,將需回傳的數(shù)據(jù)包發(fā)送至所述通信協(xié)議棧,具體的,在Linux的Android 系統(tǒng)中,通信協(xié)議棧是在內(nèi)核空間(kernel-space)中,并可通過kernal thread函數(shù)加載例 如Hard_start_xmit函數(shù)(用于設(shè)備調(diào)用)及netif_rx函數(shù)(通信協(xié)議棧向驅(qū)動(dòng)提供的接 收數(shù)據(jù)包的接口)等以實(shí)現(xiàn)連接調(diào)用所述各PDP設(shè)備;所述通信協(xié)議棧從需回傳的數(shù)據(jù)包 中解析出源IP地址、目的IP地址、源端口及目的端口,如前所述,所述通信協(xié)議棧包括TCP/ UDP協(xié)議棧及IP協(xié)議棧,則所述需回傳數(shù)據(jù)是先在IP協(xié)議棧進(jìn)行處理,然后到TCP/UDP協(xié) 議棧進(jìn)行處理以解析出源IP地址、目的IP地址、源端口及目的端口,并據(jù)以確定PDP設(shè)備 (例如PDP設(shè)備名稱等標(biāo)識)而從Socket列表中搜索綁定的Socket,將需回傳數(shù)據(jù)交給對 應(yīng)的Socket以傳輸至對應(yīng)的應(yīng)用程序,如此完成多個(gè)PDP設(shè)備和應(yīng)用程序間的傳輸,如果 應(yīng)用程序有多個(gè)則類似方式進(jìn)行,每個(gè)PDP設(shè)備與所綁定的Socket之間為一對一或一對多 的關(guān)系,也就是說,每個(gè)Socket只能與一個(gè)PDP設(shè)備建立對應(yīng)關(guān)系,一個(gè)Socket只能對應(yīng) 一個(gè)PDP設(shè)備,而一個(gè)PDP設(shè)備可以對應(yīng)多個(gè)Scoket。
[0039] 在一實(shí)施例中,所述方法還包括:
[0040] 在所述數(shù)據(jù)傳輸完畢或所述PDP設(shè)備在預(yù)設(shè)時(shí)間內(nèi)沒有數(shù)據(jù)傳輸,APN釋放所 述數(shù)據(jù)傳輸完畢或預(yù)設(shè)時(shí)間內(nèi)沒有數(shù)據(jù)傳輸?shù)腜DP數(shù)據(jù)連接,其中,所述PDP數(shù)據(jù)連接 的釋放包括:從所述通信協(xié)議棧卸載所述數(shù)據(jù)傳輸完畢或預(yù)設(shè)時(shí)間內(nèi)沒有數(shù)據(jù)傳輸?shù)?PDP設(shè)備;在一實(shí)施例中,具體來說,在PDP數(shù)據(jù)連接要釋放時(shí),需要從通信協(xié)議棧中通過 unregister_netdev函數(shù)卸載掉先前掛接的PDP設(shè)備。
[0041] 更進(jìn)一步具體來說,當(dāng)應(yīng)用程序的數(shù)據(jù)傳輸業(yè)務(wù)結(jié)束后,可以單獨(dú)釋放一條 Secondary FOP Data Connection,如果釋放的是 Primary PDP Data Connection,則該 APN 下的所有其他Secondary PDP DataConnection也將被釋放,整個(gè)APN將被去激活而處于 未激活狀態(tài);通過Android系統(tǒng)時(shí)刻對PDP數(shù)據(jù)連接進(jìn)行監(jiān)控,對于PDP數(shù)據(jù)連接建立后 長時(shí)間不進(jìn)行數(shù)據(jù)傳輸?shù)倪B接,需要主動(dòng)釋放PDP數(shù)據(jù)連接,并上報(bào)給應(yīng)用程序,而對于長 時(shí)間沒有進(jìn)行數(shù)據(jù)傳輸?shù)腜rimary PDP DataConnection,則需要釋放其對應(yīng)APN下的所有 Secondary PDP Data Connection,并通知每條FOP數(shù)據(jù)連接對應(yīng)的應(yīng)用,同時(shí)去激活該APN, 這樣可以大大節(jié)省網(wǎng)絡(luò)資源。
[0042] 在一實(shí)施例中,所述Android系統(tǒng)中的Framework部分完成所述APN激活、PDP設(shè) 備掛接通信協(xié)議棧、及所述PDP數(shù)據(jù)連接建立的步驟,即步驟S1至S4,而通過所述通信協(xié) 議棧來完成S5、S6等關(guān)于通過Socket接口完成數(shù)據(jù)傳輸?shù)牟襟E;具體在實(shí)現(xiàn)上,Android 系統(tǒng)根據(jù)用戶設(shè)置,調(diào)用Framework的接口,完成APN激活和PDP數(shù)據(jù)連接建立操作; Framework部分收到上層應(yīng)用程序請求后,將上層請求轉(zhuǎn)換成AT Command,與基帶通信系 統(tǒng)進(jìn)行交互,并返回PDP數(shù)據(jù)連接結(jié)果給上層,如果數(shù)據(jù)連接建立成功,將PDP設(shè)備掛接到 基于Linux的Android系統(tǒng)的通信協(xié)議棧中,后續(xù)各個(gè)應(yīng)用程序直接通過Android封裝的 Socket接口,就可以進(jìn)行PDP數(shù)據(jù)傳輸業(yè)務(wù)了。
[0043] 綜合上述內(nèi)容,本發(fā)明在具體實(shí)現(xiàn)上,為了支持多PDP數(shù)據(jù)連接,對Android系統(tǒng) 需要進(jìn)行三部分的改進(jìn),對于目前的單PDP數(shù)據(jù)連接,所有的應(yīng)用程序不需要去管理PDP數(shù) 據(jù)連接,直接使用默認(rèn)激活的APN和PDP數(shù)據(jù)連接進(jìn)行數(shù)據(jù)業(yè)務(wù),而多PDP數(shù)據(jù)連接下,應(yīng) 用程序需要根據(jù)自身的需要激活不同的APN后才能進(jìn)行數(shù)據(jù)業(yè)務(wù),如果應(yīng)用程序沒有特別 需要,則直接使用默認(rèn)激活的APN和PDP數(shù)據(jù)連接進(jìn)行數(shù)據(jù)業(yè)務(wù),而無需建立新的APN ;其 次,Android Framework的RIL部分需要進(jìn)行設(shè)計(jì),以便支持多PDP數(shù)據(jù)連接;最后,應(yīng)用程 序在進(jìn)行數(shù)據(jù)業(yè)務(wù)時(shí),不僅僅要建立Socket,還要通過setsocketopt函數(shù)將Socket與FOP 設(shè)備進(jìn)行綁定,這樣應(yīng)用才能和PDP設(shè)備進(jìn)行很好的數(shù)據(jù)傳輸,而不會將數(shù)據(jù)傳輸?shù)狡渌?PDP設(shè)備中。
[0044] 綜上所述,本發(fā)明提供一種基于Android的多PDP數(shù)據(jù)傳輸方法,用于供至少一應(yīng) 用程序?qū)Χ鄠€(gè)PDP設(shè)備作數(shù)據(jù)傳輸,其中,所述方法包括:判斷APN是否激活,若未激活,則 激活所述APN以建立主PDP數(shù)據(jù)連接;若已激活,則在已經(jīng)激活的APN的主PDP數(shù)據(jù)連接以 外建立對應(yīng)所述多個(gè)PDP設(shè)備的從PDP數(shù)據(jù)連接;掛接所述多個(gè)PDP設(shè)備至所述Android 系統(tǒng)中的通信協(xié)議棧;所述應(yīng)用程序建立與所述通信協(xié)議棧間的Socket ;將所述Socket綁 定至通信協(xié)議棧下所述應(yīng)用程序需傳輸?shù)腜DP設(shè)備,進(jìn)而進(jìn)行所述數(shù)據(jù)傳輸,如此,便能夠 全面支持多PDP數(shù)據(jù)連接,使應(yīng)用程序能夠更加主動(dòng)有效的管理PDP數(shù)據(jù)連接情況;且將 Socket與PDP設(shè)備進(jìn)行綁定,省去進(jìn)行路由選擇使傳輸更加高效,并且只要通信基帶芯片 能夠支持,對建立的PDP數(shù)據(jù)連接數(shù)目沒有限制,能夠更加充分利用帶寬,并可對沒有進(jìn)行 數(shù)據(jù)傳輸?shù)腜DP數(shù)據(jù)連接主動(dòng)斷開,更加節(jié)省網(wǎng)絡(luò)資源。
[0045] 上述實(shí)施例僅例示性說明本發(fā)明的原理及其功效,而非用于限制本發(fā)明。任何熟 悉此技術(shù)的人士皆可在不違背本發(fā)明的精神及范疇下,對上述實(shí)施例進(jìn)行修飾或改變。因 此,舉凡所屈【技術(shù)領(lǐng)域】中具有通常知識者在未脫離本發(fā)明所揭示的精神與技術(shù)思想下所完 成的一切等效修飾或改變,仍應(yīng)由本發(fā)明的權(quán)利要求所涵蓋。
【權(quán)利要求】
1. 一種基于Android的多PDP數(shù)據(jù)傳輸方法,用于供至少一應(yīng)用程序?qū)Χ鄠€(gè)PDP設(shè)備 作數(shù)據(jù)傳輸,其特征在于,所述方法包括: 判斷APN是否激活,若未激活,則激活所述APN以建立主PDP數(shù)據(jù)連接;若已激活,則在 已經(jīng)激活的APN的主PDP數(shù)據(jù)連接以外建立對應(yīng)所述多個(gè)PDP設(shè)備的從PDP數(shù)據(jù)連接; 掛接所述多個(gè)PDP設(shè)備至所述Android系統(tǒng)中的通信協(xié)議棧; 所述應(yīng)用程序建立與所述通信協(xié)議棧間的Socket ; 將所述Socket綁定至通信協(xié)議棧下所述應(yīng)用程序需傳輸?shù)腜DP設(shè)備,進(jìn)而進(jìn)行所述數(shù) 據(jù)傳輸。
2. 根據(jù)權(quán)利要求1所述的基于Android的多PDP數(shù)據(jù)傳輸方法,其特征在于,所述APN 是通過激活的APN設(shè)置列表來管理的。
3. 根據(jù)權(quán)利要求1所述的基于Android的多PDP數(shù)據(jù)傳輸方法,其特征在于,還包括: 在所述數(shù)據(jù)傳輸完畢或所述PDP設(shè)備在預(yù)設(shè)時(shí)間內(nèi)沒有數(shù)據(jù)傳輸,APN釋放所述數(shù)據(jù)傳輸 完畢或預(yù)設(shè)時(shí)間內(nèi)沒有數(shù)據(jù)傳輸?shù)腜DP數(shù)據(jù)連接,其中,所述PDP數(shù)據(jù)連接的釋放包括:從 所述通信協(xié)議棧卸載所述數(shù)據(jù)傳輸完畢或預(yù)設(shè)時(shí)間內(nèi)沒有數(shù)據(jù)傳輸?shù)腜DP設(shè)備。
4. 根據(jù)權(quán)利要求1所述的基于Android的多PDP數(shù)據(jù)傳輸方法,其特征在于,所述掛接 所述多個(gè)PDP設(shè)備至所述Android系統(tǒng)中的通信協(xié)議棧,包括:至少配置PDP設(shè)備的IP地 址、子網(wǎng)掩碼、網(wǎng)關(guān)地址及DNS地址參數(shù),以供后續(xù)為所述PDP設(shè)備綁定Socket。
5. 根據(jù)權(quán)利要求1所述的基于Android的多PDP數(shù)據(jù)傳輸方法,其特征在于,綁定于所 述PDP設(shè)備的Socket通過Socket列表來管理; 所述將所述Socket綁定至通信協(xié)議棧下所述應(yīng)用程序需調(diào)用的PDP設(shè)備,進(jìn)而進(jìn)行所 述數(shù)據(jù)傳輸,包括: PDP設(shè)備接收到應(yīng)用程序傳輸來的數(shù)據(jù)包,將需回傳數(shù)據(jù)發(fā)送至所述通信協(xié)議棧; 所述通信協(xié)議棧從需回傳的數(shù)據(jù)包中解析出源IP地址、目的IP地址、源端口及目的端 口,并據(jù)以確定PDP設(shè)備而從Socket列表中搜索綁定的Socket,將需回傳數(shù)據(jù)交給對應(yīng)的 Socket以傳輸至對應(yīng)的應(yīng)用程序。
6. 根據(jù)權(quán)利要求5所述的基于Android的多PDP數(shù)據(jù)傳輸方法,其特征在于,所述通信 協(xié)議棧包括TCP/UDP協(xié)議棧及IP協(xié)議棧;所述需回傳數(shù)據(jù)是先在IP協(xié)議棧進(jìn)行處理,然后 到TCP/UDP協(xié)議棧進(jìn)行處理以解析出源IP地址、目的IP地址、源端口及目的端口。
7. 根據(jù)權(quán)利要求1所述的基于Android的多PDP數(shù)據(jù)傳輸方法,其特征在于,每個(gè)PDP 設(shè)備與所綁定的Socket之間為一對一或一對多的關(guān)系。
8. 根據(jù)權(quán)利要求1所述的基于Android的多PDP數(shù)據(jù)傳輸方法,其特征在于,所述 Socket綁定PDP設(shè)備是通過調(diào)用Android系統(tǒng)中的setsocketopt函數(shù)完成的。
9. 根據(jù)權(quán)利要求1所述的基于Android的多PDP數(shù)據(jù)傳輸方法,其特征在于,所述應(yīng)用 程序是通過廣播消息來獲取所述對應(yīng)需調(diào)用的PDP設(shè)備名稱,所述綁定是指將PDP設(shè)備名 稱與Socket綁定。
10. 根據(jù)權(quán)利要求1所述的基于Android的多PDP數(shù)據(jù)傳輸方法,其特征在于,所述 Android系統(tǒng)中的Framework部分完成所述APN激活、PDP設(shè)備掛接通信協(xié)議棧、及所述FOP 數(shù)據(jù)連接建立的步驟。
【文檔編號】H04W76/02GK104053250SQ201410299328
【公開日】2014年9月17日 申請日期:2014年6月26日 優(yōu)先權(quán)日:2014年6月26日
【發(fā)明者】田澤豐 申請人:上海斐訊數(shù)據(jù)通信技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
伊川县| 新巴尔虎右旗| 福安市| 淮阳县| 桦甸市| 龙胜| 安康市| 新和县| 班玛县| 兴安县| 丰顺县| 沁水县| 固安县| 石狮市| 武穴市| 阳东县| 嘉禾县| 唐河县| 汶川县| 大方县| 通江县| 海口市| 南宁市| 循化| 含山县| 手机| 固阳县| 武冈市| 尼勒克县| 南乐县| 澜沧| 宝应县| 旌德县| 东莞市| 深圳市| 合作市| 乐至县| 游戏| 平昌县| 喀什市| 阿拉善盟|