0

コア機能の一部としてASP.NETWebService呼び出しを行うAndroidアプリがあります。ksoap2を使用してアプリを正常に作成し、呼び出しを行い、必要な処理を実行します。

私たちのクライアントは、アプリが機能しない電話をいくつか見つけたと報告しています。つまり、一部のWebService呼び出し中に、タイムアウトしたように見えます。これは、私たちがここで私のオフィスでテストした少数の電話で完全に機能するため、私を困惑させました。

クライアントが問題を抱えていると報告した電話の1つはSprintのSamsungGalaxyS2でした(彼らが報告した他の電話はSamsungGalaxySまたはSamsungGalaxyS3のいずれかでした-つまり、実際に似た電話です)。運が良かったので、SamsungGalaxyS2をSprintに搭載していて借りさせてくれる会社の従業員を追い詰めることができました。そして、問題を再現することができました。Eclipseに接続すると、SocketTimeoutExceptionが発生しているようです。毎回ではありませんが、多くの場合です。

テストの一環として、電話をVerizonのMiFiに接続しました。つまり、基本的に私はそれをSprintのネットワークから外し、Verizonのネットワークに配置していました。これを行ったとき、アプリは期待どおりに機能し、タイムアウトは発生しませんでした。

最初はSprintのネットワークが悪いと思っていたのですが、クライアントが私とは反対側にいるとは思えなかったので、ネットワークが常に悪い場合を除いて、そうではないと思います。

しかし、私が気付いたのは、電話のステータスバーで、Sprintに接続すると、3Gと4Gのアイコンが表示され、それらが前後に切り替わっているように見えました(レイアウト方法、両方が表示され、回転したばかりです)。オフ/オンのすぐ隣)。私がMiFiに接続したとき、電話が知っているか気にかけている限り、私はWi-Fiポイントに接続しています。

それで、私が疑問に思うのは、電話が3Gネットワ​​ークと4Gネットワ​​ークの間を行き来していて、Webサービス呼び出しへの応答が失われているということでしょうか。iPhoneでは、たとえば3Gネットワ​​ーク上の電話でSafariのWebページをリクエストし、電話が接続するWi-Fiポイントを見つけて切り替えると、デバイスでもWebページを取得できます。 Wi-Fiに接続した後。OSは、そのネットワークをオフにする前に3G通話を終了することを許可していると思います。

サムスンがGalaxyS*ラインのOSで行ったことにより、応答が失われる可能性がありますか?もしそうなら、これを防ぐために私ができることはありますか?どのネットワーク接続がまだ生きているかを把握する方法はありますか?

更新:以下の私の答えを参照してください、この質問の前提は理由ではないことがわかりましたが、失敗またはタイムアウトする特定の呼び出しにはbase64でエンコードされた画像が含まれているため、それらはよりも大きいことを指摘するのを忘れたことがあります通常のWebサービス呼び出し。

4

1 に答える 1

-1

その価値については、答えは「いいえ」のようです

このブログエントリのコードを使用して、ネットワーク接続の変更がいつ発生するかを監視し、ネットワーク接続が変更されない場合でも動作が発生することを確認できました。

したがって、何らかの理由でこの特定の組み合わせ(Sprint / Samsung Galaxy SまたはS2)は、私が行っていることを気に入らないようです。

言及するのを忘れたのは、Base64でエンコードされた画像をWebサービス呼び出し全体に送信しているため、サイズがそれに関係している可能性があることですが、問題が正確に何であるかを理解できません。

于 2013-01-07T16:14:50.810 に答える