我试图将我的应用程序从C2DM服务迁移到新的GCM推送通知。我已成功集成了扩展GCMBaseIntentService的GCMIntentService类。当我使用PHP从服务器发送推送通知时,GCM将消息数据作为JSON对象发送。我在我的Android GCM服务中使用了下面的代码,它用新的代码返回一个空值。未使用JSON的GCM推送通知
public void onMessage(Context context, Intent intent)
{
String action = intent.getAction();
if ("com.google.android.c2dm.intent.RECEIVE".equals(action)) {
message=intent.getStringExtra("message");
createNotification(context);
}
}
PHP脚本包含:
$头=阵列( '授权:键=' $ apiKey, '内容类型:应用/ JSON' );
// Open connection
$ch = curl_init();
// Set the url, number of POST vars, POST data
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
请建议我什么都我需要在我的PHP脚本的变化使用GCM库和JSON没有发送推送通知。
在此先感谢 添
只是想确认我们是否可以只使用JSON与推送消息发送数据。 – Timson 2012-07-20 11:28:37
不,它必须用JSON封装 - 并且确切地说只有带有String参数的json(因为向后兼容到2.2) – ligi 2012-07-20 11:54:14
谢谢。我已经完成了解析JSON的代码,并且它从我的应用程序中工作正常:) – Timson 2012-07-23 04:31:25