1

私は C# を使用して Android 用の GCM プッシュ通知サーバー側を実装しています: 問題は、通知がデバイスに受信されていないことです。どこに問題があるのか​​ わかりません。サーバーからですか、それともアプリケーションからですか? これがサーバー側の応答「id=0:1373508394613753%f73a6d8d66d6cf16」です。この応答の意味がわかりません。だから誰でも私に言うことができますこの応答は、通知が送信されたがデバイスに問題があることを意味しますか、またはその逆ですか?

サーバー側のコードは次のとおりです。

public string SendAndroidPushNotification(string RegistrationID, string message)
        {

            string GoogleAppID = "AIzaSyAq8TKNRJpp18B9Xvc6PcM4ji8igU";          
            var SENDER_ID = "5525610314545";
            var value = message;
            WebRequest tRequest;
            tRequest = WebRequest.Create("https://android.googleapis.com/gcm/send");
            tRequest.Method = "post";
            tRequest.ContentType = " application/x-www-form-urlencoded;charset=UTF-8";
            tRequest.Headers.Add(string.Format("Authorization: key={0}", GoogleAppID));

            tRequest.Headers.Add(string.Format("Sender: id={0}", SENDER_ID));

            string postData = "collapse_key=score_update&time_to_live=108&delay_while_idle=1&data.message=" + value + "&data.time=" + System.DateTime.Now.ToString() + "&registration_id=" + RegistrationID + "";
            //Console.WriteLine(postData);
            Byte[] byteArray = Encoding.UTF8.GetBytes(postData);
            tRequest.ContentLength = byteArray.Length;

            Stream dataStream = tRequest.GetRequestStream();
            dataStream.Write(byteArray, 0, byteArray.Length);
            dataStream.Close();

            WebResponse tResponse = tRequest.GetResponse();

            dataStream = tResponse.GetResponseStream();

            StreamReader tReader = new StreamReader(dataStream);

            String sResponseFromServer = tReader.ReadToEnd();

            HttpWebResponse httpResponse = (HttpWebResponse)tResponse;
            string statusCode = httpResponse.StatusCode.ToString();

            tReader.Close();
            dataStream.Close();
            tResponse.Close();
            return sResponseFromServer;
        }

Android アプリケーション コードへの参照は次のとおりです。

プッシュ通知の受信者が機能していません

4

2 に答える 2

0

同じエラーが発生し、次の手順で修正しました。

  1. JSON: サーバー コード (gcm にプッシュを送信) を json 形式に変更しました。その後、成功結果が得られました。参照: stackoverflow サンプル

  2. デバイス: クライアント コードのメソッドを確認してください。私たちの場合、メッセージはデバイスによって受信されましたが、表示されませんでした (Google のサンプル コードを使用しましたが、機能しませんでした)。

これも見てください:他のスタックオーバーフローの記事

気軽に回答...

于 2013-10-09T11:33:48.877 に答える
0

サーバー側でプッシュ通知に RegistrationID を含める必要があります。

于 2014-02-01T08:00:45.313 に答える