Tiz*_*ito 7 android push google-cloud-messaging android-5.0-lollipop
在我的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商店下载了推送通知测试.这在其他设备(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;
Run Code Online (Sandbox Code Playgroud)
更新:我们将办公室中的三台平板电脑更新为5.0.1 OTA,平板电脑仍然无法接收推送通知.谷歌也没有关于这些的消息,但希望它将在下一个OTA中修复.
更新:1月13日,我们注意到Nexus 9开始接收推送通知.显然谷歌修复了它.圆圈完成.
我有一个相当简单的 Android GCM 应用程序,可以在 Kitkat 上正常运行。lollypop升级后,出现“显式意图”错误(Android 5.0(L)服务意图必须在Google分析中显式)。我修复了这个问题,没有错误,但也没有设备注册!
| 归档时间: |
|
| 查看次数: |
5874 次 |
| 最近记录: |