GCM 的响应是啥意思,为啥通知不起作用?

Posted

技术标签:

【中文标题】GCM 的响应是啥意思,为啥通知不起作用?【英文标题】:Whats mean Response from GCM and Why is notification not working?GCM 的响应是什么意思,为什么通知不起作用? 【发布时间】:2016-01-18 14:27:40 【问题描述】:

我有一些用于将通知 c# 推送到 GCM 的代码。当我运行代码 c# 时,GCM 会回复我这样的 id:id=0:145310308361%a68blablad6cf16。但是 statuscode :OK 。这个 id 和另一个问题是什么意思: pushnotification 函数中的这个响应但是当我运行这个函数时我的设备没有收到通知?

C# 代码如下:

 public string SendandroidPushNotification(string RegistrationID, string message)


    string GoogleAppID = "ServerId";
    var SENDER_ID = "ProjectId";
    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.ToString() + "&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;


protected void Button1_Click(object sender, EventArgs e)

    string device_Id = "myRegisteredId";
    string msj = "";
    msj = TextBox1.Text.ToString();
    string strResponse = SendAndroidPushNotification(device_Id, msj);

【问题讨论】:

【参考方案1】:

您可以在Google Play Developer Console 上查看应用程序的 GCM 诊断工具。 并且您可以使用此 ID 检查消息的活动。

GCM Reference 对您的问题更有帮助; 发送消息参数和响应消息细节和代码描述写的很详细。

也许您想看看this Q&A 是否成功

【讨论】:

谢谢,我解决了,id=0:145310308361%a68blablad6cf16 表示成功响应。 不客气。您可以接受问题的真实答案。 ?

以上是关于GCM 的响应是啥意思,为啥通知不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

RELEASE_SAFELY 是啥意思,为啥它在 xcode4 中不起作用?

Android ICS 上的 GCM 通知不起作用

IOS GCM 推送通知在后台不起作用

GCM 通知 setAutoCancel(true) 在 Android 5.1.1 中不起作用

GCM 推送通知在 iOS 上不起作用

Android 解析推送通知和新 GCM 生成错误的设备令牌并解析推送通知不起作用