我正在为 Android 实现推送通知。我的客户希望应用程序除了支持正常的 GCM 服务外,还支持 Urban Airship。在这里我遇到了问题。
为了启用 GCM,我使用了 Google 的 gcm.jar 并完成了所有其他设置,并确认我可以毫无问题地从我的服务器发送推送通知。这是 AndroidManifest 的一部分。
<receiver android:name="com.google.android.gcm.GCMBroadcastReceiver" 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" />
<category android:name="my.package.name"/>
</intent-filter>
</receiver>
<service android:name="my.package.name.GCMIntentService" />
为了实现 Urban Airship,我使用了 urbanairship-lib-3.1.0.jar 并完成了所有设置。工作正常。
<receiver android:name="com.urbanairship.CoreReceiver" />
<receiver android:name="com.urbanairship.push.GCMPushReceiver" 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" />
<category android:name="my.package.name"/>
</intent-filter>
</receiver>
问题:当我从 Urban Airship 发送推送时,应用收到 2 条通知。
发生这种情况时,我可以通过编写代码来抑制一个不必要的警报窗口,但我不知道如何消除顶部通知栏中的那个。
我不确定这是否是在同一应用程序中同时使用 GCM 和 Urban Airship 的正确方法。有没有人成功过,或任何其他想法?我可以用意图过滤器做点什么吗?