Asp.net mvc 4 使用GCM和Asp.net MVC Web API向Android设备发送推送通知时出现空白消息

Asp.net mvc 4 使用GCM和Asp.net MVC Web API向Android设备发送推送通知时出现空白消息,asp.net-mvc-4,asp.net-web-api,google-cloud-messaging,Asp.net Mvc 4,Asp.net Web Api,Google Cloud Messaging,我使用Asp.NETMVC4WebAPI作为第三方服务器,使用GCM为Android设备推送通知。它工作正常,正在生成通知,但消息为空。我花了一整天的时间在这上面,但找不到任何解决办法。请帮助我 发送推送通知的Web API函数如下: public Notification PushToAndroidDevice(string registrationid,string message) { Notification notif

我使用Asp.NETMVC4WebAPI作为第三方服务器,使用GCM为Android设备推送通知。它工作正常,正在生成通知,但消息为空。我花了一整天的时间在这上面,但找不到任何解决办法。请帮助我

发送推送通知的Web API函数如下:

    public Notification PushToAndroidDevice(string registrationid,string message)
    {                  
        Notification notification = new Notification();
        try
        {
            var applicationID = "MY_APPLICATION_ID";    

            var SENDER_ID = "MY_SENDER_ID";

            WebRequest tRequest;
            tRequest = WebRequest.Create("https://android.googleapis.com/gcm/send");
            tRequest.Method = "post";

            tRequest.ContentType = "application/x-www-form-urlencoded";
            tRequest.Headers.Add(string.Format("Authorization: key={0}", applicationID));

            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=" + message + "&data.time=" + System.DateTime.Now.ToString() + "&registration_id=" + registrationid + "";

            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();

            notification.Message = sResponseFromServer;
            tReader.Close();
            dataStream.Close();
            tResponse.Close();

            notification.Status = true;
        }
        catch (Exception ex)
        {
            notification.Status = false;
            notification.Message = "ERROR DESCRIPTION : " + ex.Message;
        }
        return notification;
    }
通知是一个类,它有两个属性Status bool和Message string

public class Notification
{
    public bool Status { get; set; }
    public string Message { get; set; }
}

通过此代码,我可以在android mobile上发送通知消息,但通知为空,请帮助我……。

您应该检查从GCM服务器接收消息的MSGReceiver和MSGSerice(或相应)类。
您检查print并查看是否接收空值。这里使用的变量名可能与您从MVC发送的变量名不同。这是一个非常简短的回答。如果您在理解方面有进一步的问题或困难,请提供相关代码和文件名。

明白。。。。。。我的android代码有一个问题……你能帮我解决一下吗,我的android应用程序中也有类似的功能。如果您还可以嵌入您的android代码,这将非常有用。使用GCM使用AndroidHive推送通知