`
wuhua
  • 浏览: 2114143 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

BlackBerry上连接HTTP或Socket的五种方式

阅读更多

在blackberry的开发中,网络相关的设置有时候比较令人困惑,下面是一篇关于网络设置编程的文章

BlackBerry上连接HTTPSocket的五种方式

 

BlackBerry API提供了五种方式来进行HTTP或者socket连接,包括:

1, BlackBerry Enterprise Server(BES)方式

这种方式通过使用BESBlackBerry MDS Services来进行网络连接,BlackBerry MDS Services负责处理所有的浏览器请求或者连接请求、并负责数据加密,这是黑莓手机的默认连接方式,如下:

1: (HttpConnection) Connector.open("http://www.testserver.com");

以上代码会自动将BlackBerry MDS Services作为它的默认连接路径。实际开发中,如果要确保应用程序使用uses BlackBerry MDS Services作为它的连接路径,需要在URL最后加上参数“deviceside=false,这也是我们推荐的方式,如下:

2: (HttpConnection)Connector.open(“http://www.testserver.com;deviceside=false”);

2, BlackBerry Internet Servie方式

这种方式是为第三方提供的连接接口,它对数据不进行加密,用户可以通过使用HTTPSSSL来进行安全的连接。注:目前仅对加入了BlackBerry Alliance Program第三方开放合作伙伴开放,详情参考:http://na.blackberry.com/eng/partners/alliance.jsp

3, Direct TCP方式

这种方式允许在没有使用BlackBerry MDS的黑莓手机上直接TCP连接。为了能启用direct TCP方式,用户需要在手机的“选项-高级选项-TCP/IP”中设置APN,以及相应的用户名和密码。

1:运行在iDEN网络上的黑莓手机(包括6510751075207100i),如果不指定deviceside参数(如例1),默认的连接是direct TCP;非运行在iDEN网络上的其他黑莓手机,如果不指定deviceside参数,默认的连接是BlackBerry MDS

2:如果连接时BlackBerry MDS不存在,黑莓手机也会自动采用direct TCP方式。

因此,如果要将direct TCP作为黑莓手机的默认连接方式,我们建议在URL中加入“deviceside=true参数,如下:

3  (StreamConnection)Connector.open("socket://testserver:600;deviceside=true");

 

4, Wi-Fi

如果需要在Wi-Fi上创建网络连接,不需要在应用程序中考虑特别的底层逻辑,可以在URL中加入参数“interface=wifi”就能实现Wi-Fi连接,如下:

4(StreamConnection)Connector.open(“socket:// testserver:600;interface=wifi”);

5, WAP 1.x

并不是所有的移动运营商都支持通过WAP网关进行连接的,所以如果要创建WAP连接,开发者需要和移动运营商联系,获取是否提供这种支持、并且获取他们的WAP网管参数。

以下是一个基于WAP网关进行HTTP连接的例子:

 5 (HttpConnection)Connector.open("http://wap.google.com;WAPGatewayIP=127.0.0.1;WAPGatewayAPN=carrier.com.gprs");

注:其中WAPGatewayIP WAPGatewayAPN这两项参数必须指定,参数之间用“;”隔开,以下是所有的WAP参数列表,实际开发时请根据运营商提供的信息决定哪些参数需要设置。

Parameter

Description

WapGatewayIP

IP address of the gateway.

WapGatewayAPN

APN for General Packet Radio Service (GPRS) networks only. For testing purposes, you can use rim.net.gprs

WapGatewayPort

Gateway port value. If port 9203 is specified, Wireless Transport Layer Security (WTLS) is used unless WapEnableWTLS=false is specified.

WapSourceIP

IP address of the source.

WapSourcePort

Source port value.

TunnelAuthUsername

User name for APN session, when Password Authentication Protocol (PAP) or Challenge Handshake Application Protocol (CHAP) authentication is used.

TunnelAuthPassword

Password for APN session, when PAP or CHAP authentication is used.

WapEnableWTLS

Explicitly turns on or turns off WTLS. If this parameter is not specified, WTLS is used by default for connections to port 9203.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6. WAP 2.0

如果要连接WAP2.0的网关,需要在连接时指定service record、以及UID。以下代码说明了WAP2.0的连接时如何工作的:

5

ServiceBook sb = ServiceBook.getSB();
ServiceRecord[] records = sb.findRecordsByCid("WPTCP"); 
String uid = null; 

for(int i=0; i < records.length; i++) 
{
    //Search through all service records to find the 
    //valid non-Wi-Fi and non-MMS 
    //WAP 2.0 Gateway Service Record.
    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) 
{

    //open a WAP 2 connection
    Connector.open(_url + ";ConnectionUID=" + uid);
}
else
{

    //Consider another transport or alternative action.
}

 


用户常见的问题:

1, 为什么基于WAP连接的应用在未激活BES的手机上测试没问题,在激活BES的手机上连接不上?

答:在连接时采用的是本文例1的连接方式。解决方案是改为采用本文例5的连接方式。

2, 通过Wi-Fi如何连接到BESBIS?可以直接连接到其他目的地址么?

答: Wi-Fi可以通过BBI连接到BESBIS,也可以通过在Wi-Fi上配置VPN直接连接到BES。也可以绕开BBIBESBIS直接连接到其他server

分享到:
评论

相关推荐

    BlackBerry 检测网络连接程序

    在BlackBerry设备上,socket连接通常用于建立直接的TCP或UDP连接,适用于需要低级别控制和高效数据传输的应用,如即时通讯和文件传输。 2. **HTTP连接**:HTTP(超文本传输协议)是互联网上应用最广泛的一种网络...

    BlackBerry 网络连接编程

    BlackBerry上连接HTTP或Socket的五种方式 ##### 1.1. BlackBerry Enterprise Server(BES)方式 **BlackBerry Enterprise Server(BES)** 方式是一种利用BlackBerry设备与企业服务器之间的连接机制进行网络通信的...

    socket实现的黑莓通信的源码

    在黑莓平台上,开发者可以使用Java ME(Micro Edition)的Socket API来创建和管理网络连接。这个源码很可能是基于Blackberry JDE(Java Development Environment)构建的,因为它提供了对Java ME的扩展,以便在黑莓...

    BlackBerry(黑莓)开发入门教程最新版

    4. **网络通信**:HTTP和Socket API用于网络请求,同时BlackBerry还支持BIS/BES服务,便于企业级应用。 ### 四、开发流程 1. **设计界面**:利用BlackBerry的UI组件设计布局,确保适配不同屏幕尺寸的设备。 2. **...

    BlackBerry应用程序开发者指南.pdf

    - **HTTP和Socket连接**: BlackBerry支持通过HTTP/HTTPS协议和socket来进行网络通信。 - **使用HTTP连接**: 包括打开连接、设置请求方式、发送接收数据等操作。 - **使用HTTPS连接**: 安全通信的重要手段。 - **使用...

    BlackBerry应用程序开发者指南-基础卷

    - **限制**:介绍了在BlackBerry设备上开发Java应用程序时可能遇到的限制,例如多线程的支持、持久化存储的方式、网络通信的要求等。 - **多线程**:虽然BlackBerry支持多线程,但需要注意合理分配资源,避免占用...

    黑莓XMPP客户端实现参例

    1. **连接管理**:黑莓设备需要通过BIS(BlackBerry Internet Service)或BES(BlackBerry Enterprise Server)进行互联网访问。因此,我们必须创建一个适当的网络连接,这通常涉及到使用`NetRim_bbapi_net`包中的类...

    Java RIM实例

    Java RIM(Research In Motion)实例是针对黑莓(BlackBerry)设备开发应用程序的一种技术。在Java平台上,RIM提供了一套开发工具和框架,使得开发者可以创建功能丰富的移动应用,这些应用能在黑莓手机上运行。这个...

    Apress - Beginning BlackBerry Development (2009)

    BlackBerry设备因其出色的网络连接能力而闻名,因此本书也详细探讨了如何在应用中实现网络功能,包括HTTP请求、Socket编程以及如何与服务器端进行交互。这为开发者提供了在网络环境下构建复杂应用的能力。 ### 安全...

    logicmail client

    2. **SSL/TLS加密**:为了确保通信安全,LogicMail支持通过SSL(Secure Socket Layer)或TLS(Transport Layer Security)进行加密连接。这对于处理敏感的电子邮件信息至关重要,防止数据在传输过程中被窃取。 3. *...

    Android.pdf

    - HTTP请求处理、Socket编程等网络通信方式。 **8. 音频和视频** - 多媒体框架介绍、音视频播放控制等。 **9. 位置服务和地图应用** - GPS定位服务、Google Maps API等地图相关技术。 **10. WebView** - 在...

    LiveSmart视频聊天独立程序带安装教程

    它有自己的推送通知服务器,该服务器基于Socket.io或Rachet PHP Websocket库。它不需要任何其他安装或第三方登录名和帐户。联系人按钮可以在您的网站上设置,并为您提供有关访问者的信息。如果您在线,他们可以直接...

    java程序

    虽然它没有直接关联到Java程序本身,但可能包含关于如何在Java平台上开发或与黑莓8700手机进行交互的教程。黑莓手机早期使用Java Micro Edition(JME,也称为Java ME)作为开发平台,开发者可以利用Java技术为这些...

Global site tag (gtag.js) - Google Analytics