OS 4.6 以降の BlackBerry 9000 など、さまざまなデバイスを使用して Web サービスに接続し、データをダウンロードできます。
ただし、8330 と OS 4.5.0.77 では機能しません。4.5.0.77 の 8330 よりも古いデバイスでこのコードを試したことはありません。8330 ではresultObj = op.invoke(inputObject);
、JSR172 Web サービス呼び出しの回線でハングします。これは、最初の Web サービス呼び出しが正常に行われた後です。2 番目の呼び出しでハングします。
実際には 2 つの Web サービスがあります。
- 認証に使用される Web サービス。
- すべての情報をダウンロードするために使用される Web サービス。
これまでに試したこと:
- デバイスのワイプ - 何もしませんでした
- デバイスをEclipseに接続して何が起こっているかを確認する - 役立つものは何も見つかりませんでした
- 4.5 (MDS 実行中) を使用して 8330 シミュレーターでコードを実行すると、問題なく問題なく動作します。
この問題を解決する方法を知っている人はいますか?
接続文字列を作成する方法は次のとおりです。
String webserviceURL = developmentUrl;
// if it is simulator then force the network that is available on
// the PC
if (DeviceInfo.isSimulator()) {
webserviceURL += ";deviceside=true";
} else if ((CoverageInfo.getCoverageStatus() & CoverageInfo.COVERAGE_MDS) == CoverageInfo.COVERAGE_MDS) {
// go through MDS
webserviceURL += ";deviceside=false";
}
// else if ((CoverageInfo.getCoverageStatus() &
// CoverageInfo.COVERAGE_CARRIER) == CoverageInfo.COVERAGE_CARRIER)
// {
// webserviceURL += "'deviceside=true";// go direct
// }
// check if the wifi is available and change the url to use the wifi
// signal
if ((RadioInfo.getActiveWAFs() & RadioInfo.WAF_WLAN) != 0)
// check for carrier
{
if (WLANInfo.getWLANState() == WLANInfo.WLAN_STATE_CONNECTED)
// check for wifi
{
// WebService URL when the app is being used in the
// actual device
webserviceURL = webserviceURL + ";interface=wifi";
}
}
// WebService URL when the app is being used in the actual device
_propertyValues = new Object[] { webserviceURL };