使用BlackBerry開發(fā)上聯(lián)網(wǎng)的五種方式
本文和大家重點(diǎn)討論一下使用BlackBerry開發(fā)上聯(lián)網(wǎng)的五種方式,BlackBerryJDE的API提供了五種方式來(lái)進(jìn)行HTTP或者socket連接,請(qǐng)看本文的詳細(xì)介紹。
使用BlackBerry開發(fā)上聯(lián)網(wǎng)的五種方式
BlackBerryJDE的API提供了五種方式來(lái)進(jìn)行HTTP或者socket連接,包括:
1,BlackBerryEnterpriseServer(BES)方式
這種方式通過(guò)使用BES的BlackBerryMDSServices來(lái)進(jìn)行網(wǎng)絡(luò)連接,BlackBerryMDSServices負(fù)責(zé)處理所有的瀏覽器請(qǐng)求或者連接請(qǐng)求、并負(fù)責(zé)數(shù)據(jù)加密,這是黑莓手機(jī)的默認(rèn)連接方式,如下:
例1:(HttpConnection)Connector.open("http://www.testserver.com");
以上代碼會(huì)自動(dòng)將BlackBerryMDSServices作為它的默認(rèn)連接路徑。實(shí)際開發(fā)中,如果要確保應(yīng)用程序使用usesBlackBerryMDSServices作為它的連接路徑,需要在URL最后加上參數(shù)“deviceside=false”,這也是我們推薦的方式,如下:
例2:(HttpConnection)Connector.open(“http://www.testserver.com;deviceside=false”);
2,BlackBerryInternetServie方式
這種方式是為第三方提供的連接接口,它對(duì)數(shù)據(jù)不進(jìn)行加密,用戶可以通過(guò)使用HTTPS和SSL來(lái)進(jìn)行安全的連接。注:目前僅對(duì)加入了BlackBerryAllianceProgram的第三方開放合作伙伴開放,詳情參考:http://na.blackberry.com/eng/partners/alliance.jsp
3,DirectTCP方式
這種方式允許在沒有使用BlackBerryMDS的黑莓手機(jī)上直接TCP連接。為了能啟用directTCP方式,用戶需要在手機(jī)的“選項(xiàng)-高級(jí)選項(xiàng)-TCP/IP”中設(shè)置APN,以及相應(yīng)的用戶名和密碼。
注1:運(yùn)行在iDEN網(wǎng)絡(luò)上的黑莓手機(jī)(包括6510、7510、7520和7100i),如果不指定deviceside參數(shù)(如例1),默認(rèn)的連接是directTCP;非運(yùn)行在iDEN網(wǎng)絡(luò)上的其他黑莓手機(jī),如果不指定deviceside參數(shù),默認(rèn)的連接是BlackBerryMDS。
注2:如果連接時(shí)BlackBerryMDS不存在,黑莓手機(jī)也會(huì)自動(dòng)采用directTCP方式。
因此,如果要將directTCP作為黑莓手機(jī)的默認(rèn)連接方式,我們建議在URL中加入“deviceside=true”參數(shù),如下:
例3-1:(SocketConnection)Connector.open("socket://testserver:600;deviceside=true");
此外,如果應(yīng)用程序不希使用用戶自己設(shè)置的APN,也可以在URL中指定自己APN,以下是指定通過(guò)中國(guó)移動(dòng)CMNET進(jìn)行直接TCP連接的例子:
例3-2:(SocketConnection)Connector.open("socket://testserver:600;deviceside=true;APN=cmnet");
4,Wi-Fi方式
如果需要在Wi-Fi上創(chuàng)建網(wǎng)絡(luò)連接,不需要在應(yīng)用程序中考慮特別的底層邏輯,可以在URL中加入?yún)?shù)“interface=wifi”就能實(shí)現(xiàn)Wi-Fi連接,如下:
例4:(StreamConnection)Connector.open(“socket://testserver:600;interface=wifi”);
5,WAP方式
5-1,WAP1.x
并不是所有的移動(dòng)運(yùn)營(yíng)商都支持通過(guò)WAP網(wǎng)關(guān)進(jìn)行連接的,所以如果要?jiǎng)?chuàng)建WAP連接,開發(fā)者需要和移動(dòng)運(yùn)營(yíng)商聯(lián)系,獲取是否提供這種支持、并且獲取他們的WAP網(wǎng)管參數(shù)。
以下是一個(gè)基于中國(guó)移動(dòng)CMWAP的WAP網(wǎng)關(guān)進(jìn)行HTTP連接的例子:
例5:(HttpConnection)Connector.open("http://wap.google.com;WAPGatewayIP=10.0.0.172;WAPGatewayAPN=cmwap");
注:其中WAPGatewayIP和WAPGatewayAPN這兩項(xiàng)參數(shù)必須指定,參數(shù)之間用“;”隔開,以下是所有的WAP參數(shù)列表,實(shí)際開發(fā)時(shí)請(qǐng)根據(jù)運(yùn)營(yíng)商提供的信息決定哪些參數(shù)需要設(shè)置。
5-2WAP2.0
如果要連接WAP2.0的網(wǎng)關(guān),需要在連接時(shí)指定servicerecord、以及UID。以下代碼說(shuō)明了WAP2.0的連接時(shí)如何工作的:
例5:
- ServiceBookServiceBooksb=ServiceBook.getSB();
- ServiceRecord[]records=sb.findRecordsByCid("WPTCP");
- Stringuid=null;
- for(inti=0;i<records.length;i++)
- {
- //Searchthroughallservicerecordstofindthe
- //validnon-Wi-Fiandnon-MMS
- //WAP2.0GatewayServiceRecord.
- if(records[i].isValid()&&!records[i].isDisabled())
- {
- if(records[i].getUid()!=null&&records[i].getUid().length()!=0)
- {
- if((records[i].getUid().toLowerCase().indexOf("wifi")==-1)&&
- (records[i].getUid().toLowerCase().indexOf("mms")==-1))
- {
- uid=records[i].getUid();
- break;
- }
- }
- }
- }
- if(uid!=null)
- {
- //openaWAP2connection
- Connector.open(_url+";ConnectionUID="+uid);
- }
- else
- {
- //Consideranothertransportoralternativeaction.
- }
在這里,基本流程是先從ServiceBook中獲得ServiceRecord,然后再?gòu)男枰⒁獾氖?/p>
【編輯推薦】
- Blackberry開發(fā)平臺(tái)的永久存儲(chǔ)-PersistentStore
- 九步實(shí)現(xiàn)BlackBerry開發(fā)程序發(fā)布應(yīng)用到app world
- BlackBerry開發(fā)中七步實(shí)現(xiàn)創(chuàng)建app world賬號(hào)
- BlackBerry開發(fā)環(huán)境中javaloader使用詳解
- 黑莓開發(fā)中黑莓手機(jī)程序訪問(wèn)網(wǎng)絡(luò)能走代理服務(wù)器的三種方式