带有 C# asp.net 的 GCM 推送通知在 android 设备中提供 null 作为通知

Posted

技术标签:

【中文标题】带有 C# asp.net 的 GCM 推送通知在 android 设备中提供 null 作为通知【英文标题】:GCM push notification with C# asp.net giving null as notification in android devices 【发布时间】:2013-01-16 09:52:41 【问题描述】:

我在 C# 中创建了一个类,它具有使用 GCM 在 android 中发送推送通知的方法。该方法运行良好,并且谷歌也给出了成功的响应。但在 android 模拟器中,通知为空。 这是我正在使用的代码,

public void NotifyTest(string regId)
    
        var applicationID = "AIza*************"; 

        var SENDER_ID = "xxxxxxxxxx"; 
        var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://android.googleapis.com/gcm/send");
        httpWebRequest.ContentType = "application/json";
        httpWebRequest.Method = "POST";
        httpWebRequest.Headers.Add(string.Format("Authorization: key=0", applicationID));
        httpWebRequest.Headers.Add(string.Format("Sender: key=0", SENDER_ID));
        using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
        
            string json = "\"registration_ids\":[\""+ regId +"\"]," +
                        "\"data\":  \"score\" : \"1234\"";
            Console.WriteLine(json);
            streamWriter.Write(json);
            streamWriter.Flush();
            streamWriter.Close();

            var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
            
                var result = streamReader.ReadToEnd();
                Console.WriteLine(result);
            
        
    

代码运行正常,没有任何错误,并且也返回了 Google 的响应。请让我知道这些建议。

【问题讨论】:

您的 Android 应用中的代码是什么样的?消息的哪一部分是空的? @selsine 感谢您的评论。我解决了。在 android 应用程序代码中,它使用一个密钥来检索我发现不匹配的数据。当我将其更改为 android 应用程序中给出的实际密钥时,我得到了真正的消息。 嗨 Vinod T G,我收到的消息为空。我必须改变什么?请帮忙。如果您分享android应用程序,它对我有很大帮助。 检查此链接 [在此处输入链接描述][1] 快乐 Coading:) [1]: ***.com/questions/14355528/… 【参考方案1】:

您需要替换下面的 json 字符串并修改您的 Android 代码以获得获取消息和名称。

字符串 json = "\"registration_ids\":[\"" + regId + "\"]," + "\"data\": \"message\" : \"1234\", \" name\": \"Arvind Sharma\"";

【讨论】:

我们可以在 json 字符串中使用我们想要的任何数据,只要我们在服务器端和 android 端都使用相同的密钥。【参考方案2】:

在 Android OnMessage(在 GCMIntent 服务中)写下一行

  String message = intent.getStringExtra("score");

快乐编码:)

【讨论】:

以上是关于带有 C# asp.net 的 GCM 推送通知在 android 设备中提供 null 作为通知的主要内容,如果未能解决你的问题,请参考以下文章

使用 c# .net 发送带有图像的 GCM 推送通知(适用于 android 应用程序)

在 ASP.NET 中为 manifest.json GCM 推送通知获取未经授权的 401

在 asp.net c# 中创建 iPhone 推送通知 Web 服务

带有 GCM 的 iOS 推送通知

Asp.net 中的推送通知

如何在 Android + GCM 中获得带有声音 + 自定义应用程序图标的推送通知