Java 无法在Blackberry设备中连接到internet?
我正在开发一个应用程序,其中我使用浏览器字段加载html文件。我的代码如下 Main.javaJava 无法在Blackberry设备中连接到internet?,java,blackberry,blackberry-simulator,blackberry-jde,blackberry-webworks,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 Brows
//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);
我所有的服务器代码和UI设计都分别在javascript和html页面中,从index.html页面调用…
根据下面的代码,它在模拟器中工作(执行)并在运行时从服务器获取数据。但当我在BlackBerry设备上运行时,只有UI设计从index.html页面加载,而不是从服务器获取数据。我不知道是什么错误。
我也在Blackberry设备中启用了javascript,但它仍然不起作用
由于我对这款黑莓手机还不熟悉,所以在黑莓手机上运行时,我找不到我的应用程序有什么问题
根据以下代码,我是否必须添加任何外部代码才能从服务器获取数据(比如在签名后仅在Blackberry设备中访问互联网)
在模拟器中,它工作正常&从服务器获取数据。在Blackberry设备中执行时,仅加载主页UI(index.html中的UI),而不从服务器获取数据。
谁能帮我做这个 这个问题是“为什么我在黑莓手机上的连接出现问题”问题的变体。我会尽力给你解决这些问题的办法 网络连接非常复杂,不像j2me、android或iphone连接,在这些连接中,您主要要求系统打开TCP/HTTP/UDP连接。介绍了RIM。我不确定原因是什么——或者他们想让开发人员有权选择特定的传输,或者因为BES管理员/运营商可能会限制某些连接,或者其他原因。但副作用是,BB开发者必须指定设备上当前连接要使用的传输。引人注目的是,默认连接是直接TCP(通过APN载波设置)。直接TCP在模拟器上工作得非常好。但BB设备上使用最多的连接是BIS-B和WiFi。此外,BIS-B以前对普通开发人员不可用,他们最近刚刚为所有人打开了它 在5.0操作系统之前,开发人员有大量的代码来确定设备上有哪些传输可用,并且有一个循环的传输试图按顺序打开。 RIM在5.0操作系统中引入,它提供标准机制来打开、确定可用的传输并打开连接() 要打开连接,必须始终使用
ConnectionFactory
。直接通过连接器
或通过浏览器字段
到达远程主机并不重要。您必须使用连接工厂
戏剧性的是,即使你使用它,你也无法到达BIS-B运输。正如我之前提到的,它只对联盟成员开放。RIM目前没有限制任何开发者使用BIS-B。但我看不出他们也给出了任何例子。要允许ConnectionFactory打开BIS-B,您需要:
这只是BlackBerry上连接的一个小结。但是它应该给你正确的方向来解决你的问题。这个问题是问题的变体“为什么我在黑莓上的连接有问题”。我会尽力给你解决这些问题的办法 网络连接非常复杂,不像j2me、android或iphone连接,在这些连接中,您主要要求系统打开TCP/HTTP/UDP连接。介绍了RIM。我不确定原因是什么——或者他们想让开发人员有权选择特定的传输,或者因为BES管理员/运营商可能会限制某些连接,或者其他原因。但副作用是,BB开发者必须指定设备上当前连接要使用的传输。引人注目的是,默认连接是直接TCP(通过APN载波设置)。直接TCP在模拟器上工作得非常好。但BB设备上使用最多的连接是BIS-B和WiFi。此外,BIS-B以前对普通开发人员不可用,他们最近刚刚为所有人打开了它 在5.0操作系统之前,开发人员有大量的代码来确定设备上有哪些传输可用,并且有一个循环的传输试图按顺序打开。 RIM在5.0操作系统中引入,它提供标准机制来打开、确定可用的传输并打开连接() 要打开连接,必须始终使用
ConnectionFactory
。直接通过连接器
或通过浏览器字段
到达远程主机并不重要。您必须使用连接工厂
戏剧性的是,即使你使用它,你也无法到达BIS-B运输。正如我之前提到的,它只对联盟成员开放。RIM目前没有限制任何开发者使用BIS-B。但我看不出他们也给出了任何例子。要允许ConnectionFactory打开BIS-B,您需要:
这只是BlackBerry上连接的一个小结。但是它应该给你正确的方向来解决你的问题。我根据你回答中提到的示例代码修改了我的代码。MyConnectionFactory_factory=新的MyConnectionFactory();BrowserFieldConfig bfConfig=新建BrowserFieldConfig();bfConfig.setProperty(BrowserFieldConfig.CONNECTION\u FACTORY,\u FACTORY);BrowserField _bf2=新BrowserField(bfConfig);添加(_bf2)_bf2.requestContent(“local:///html/index.html"); 并将MyConnectionFactory.java类添加到我的代码中。现在它的运行时异常是“由非事件线程调用的PushModal屏幕”。你能帮我解决这个问题吗…
UiApplication.getUiApplication.invokeLater(new Runnable(){public void run(){…
-在这里插入你的屏幕推送代码。检查这个,感谢@Rupak。但是你看了例子了吗?你设置了允许的传输吗?你设置了BIS-B选项了吗?我把我的代码修改为p
connFact.setTransportTypeOptions(TransportInfo.TRANSPORT_BIS_B,
new BisBOptions("mds-public"));