8

私はgooleによって提供された例を使用し、通知を取得するクライアント側アプリケーションとサーバー側を構築しました.両方のアプリケーション(コード)はgoogleによって提供されたものです.

クライアント側でアプリケーションを実行し、registration_id を取得します。以下に示すこの形式の巨大な文字列:

APA91bEgguwt98xLbivrXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXLxDalNoEktCSVbOkT0-uFH2FaRnfpkRME2tzuvr0BycMNEhX_Ix1PV_XXXXXXXXXXXXXXXXXXXXXN5hcseY_wA.

これは、クライアント アプリケーションが機能することを証明しています。サーバー(Java、Googleの例):

public static void main(String[] args) {

        Sender sender = new Sender("AIzaSXXXXXXXXXX_XXXXXXXXXXXXXXXrQOnoGZw");      
        Message message = new Message.Builder()
        .collapseKey("1")
        .timeToLive(3)
        .delayWhileIdle(true)
        .addData("message",
          "this text will be seen in notification bar!!")
        .build();

        try {
            Result result = sender.send(message, "APA91bEgguwt98xLbivrXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXLxDalNoEktCSVbOkT0-uFH2FaRnfpkRME2tzuvr0BycMNEhX_Ix1PV_XXXXXXXXXXXXXXXXXXXXXN5hcseY_wA", 3);
            System.out.println(result.toString());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
}

これがサーバーです。サーバーを実行すると、次のような結果が得られました: [ messageId=0:1341907115903155%921c249a00000031 ] しかし、クライアントにメッセージがなく、理由がわかりません。サーバーから受け取った応答の意味は何ですか? それは成功応答ですか?

何が悪いのか理解するのに助けが必要ですか?

4

4 に答える 4

6

彼らのコメントを確認してください

http://developer.android.com/guide/google/gcm/gcm.html

注: 組織に、インターネットとの間のトラフィックを制限するファイアウォールがある場合は、GCM との接続を許可するように構成する必要があります。開くポートは、5228、5229、および 5230 です。GCM は通常、5228 のみを使用しますが、5229 と 5230 を使用することもあります。GCM は特定の IP を提供しません。頻繁に IP を変更します。

于 2012-07-10T16:23:07.947 に答える
4

GCMドキュメントによると:

サードパーティのサーバーがメッセージを GCM に投稿し、メッセージ ID を受信した場合、そのメッセージがデバイスに既に配信されたことを意味するわけではありません。むしろ、それは配達が受け入れられたことを意味します。受け入れられた後にメッセージがどうなるかは、多くの要因によって異なります。

最良のシナリオでは、デバイスが GCM に接続されていて、画面がオンになっていて、スロットリングの制限 (スロットリングを参照) がない場合、メッセージはすぐに配信されます。

于 2012-07-11T11:22:12.923 に答える
2

インターネット ファイアウォールを使用している場合は削除してから、もう一度お試しください

これを通過してください

于 2012-11-20T09:29:28.050 に答える
0

GCM で遅延通知またはメッセージの問題に直面している場合は、この解決策を試してください。

これが適切な解決策ではないことはわかっていますが、うまくいきますこのアプリをインストールしてくださいここで本当にうまくいきます

于 2016-05-04T09:11:15.417 に答える