为啥我无法在 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 4.0.4 设备上的小部件启动接收器崩溃