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

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

  1. Использование с другими Firebase push-сервисами
  2. Использование с другими HMS push-сервисами

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

Шаг 1. Внесите изменения в AndroidManifest.xml

Внесите изменения в элемент 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) {
        super.onMessageReceived(message);
        if (MetricaMessagingService.isNotificationRelatedToSDK(message) {
            new MetricaMessagingService().processPush(this, message);
            return;
        }
        
        // Implement the logic for sending messages to other SDKs or handle own pushes.
    }
}
Скопировано

Шаг 3. Добавьте обработку push-токенов

Дополните код класса FirebaseMessagingMasterService для обработки push-токенов:

public class FirebaseMessagingMasterService extends FirebaseMessagingService {
    ...

    @Override
    public void onNewToken(@NonNull String token) {
        super.onNewToken(token);
        new MetricaMessagingService().processToken(this, token);

        // Implement the logic for sending tokens to other SDKs.
    }
}
Скопировано

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

Шаг 1. Внесите изменения в AndroidManifest.xml

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

<service
    android:name=".HmsMessagingMasterService"
    android:exported="true"
    android:permission="${applicationId}.permission.PROCESS_PUSH_MSG">
    <intent-filter android:priority="100">
        <action android:name="com.huawei.push.action.MESSAGING_EVENT" />
    </intent-filter>
</service>
<service android:name="com.yandex.appmetrica.push.hms.MetricaHmsMessagingService" tools:node="remove"/>
Скопировано

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

Объявите производный класс HmsMessagingMasterService от базового HmsMessageService для обработки push-уведомлений:

public class HmsMessagingMasterService extends HmsMessageService {
    @Override
    public void onMessageReceived(RemoteMessage message) {
        super.onMessageReceived(message);
        if (MetricaHmsMessagingService.isNotificationRelatedToSDK(message) {
            new MetricaHmsMessagingService().processPush(this, message);
            return;
        }
        
        // Implement the logic for sending messages to other SDKs or handle own pushes.
    }
}
Скопировано

Шаг 3. Добавьте обработку push-токенов

Дополните код класса HmsMessagingMasterService для обработки push-токенов:

public class HmsMessagingMasterService extends HmsMessageService {
    ...

    @Override
    public void onNewToken(@Nullable String token) {
        super.onNewToken(token);
        new MetricaHmsMessagingService().processToken(this, token);

        // Implement the logic for sending tokens to other SDKs.
    }
}
Скопировано

Если вы не нашли ответ на свой вопрос, то вы можете задать его через форму обратной связи. Пожалуйста, опишите возникшую проблему как можно подробнее. Если возможно, приложите скриншот.