2011-12-06 20 views
3

私はC2DM pusn通知を使用するアプリを作った。私はGSM/3Gネットワ​​ークに接続している限り、すべて正常に動作しますが、私はWiFiに切り替えるといつもうまく動作せず、プッシュ通知も受信しません。C2DMプッシュ通知をWi-Fiで有効にするにはどうすればよいですか?

私は、WiFiとプッシュ(ファイアウォールなど)に関する技術的な問題を理解しています。

私の質問は、これにスマートな解決策があるかどうかです(はい、アプリで "ポーリング"に切り替えることができます)。 GSM/3GとWiFiを同時に使用することは可能ですか、またはWiFiに接続する際にAndroidがすでにこれを行っていますか?

/ヘンリック

+0

私はWiFiを使っているうちにC2DMが動作します... AFAIK C2DMは内部でもポーリングを使用していますが、ただ1つのサービスしかポーリングしていないため、C2DMを公開した(2.2以前は市場/他のGoogle Apps)...唯一の問題は、あなたのWiFiネットワークは、デバイスがGoogleサーバー(標準のhttp/httpsポート私は思う)に接続することを許可していません... – Selvin

答えて

4

私は今年C2DMでかなり多くを働いてきた、と私はあなたが記述されている問題を見てきました。私はiOSデバイスでもそれが起こっていると聞いています。私はときどきプッシュが失敗し、デバイスを飛行機モードにして戻し、再びプッシュメッセージの受信を可能にします。

しかし、いずれにせよ我々の場合には解決策が2倍であった:

  1. は、WiFi全体でプッシュメッセージの接続を維持することができるものとデバイスを交換します。私たちのケースでは、特に問題を起こしやすいテストデバイスがありました。

  2. C2DMのポーリングメカニズムを(遅い)バックアップとして構築します。これは明らかに、より多くの努力、より多くのコード、より多くのバッテリー&データ使用量を意味しますが、私たちのケースでは、C2DMに関するいくつかの問題があっても結果として得られるアプリケーションは非常に信頼性が高いです。

私の経験では、C2DMは、一般的に素晴らしいですし、それが動作するとき、それは非常に、非常に高速だが、それが理由の全体のさまざまな時間の約5〜10%に失敗したので、完全に依存している任意のアプリということです信頼性の低いアプリになる可能性があります。

同時に3GとWi-Fiを使用することはできません。デバイスは一度に1つのネットワークに接続します。

あなたのアプリが絶対にメッセージを受け取る必要がある場合は、独自のポーリングを作成する以外に方法はないと思うかもしれませんが、スピードの利点を追加します。

0

C2DMはポート5228を使用します.WIFIネットワークがこのポートをブロックする場合、プッシュ通知は表示されません。有効期限が切れていないと仮定して、ブロックしないネットワークを使用し始めると、すぐにそれらが返されます。

関連する問題