0

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 サービスがあります。

  1. 認証に使用される Web サービス。
  2. すべての情報をダウンロードするために使用される Web サービス。

これまでに試したこと:

  1. デバイスのワイプ - 何もしませんでした
  2. デバイスをEclipseに接続して何が起こっているかを確認する - 役立つものは何も見つかりませんでした
  3. 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 };
4

1 に答える 1

0

データを最大 50k チャンクにすることで、この問題を解決できました。同じような悩みをお持ちの方の参考になれば幸いです。

于 2010-11-17T19:42:10.030 に答える