无法连接到Blackberry设备的互联网?

时间:2012-08-02 03:48:32

标签: java blackberry blackberry-simulator blackberry-jde blackberry-webworks

我正在开发一个应用程序,我在其中使用浏览器字段来加载html文件。我的代码如下。

Main.java

    //pushing screen to browser field page..

public Main()
{        
    // Push a screen onto the UI stack for rendering.
    pushScreen(new WebViewController());
}  

WebViewController.java

    BrowserFieldConfig bfConfig = new BrowserFieldConfig();
    bfConfig.setProperty(BrowserFieldConfig.NAVIGATION_MODE,
            BrowserFieldConfig.NAVIGATION_MODE_POINTER);
    bfConfig.setProperty(BrowserFieldConfig.JAVASCRIPT_ENABLED,
            Boolean.TRUE);
    bfConfig.setProperty(BrowserFieldConfig.ALLOW_CS_XHR, Boolean.TRUE);  
    bfConfig.setProperty(BrowserFieldConfig.INITIAL_SCALE, new Float(0.0));
    bwf = new BrowserField(bfConfig);
    add(bwf);

    UiApplication.getUiApplication().invokeLater(new Runnable() {

        public void run() {
            // TODO Auto-generated method stub
            bwf.requestContent("local:///html/index.html");         
        }
    }, 500, false);    

我所有的服务器代码&用户界面设计在javascript&分别从index.html页面调用的html页面......

根据以下代码,它在模拟器和工作中正在工作(执行)。在运行时从服务器获取数据。但是当我在BlackBerry设备上运行时,只有UI设计从index.html页面加载,但没有从服务器获取数据。我不知道错误是什么。 我也在Blackberry设备中启用了javascript,但它仍然无法运行..

由于我是这个黑莓开发的新手,无法在Blackberry设备上运行时找到我的应用程序的问题。

根据以下代码,我必须添加任何外部代码才能从服务器获取数据(例如签名后只需访问Blackberry设备中的互联网)

在模拟器中它运行良好&从服务器获取数据。在Blackberry设备中执行时,仅加载主页面UI(index.html中的UI),但不从服务器获取数据。

任何人都可以帮助我......

1 个答案:

答案 0 :(得分:5)

这个问题是问题的变化“为什么我在BlackBerry上遇到连接问题”。我会试着告诉你如何解决它们。

网络连接非常复杂,与j2me,android或iphone连接不同,你们大多要求系统打开TCP / HTTP / UDP连接。 RIM介绍了Network Transports。我不确定原因 - 或者他们想让开发人员有权选择特定的传输,或者因为BES管理员/运营商可能限制某些连接或其他原因。但BB开发人员必须指定他想要用于设备上当前连接的传输的副作用。默认连接是直接TCP(通过APN运营商设置)的戏剧性事物。直接TCP在模拟器上运行良好。但BB设备上最常用的连接是BIS-B和WiFi。此外,BIS-B对于普通开发者来说是不可用的,他们最近刚刚为所有人打开它。

在5.0之前,OS开发人员拥有大量代码来确定设备上可用的传输,并且传输尝试按顺序打开时存在循环。 RIM在5.0操作系统中引入了ConnectionFactory,它提供了标准机制来打开确定可用传输并打开连接(example)。

您始终必须在要打开连接的位置使用ConnectionFactory。如果您通过ConnectorBrowserField直接联系远程主机,则无关紧要。您必须使用ConnectionFactory

戏剧性的是,即使你使用它,你也无法达到BIS-B运输。正如我之前提到的,它仅适用于联盟成员。 RIM目前不限制任何开发人员使用BIS-B。但我不认为他们也给出了任何例子。要允许ConnectionFactory打开BIS-B,您需要next line

connFact.setTransportTypeOptions(TransportInfo.TRANSPORT_BIS_B,
        new BisBOptions("mds-public"));

这只是对黑莓手机连接的一个小小的总结。但它应该给你正确的方向来解决你的问题。

相关问题