我正在使用https://github.com/google/gcm中的 gcm-server 库。我的Message
已在设备中成功收到数据和Notification
,如下所示:
服务器代码(在Scala中):
val sender = new Sender(API_KEY)
val notification = new Notification.Builder("@drawable/ic_launcher").titleLocKey("app_name").clickAction("com.myapp.NOTIFY_GENERIC").build
val message = new Message.Builder().addData("foo", "bar").notification(notification).build
sender.send(message, group.toList.asJava, 5)
AndroidManifest.xml
:
<receiver
android:name="com.google.android.gms.gcm.GcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter android:priority="10"> <-- I also use Localytics -->
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.myapp" />
</intent-filter>
</receiver>
<service
android:name=".gcm.MessageListener"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<activity
android:name=".IntroActivity_"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="com.myapp.NOTIFY_GENERIC" />
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<!-- http://docs.localytics.com/dev/android.html -->
<data android:scheme="@string/localytics_intent" />
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
</activity>
但点按通知只会在不打开活动的情况下解除通知。在没有 Message
的情况下发送Notification
(并在我的{{ {1}})有效。我哪里做错了?
ADDENDUM#1:我的.gcm.MessageListener
:
.gcm.MessageListener
ADDENDUM#2:如果活动已经显示,则可以打开该活动。它将再次打开 ,因此当您按BACK时,您将看到相同的活动。