Реализую push-уведомления для Android. Мой клиент хочет, чтобы приложение поддерживало Urban Airship в дополнение к обычному сервису GCM. Вот у меня проблема.
Чтобы включить GCM, я использовал gcm.jar от Google, выполнил все остальные настройки и подтвердил, что могу без проблем отправлять push-уведомления со своего сервера. Это часть 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>
Проблема: когда я отправляю push-уведомление с Urban Airship, приложение получает 2 уведомления.
Когда это происходит, я могу подавить одно ненужное окно с предупреждением, написав соответствующий код, но я не могу понять, как удалить то, которое находится на верхней панели уведомлений.
Я не уверен, что это правильный способ использовать GCM и Urban Airship в одном приложении. Кому-нибудь когда-нибудь удавалось это или какая-либо другая идея? Могу я что-нибудь сделать с intent-filter?