为啥我无法在 Android 设备上接收来自 GCM 的消息

Posted

技术标签:

【中文标题】为啥我无法在 Android 设备上接收来自 GCM 的消息【英文标题】:Why I can't receive messages from GCM on android device为什么我无法在 Android 设备上接收来自 GCM 的消息 【发布时间】:2015-04-26 22:27:28 【问题描述】:

我正在创建一个需要发送 gcm 消息的 android 应用程序。 到目前为止,我设法获得了 device id 并将其发送到我的服务器。 现在,当我尝试将消息从我的服务器推送到我的应用程序时,我收到此消息:"multicast_id":4987023356709284342,"success":1,"failure":0,"canonical_ids":0, "results":["message_id":"0:1430085972465424%73c650e3f9fd7ecd"],但设备上没有任何反应(无论应用程序是否正在运行)。

这是我的相关代码:

Manifest.xml----- AndroidManifest.xmlBroadcastReceiver-------- GcmBroadcastReceiverIntentService---- GcmIntentService注册---------------------- GcmRegister 这里我使用的是注册类(查找“GCM HERE”标签)LoginActivity---------------- LoginActivity 这是我的 android 项目结构结构--------------------- structure服务器端 [php]GcmPush -------------------- strong> GcmPush.php这就是我使用 GcmPush.php 的方式SendMessage-------------- send function

希望有人能帮助我。 指出我做错了什么...... 谢谢!

【问题讨论】:

【参考方案1】:

终于找到了…… 我将日志放入 GcmReceive,它会打印日志 :),然后我转到 IntentServices,在那里我发现消息已经到达,但通知实际上并没有通知消息。 到目前为止,我还没有发现我的通知有什么问题,但是我认为这行有问题:

 PendingIntent contentIntent = PendingIntent.getActivity(this, 0,  new Intent(this, MainActivity.class), 0);

我很高兴最大的问题解决了。现在我正在搜索我在通知方面做错了什么。

非常感谢所有试图提供帮助的人...

【讨论】:

【参考方案2】:

请参考 GCM 的教程here。根据我的说法,您缺少具有 APP_SERVER_URL、GOOGLE_PROJECT_ID 的 GCM 配置文件。

【讨论】:

我有这个东西...在 GcmRegister 中仔细查看。 APP_SERVER_URL 就是这个链接“taxi.tziuka.com/set-device_id”和GOOGLE_PROJECT_ID 一样位于GcmRegister。我从 StaticThings 类收到这个。但是我的问题不是将设备 ID 发送到服务器,而是从服务器接收消息...( APP_SERVER_URL 和 GOOGLE_PROJECT_ID 用于检索设备 ID...我已经这样做了)。谢谢。

以上是关于为啥我无法在 Android 设备上接收来自 GCM 的消息的主要内容,如果未能解决你的问题,请参考以下文章

Android BLE 无法从设备接收 Gatt 特性通知

android 6.0为啥接收不到短信广播

无法为 Android 4.0.4 设备上的小部件启动接收器崩溃

为啥不支持来自其他设备的表情符号?

Android - GCM 在打开应用程序时收到来自 gcm 的通知

单个设备突然停止从我的服务器接收 C2DM 推送