2009-07-14 6 views
1

私はj2meプログラムを作成し、それをブラックベリー太字に移植しました。ブラックベリーの太字でトンネルが失敗しました。どうして?

プログラムはいくつかのhttpクエリを実行します。 これは例外的に「トンネルに失敗しました」という例外を除いて失敗します。

私のAPNの設定は正しい(時には機能することがあるため)。

私はと接続する「;deviceside=true」URL

私は、ブラウザだけで活動しているとき、プログラムは常に動作していることに気づくに追加します。 しかし、ブラウザが数分間アクティブにならずにプログラムを起動すると、トンネルにエラーが発生します。

答えて

1

テストとして、URL自体にAPN設定を追加して、それが役立つかどうか試してみてください。あなたは良い信号強度を持っていると思いますか?

+0

はい信号強度に問題を修正する必要があります希望は素晴らしいです。私はURLのapnsettingsが役立つ場合は試してみます。 ^) – Toad

+0

これは望ましくないかもしれませんが、あなたのアプリを一般に公開する場合は、そうする必要があります。一部の通信事業者は、Boldなどの新しいデバイスを工場からAPNで設定することがありますが、設定が保証されていません。 CurveやPearlのような古いデバイスは、決してそれを設定することはほとんどありません。 –

1

これはあなたが唯一の接続から読み込みを行う場合であっても音として、コネクタを開いたときに、読み取りとしてそれを開くことを確認してください/

String url = "http://www.google.com"; 
HttpConnection connection = (HttpConnection)Connector.open(url, Connector.READ_WRITE, true); 
+0

はい!私はすでに自分のコードでこれを持っていました。私は、どこかでPOSTがいくつかのトンネルでエラーを起こしGET does notを使って動作することを読んでいます。それは、すべてのケースでREAD_WRITEを使用して起動したように見えました。 – Toad

2

を書き、いくつかのBlackBerryデバイスでの問題は、そのすべての他であるとして、愚かなネットワーク接続が失敗します。したがって、例外を受け取ったときにもう一度試してみる必要があります。だからあなたの接続コードは、この

int numAttempts = 0; 
boolean hasConnectedSuccessfully = false; 
while(numAttempts < 2 && !hasConnectedSuccessfully) 
{ 
    try 
    { 
    // do the http connection 
     hasConnectedSuccessfully = true; 
    } 
    catch(Exception e) 
    { 
     hasConnectedSuccessfully = false; 
    } 
    finally 
    { 
    //close the connections 
    } 
    numAttempts++; 
} 

のようなものである必要があり、これは

+0

あなたはnumAttemptsのアップカウントを逃したと思います:) –

+0

ありがとうdittodhole、 – Ram

+0

を修正しました。残念ながら、毎回失敗します。私がバックグラウンドでブラウザを開くまでは..その後、次の5分間は成功します – Toad

関連する問題