我想知道是否有人可以指出我對這個問題的正確方向。一點介紹:BlackBerry Connection Transport Descriptors
在一個應用程序中,我們maintan我們剛剛重寫了我們的網絡層以取消對OS 4的支持。我們正在使用OS 5中提供的清潔程序ConnectionFactory
。請注意我們遇到的問題是設備驅動的,只有,而不是模擬器相關。
有兩種方式或應用程序連接,一個數據線程輪詢特定的網址和存儲數據,和一個「通用網絡視圖」(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上的連接,確定傳輸信息並返回構建的URL。
TL; DR:有一個BrowserField
一個怪胎,我們似乎無法調試,我們將不勝感激一套新的眼睛:我們認爲有什麼問題在buildURLTransport(String url)
功能上面貼要點。
謝謝你提前一噸。
謝謝,我明天會去做這些調整(接受答案)。感謝您的清理建議!通過配置更改,您的意思是設備的連接是否已更改?例如:如果WiFi不可用並切換到MDS,是否需要一個新的連接工廠,或者持有的引用是否會重試直到找到可用的傳輸? – jlindenbaum
我看到你從你的設置中設置了優選的傳輸。你可以設置它們的列表,如{WiFi,BIS-B,MDS,WAP2,DirectTCP}。在這種情況下,你不需要配置任何ConnectionFactory應該做的關於自身切換的工作。 –
同意答案。但是,有時'ConnectionFactory'傳輸類型選擇無法按預期工作,特別是對於部分配置的Wi-Fi網絡。 –