我运行了一个示例,在我的后端注册了我的设备,它通过 GCM 发送回设备消息。问题是我可以在应用程序是应用程序并运行时在 BroadCastreceiver.OnReceive 方法接收这些消息,但是如果我退出我的应用程序并再次发送推送,则不会发生任何事情。
我是否需要额外的实现才能让 Android 系统以原生方式显示推送(如 iOS 和 Windows Phone)。
我遵循了本指南,没有关于原生 Android 操作系统通知的内容:http: //developer.android.com/google/gcm/client.html
ps:当我在客户端应用程序关闭时发送消息时,我仍然收到成功响应:
{"multicast_id":5388850153658301208,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1382683020113430%1a3104c7f9fd7ecd"}]}
感谢您的任何建议!
更新1:清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="auto"
package="com.pushtest.droid"
android:versionCode="1"
android:versionName="1">
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<permission android:name="com.pushtest.droid.permission.C2D_MESSAGE" android:protectionLevel="signature"/>
<uses-permission android:name="com.pushtest.droid.permission.C2D_MESSAGE" />
<application android:label="push droid">
<receiver android:name="com.pushtest.droid.MyGcmBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<action android:name="com.google.android.gcm.intent.RETRY" />
<category android:name="com.pushtest.droid" />
</intent-filter>
</receiver>
</application>
</manifest>