Blackberry 网络连接编程

来源:互联网 发布:白葡萄酒 品牌 知乎 编辑:程序博客网 时间:2024/05/22 22:26

       在BB开发过程中,可以通过Connector创建各种连接(http,htts,ssl/tls,socket,comm,btspp,udp,sms,mms),其中包括常用的上网的(http,htts,ssl/tls,socket),  在这过程中,可能需要使用RadioInfo ;  WLANInfo ;  ServiceBook ;  ConnectionInfo 这几个对象进行一些有关信号可用性的判断,并根据不同的网络构造url[url+parameters],这个过程可能相对麻烦。

比如:

      http://test.com;nterface=wifi //使用wifi

      http://test.com;deviceside=false //使用MDS

      http://wap.test.com;WAPGatewayIP=10.0.0.127;WAPGatewayAPN=cmnet;WapSourcePort //使用wap1

SDK5.0中提供的 Enhanced Network API,简化了这个过程,能够自动检测可用网络

比如:

    先将可能需要的网络参数设置给ConnectionFactory

     TcpCellularOptions tcpOptions = new TcpCellularOptions();
     tcpOptions.setApn(_tcpApn);
     tcpOptions.setTunnelAuthUsername(_tcpApnUser);
     tcpOptions.setTunnelAuthPassword(_tcpApnPassword);

 

  setTransportTypeOptions(TransportInfo.TRANSPORT_TCP_CELLULAR, TcpOptions);     

  WapOptions wapOptions = new WapOptions();
  wapOptions.setWapGatewayApn(_wapGatewayApn);
  wapOptions.setWapGatewayIp(_wapGatewayIp);
  wapOptions.setWapSourceIp(_wapSourceIp);
  wapOptions.setTunnelAuthUsername(_wapUser);
  wapOptions.setTunnelAuthPassword(_wapPassword);

  ....

  setTransportTypeOptions(TransportInfo.TRANSPORT_WAP, WapOptions);

  BisBOptions bisBOptions = new BisBOptions();
  setTransportTypeOptions(TransportInfo.TRANSPORT_BIS_B, bisBOptions);

  后面工作交给ConnectionFactory就行了

    connectionFactory.getConnection("http://test.com")

    connectionFactory.getConnection("http://test.com",TransportInfo.TRANSPORT_WAP2, null);

 

具体使用方法,可以参考以下两篇文章:

http://blog.csdn.net/BBturials/archive/2010/09/14/5883853.aspx

http://docs.blackberry.com/en/developers/deliverables/11938/CS_display_available_transport_types_834216_11.jsp

 

这里说明一下AttemptsLimit参数

ConnectionFactory使用setAttemptsLimit方法可以定义重试次数,也就是自动检测失败后,可以重新检测次数。

connectionFactory.getConnection(url)的过程,会按照默认或指定的顺序检测[调用setPreferredTransportTypes方法设定检测次序]可用的连接,每个TransportType检测一次,如果失败就对下面一个进行检测,以此类推直至结束。如果所有全部失败,则回头重新按照顺序检测,这里的"回头"次数,就是AttemptsLimit

 

原创粉丝点击