Использование с другими push-сервисами
AppMetrica Push SDK можно использовать одновременно с другими push-сервисами. Для этого необходимо создать свой push-сервис для FCM или HMS, который будет перенаправлять сообщения между интегрированными SDK.
Использование с другими 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. } }
Скопировано
class FirebaseMessagingMasterService : FirebaseMessagingService() { override fun onMessageReceived(message: RemoteMessage) { super.onMessageReceived(message) if (MetricaMessagingService.isNotificationRelatedToSDK(message) { 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. } }
Скопировано
class FirebaseMessagingMasterService : FirebaseMessagingService() { ... override fun onNewToken(token: String) { super.onNewToken(token); 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. } }
Скопировано
class HmsMessagingMasterService : HmsMessageService() { override fun onMessageReceived(message: RemoteMessage) { super.onMessageReceived(message) if (MetricaHmsMessagingService.isNotificationRelatedToSDK(message) { 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. } }
Скопировано
class HmsMessagingMasterService : HmsMessageService() { ... override fun onNewToken(token: String?) { super.onNewToken(token); MetricaHmsMessagingService().processToken(this, token) // Implement the logic for sending tokens to other SDKs. } }
Скопировано