BlackBerry 连接传输描述符

标签 blackberry

我想知道是否有人可以为我指出解决这个问题的正确方向。一些介绍:

在我们维护的应用程序中,我们刚刚重写了网络层以删除对 OS 4 的支持。我们正在使用 OS 5 中提供的更清洁的 ConnectionFactory。请注意,我们遇到的问题是设备问题-仅限,与模拟器无关。

应用程序有两种连接方式:轮询特定 URL 并存储数据的数据线程,以及“通用 Web View ”(BrowserField)。

到目前为止,数据线程连接似乎没有问题,它根据传输类型正确构建 URL 并正确下载数据。在 BrowserField 中,我们遇到了不同的问题。当我们使用 URL 打开 BrowserField 时,OS 6 曲线会导致问题(但没有其他 OS 6 设备),它有可能会显示“无法选择正确的传输描述符”消息 - 最常见的消息罪魁祸首是WAP2。

我想我们有点困惑,黑莓似乎没有像我们希望的那样处理传输描述符选择。有人有什么建议吗?

由于其长度,我已在要点上发布了我们的连接实用程序类:https://gist.github.com/3490101

数据线程使用的最常见的连接形式是 getUrlAsString(String etag) 函数,它执行 GET 操作并根据 etag/url 缓存响应。

要为 BrowserField 构建 URL,我们使用 buildURLTransport(String url) 函数,该函数获取 url 上的连接,确定传输信息,并返回构建的网址。

TL;DR: BrowserField 中有一个奇怪的现象,我们似乎无法调试,我们希望有一双新的眼睛:我们认为有问题在上面发布的 buildURLTransport(String url) 函数中的要点中。

提前致谢。

最佳答案

请小心您的代码,因为 getUrlAsString 不是线程安全的。我不明白为什么您有时会保留对 ConnectionFactory 的引用,而其他的则不然。

我也不明白为什么你需要方法buildUrlTransport。为什么不将 BrowserFieldConfigConnectionFactory 一起用于 BrowserField,如 here .

所以我会实例化一个 ConnectionFactory,使用您的特定参数配置它并在任何地方使用它。如果首选项发生变化,我将重新创建 ConnectionFactory 并更新 BrowserFieldConfig。当然这段代码应该是线程安全的。

还要更加一致 - 有时您使用快速连接检查,有时则不使用。

关于BlackBerry 连接传输描述符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12145909/

相关文章:

考虑到黑莓的 html 电子邮件

c++ - 网络编程入门 - PlayBook

Java 同步字符串 IllegalMonitorStateException

jquery - 使用 WebWorks 和 jQuery 1.8.2 在 Blackberry 上打开输入日期字段时出现 URL 错误消息

java - 黑莓应用安全

java - 黑莓手机无法上传大于1KB的文件

OS 4.5(或更高版本)兼容代码上的 BlackBerry 软件键盘监听器

networking - 为什么黑莓应用程序在没有 BIS 的情况下无法在北美以外的地方进行网络 i/o?

blackberry - 如何从电话簿联系人中获取 email2 和 mobile2

html - 在黑莓上垂直对齐 html 输入文本