33

一部の人々に影響を与える GCM の問題に関する多くの投稿を読んでいます。一部のデバイス/ルーター/キャリアでは、通知に遅延が発生しているようです。ルーターでこの問題が発生しました。WIFI ではメッセージが大幅に遅れて届きましたが、WIFI を無効にしてモバイル ネットに接続するとすぐに届きました。

Androidアプリからできる回避策があるようです。GCM接続を維持するハートビートを増やすようなものなど。

遅延を避けるために何をすべきか誰か教えてもらえますか? Android アプリから GCM との接続を維持するにはどうすればよいですか? コード例 (およびそれを使用する場所と方法) は非常に役立ちます。

この投稿では、問題について説明します。「GCMサーバー(無料)から2分ごとにpingを送信することで、接続を維持できた」と書かれています。どうすればそれができますか?

どうもありがとう


次のアプリはうまくいくようです。驚いたことに、最初のものは許可を必要とせず、2 つ目はインターネット接続、3 つ目はルート化された電話専用です。

https://play.google.com/store/apps/details?id=at.pansy.droid.gcmWifiFix

https://play.google.com/store/apps/details?id=com.elotro.pushheartbeat

https://play.google.com/store/apps/details?id=com.andqlimax.pushfixer

4

5 に答える 5

36

これを最初の回答にコメントとして入れますが、十分な評判がありません。

同様の問題があり、Web サービスを呼び出す前に以下のコードを実行して解決しました。

context.sendBroadcast(new Intent("com.google.android.intent.action.GTALK_HEARTBEAT"));
context.sendBroadcast(new Intent("com.google.android.intent.action.MCS_HEARTBEAT"));

それがあなたを助けることを願っています!

于 2014-05-28T04:16:08.843 に答える
10

GCM サーバーから電話にハートビートを送信する必要はありません。Android 自体にハートビートを送信するように強制することができます。

Push Notifications Fixer アプリを調べてみました。これは私がテストして動作したもので、次のインテントをブロードキャストするだけでよいようです。

com.google.android.intent.action.MCS_HEARTBEAT
com.google.android.intent.action.GTALK_HEARTBEAT

なぜ両方を送信しているのかわかりません。一方だけを送信してみて、うまくいくかどうかを確認してください。アプリへのリンクは次のとおりです (私は開発者ではありません): https://play.google.com/store/apps/details?id=com.andqlimax.pushfixer.noroot

于 2014-02-06T07:13:02.267 に答える