Использование AppMetrica Push SDK с другими push-сервисами

Вы можете использовать AppMetrica Push SDK одновременно с другими сервисами доставки push-сообщений. Для этого необходимо создать сервис (GCM или FCM), который будет перенаправлять сообщения между интегрированными SDK.

Ниже описаны этапы настройки приложения для обработки push-сообщений при использовании нескольких сервисов.

  1. Настройки Firebase Cloud Messaging (FCM)
  2. Настройки Google Cloud Messaging (GCM)

Настройки Firebase Cloud Messaging (FCM)

Для настройки FCM выполните следующие шаги:

Шаг 1. Объявите дополнительный FirebaseMessagingService

Внесите изменения в элемент application файла AndroidManifest.xml:

<service
    android:name=".FirebaseMessagingMasterService"
    android:enabled="true"
    android:exported="false" >
    <intent-filter android:priority="100" >
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>
<service android:name="com.yandex.metrica.push.firebase.MetricaMessagingService" tools:node="remove" />

Шаг 2. Добавьте обработку push-сообщений

Объявите производный класс FirebaseMessagingMasterService от базового FirebaseMessagingService для обработки push-сообщений:

public class FirebaseMessagingMasterService extends FirebaseMessagingService {
    @Override
    public void onMessageReceived(RemoteMessage message) {
        // AppMetrica автоматически распознает свои сообщения и обработает только их.
        new MetricaMessagingService().processPush(this, message);

        // Реализуйте логику отправки сообщений в другие SDK.
    }
}

Настройки Google Cloud Messaging (GCM)

Для настройки GCM выполните следующие шаги:

Шаг 1. Объявите дополнительный GCMListenerService

Внесите изменения в элемент application файла AndroidManifest.xml:

<service
    android:name=".GCMListenerMasterService"
    android:enabled="true"
    android:exported="false" >
    <intent-filter android:priority="100" >
        <action android:name="com.google.android.c2dm.intent.RECEIVE" />
    </intent-filter>
</service>
<service android:name="com.yandex.metrica.push.gcm.MetricaGcmListenerService" tools:node="remove" />

Шаг 2. Добавьте обработку push-сообщений

Объявите производный класс GCMListenerMasterService от базового GcmListenerService для обработки push-сообщений:

public class GCMListenerMasterService extends GcmListenerService {
    @Override
    public void onMessageReceived(String from, Bundle data) {
    
        data.putString("from", from);

        // AppMetrica автоматически распознает свои сообщения и обработает только их.
        new MetricaGcmListenerService().processPush(this, data);

        // Реализуйте логику отправки сообщений в другие SDK.
    }
}