当前位置: 首页 > 知识库问答 >
问题:

谷歌GCM-没有收到推送通知在AndroidLollipop

王高超
2023-03-14

在我的android应用程序中,我使用GCM从公司服务器接收消息。

我为c2dm编写了代码,并按照说明将代码迁移到GCM。(http://developer.android.com/google/gcm/c2dm.html)

在AndroidLollipop(Nexus 9 wifi)中,设备注册推送通知并接收推送注册标识,但当我从服务器发送消息时,在设备中我不会收到任何消息。

在以前的Android版本(从4.0到4.4)我没有任何问题。

你知道Lollipop推送通知有什么问题吗?

谢啦

共有3个答案

太叔栋
2023-03-14

我通过在移动网络上而不是在办公室WIFI上测试GCM拉通知来解决这个问题。

谷永贞
2023-03-14

我有一个相当简单的Android GCM应用程序,在Kitkat上运行良好。lollypop升级后,出现“显式意图”错误(Android 5.0(L)服务意图必须在Google analytics中显式)。我修正了,没有错误,也没有设备注册!

裴育
2023-03-14

我们在办公室遇到了同样的问题,这就是为什么我偶然发现了你在这里的帖子。我已经测试了三个单独的Nexus 9设备(仅限WiFi),在每种情况下,它们都成功注册了push。。。但从不接收从服务器发送的任何通知。

我做的第一个测试使用了我们现有的Android应用程序和服务器。在这不成功之后,我从谷歌应用商店下载了推送通知测试。这在其他设备上完美运行(Nexus 5...等等),但在Nexus 9上无法收到通知。

就为了解决Play Store测试应用程序过时的问题,我创建了一个测试Android应用程序和服务器脚本,看看是否可以进一步缩小问题范围。我遇到了同样的问题。除Nexus9外,我测试的每台设备都已注册并收到推送通知。我尝试在项目中改变GooglePlayServices库的版本(从最新版本到以前的几个版本),但没有效果。

对于上面提到的最后一次尝试,我使用了这里找到的GCM演示应用程序: GCM客户端以及我根据另一个用户的代码修改的php脚本(显然删除了密钥和reg id):

<?php

$nexus5 = '';
$nexus9 = '';
$nexus9Alt = '';
$registrationIds = array($nexus5,$nexus9,$nexus9Alt);

$apiKey = '';

$msg = array
(
    'message'       => 'Do you know smell what the rock is cooking?',
    'title'         => 'Push Test',
    'subtitle'      => 'This is a subtitle',
    'tickerText'    => 'This is the ticker',
    'vibrate'       => 1,
    'sound'         => 1
);

$fields = array
(
    'registration_ids'  => $registrationIds,
    'data'              => $msg
);

$headers = array
(
    'Authorization: key=' . $apiKey,
    'Content-Type: application/json'
);

$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, 'https://android.googleapis.com/gcm/send' );
curl_setopt( $ch,CURLOPT_POST, true );
curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers );
curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch,CURLOPT_POSTFIELDS, json_encode( $fields ) );
$result = curl_exec($ch );
curl_close( $ch );

echo $result;

更新:我们将office中的三款平板电脑更新为5.0.1 OTA,平板电脑仍然不会收到推送通知。谷歌也没有关于这些的消息,但希望它能在下一个OTA中得到修复。

更新:1月13日,我们注意到Nexus 9开始接收推送通知。显然谷歌修复了它。圆圈是完整的。

 类似资料:
  • 我一直在研究如何将((谷歌推送通知))与PHP结合使用,但没有太多的工作示例/文档。。。 我正试图让它在一个内部网络上工作,这个网络不是通过HTTP对外开放的。 我能够从我们的外向型域通过HTTPS实现这一点,但内部尝试在Chrome控制台中告诉我,“API可能不再从不安全的来源使用”,我发现这意味着它需要HTTPS。 有人知道这方面可能的解决方法吗?欺骗HTTPS,或者允许它通过HTTP继续?我

  • 我在我的应用程序中使用Google日历API。 我面临的问题是谷歌没有给我发送推送通知。 我在这里设置我的应用程序https://console.developers.google.com/ 已验证域名:https://console.developers.google.com/apis/credentials/domainverification 观看日历:https://developers.

  • 我正在尝试通过php向Android应用程序发送推送通知。我设置了亚马逊SNS帐户,并使用谷歌服务器密钥为GCM API创建了SNS平台。 使用 AWS 凭证,我编写了一个 cron,它从数据库读取通知消息,并使用 Amazon php api 发布到 sns 服务。我正在以 cron 获取 Amazon 终端节点,并在其上发布通知。 我收到的状态是通行证和通知请求。但设备上没有收到实际通知。 我

  • 我正在通过GCM在我的项目中执行推送通知。我的应用程序可以在前台接收通知,但不能在后台接收。 我在方法内部收到一条消息 当应用程序在前台,但我没有得到任何调用的方法 当应用程序处于后台模式时。 我在互联网上搜索了很长时间,才知道这是我收到的有效载荷格式的问题。我收到的有效载荷看起来像 [通知:{"body":"any","title":"any title"},优先级: high,content_

  • 我正在使用GCM向Android应用程序发送和接收推送通知。我是从这里给出的一个例子中创建这个应用程序的(Android的谷歌云消息GCM和推送通知) 这些是我正在使用的java文件 最终语境=此; shareRegidTask=new AsyncTask() AsyncTask()上出错 通知兼容。Builder mBuilder=new NotificationCompat。建造商( 这).

  • 我已经设置了一个启用推送通知的iOS应用程序。 我可以将消息推送到应用程序,例如,徽章计数工作并相应更新。 但是我从来没有在锁屏或其他地方看到标准的推送通知弹出窗口,尽管手机会震动,所以信息可以通过。 即使应用程序关闭或不在后台。 这是有效载荷: