在我的Android应用程序中,我使用GCM从我的公司服务器接收消息.
我编写了c2dm的代码,并按照说明将代码迁移到GCM. (http://developer.android.com/google/gcm/c2dm.html)
在AndroID Lollipop(Nexus 9 wifi)中,设备注册推送通知并接收推送注册ID,但是当我从服务器发送消息时,在设备中我没有收到任何消息.
在以前的AndroID版本(从4.0到4.4)我没有任何问题.
你知道Lollipop推送通知有什么问题吗?
谢谢
解决方法:
我们在办公室遇到了同样的问题,这就是我在这里偶然发现你的帖子的原因.我已经测试了三个独立的Nexus 9设备(仅限WiFi),并且在每种情况下所有设备都成功注册了推送…但从未收到任何从服务器发送的通知.
我做的第一个测试使用了我们现有的AndroID应用程序和服务器.在此失败后,我从Google Play商店下载了Push Notification Test.这在其他设备(Nexus 5等)上完美运行,但未能在Nexus 9上收到通知.
仅仅为了Play Store Test应用程序过期的可能问题,我创建了一个测试AndroID应用程序和服务器脚本,看看我是否可以进一步缩小问题范围.我遇到了同样的问题.我测试的每台设备除了Nexus 9注册并收到推送通知外.我尝试在项目中更改Google Play服务库的版本(从最新版本到几个版本),但这没有任何效果.
对于我上面提到的上一次尝试,我使用了这里找到的GCM演示应用程序:GCM Client以及我根据另一个用户代码修改的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;
更新:我们将办公室中的三台平板电脑更新为5.0.1 OTA,平板电脑仍然无法接收推送通知.谷歌也没有关于这些的消息,但希望它将在下一个OTA中修复.
更新:1月13日,我们注意到Nexus 9开始接收推送通知.显然谷歌修复了它.圆圈完成.
总结以上是内存溢出为你收集整理的Google GCM – 未在Android Lollipop中接收推送通知全部内容,希望文章能够帮你解决Google GCM – 未在Android Lollipop中接收推送通知所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)