7

私は奇妙な問題に直面しています。メッセージがサーバー側から送信された時点でインターネットに接続されている場合、モバイルでプッシュ通知を受け取ります。しかし、その時点でインターネットに接続されておらず、しばらくしてからインターネットに接続している場合。私はその通知を受け取っていません。私の知る限り、GCMサーバーはこれらすべてのメッセージを保存するため、オンラインのときはいつでもこれらの通知がすべて表示されるはずです。他のすべてのアプリの通知を受信して​​います。また、マニフェストでウェイクロック許可を与えました。何が問題なのですか?サーバー側、クライアント側、またはモバイルから何か? 助けてください...

この値は、サード パーティ サーバー (.Net サーバー) から GCM サーバーに送信されます。

String postdata= "collapse_key=score_update&time_to_live=2419200&delay_while_idle=1&data.message=‌​" + 
message + "&data.time=" + System.DateTime.Now.ToString() + "&registration_id=" + deviceToken + ""

前もって感謝します

4

1 に答える 1

10

delay_while_idle=1矛盾するAlso I have given wakelock permission in manifest

delay_while_idle=1アイドル状態(オフ、オフライン、画面のロックなど)の場合、メッセージがデバイスに到達しないことを意味します。wakelock権限で違いを生む場合は、0に変更します。

明確にするために、メッセージはアイドル状態が停止した後にデバイスに到達する必要があります(アイドル状態が長すぎない限り、「長すぎる」は指定されたものによって決定されますtime_to_live)。

GCMドキュメントからの関連する引用は次のとおりです。

delay_while_idle

含まれている場合、デバイスがアイドル状態の場合にメッセージをすぐに送信しないことを示します。サーバーはデバイスがアクティブになるのを待ち、その後、各collapse_key値の最後のメッセージのみが送信されます。オプション。デフォルト値はfalseであり、JSONブール値である必要があります。

有効期間

デバイスがオフラインの場合にメッセージをGCMストレージに保持する時間(秒単位)。オプション(デフォルトの有効期間は4週間で、JSON番号として設定する必要があります)。

于 2013-02-07T16:12:18.953 に答える