Herstellerkanal SDK-Integrationsleitfaden

Diese Anleitung unterstützt Sie bei der effizienten SDK-Integration verschiedener Herstellerkanäle mittels automatisierter Integrationsmethode, um zuverlässige Offline-Push-Benachrichtigungen zu gewährleisten.

Den aktuellen SDK-Download finden Sie unter Ressourcen herunterladen. Die jeweils gültige SDK-Versionsnummer entnehmen Sie bitte dem Changelog.

Voraussetzungen für die SDK-Integration

  1. Der EngageLab-Kanal ist bereits in Ihre Anwendung integriert.
  2. Vor der Integration des Hersteller-SDKs müssen Sie die erforderlichen Herstellerkanal-Parameter beantragen. Details hierzu finden Sie in der Anleitung zur Beantragung von Herstellerkanal-Parametern.

Ressourcen-Dateien vorbereiten

  • Platzieren Sie das Benachrichtigungssymbol (mtpush_notification_icon.png) im Verzeichnis res/drawable/. Ist keine Konfiguration vorhanden, verwendet das SDK das App-Icon. Bei neueren Android-Versionen kann dies zu Darstellungsproblemen führen.

Xiaomi-Kanal: SDK-Integration und Konfiguration

mavenCentral-Unterstützung aktivieren

Fügen Sie die mavenCentral-Unterstützung in der Haupt-Gradle-Datei Ihres Projektstammverzeichnisses hinzu. (In neuen Projekten meist bereits vorhanden.)

buildscript { repositories { mavenCentral() } } allprojects { repositories { mavenCentral() } }
              
              buildscript {  
    repositories {  
        mavenCentral()  
    }  
}  

allprojects {
    repositories {  
        mavenCentral()  
    } 
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Abhängigkeiten für die Herstellerkanal-Integration definieren

Fügen Sie im Abschnitt dependencies Ihrer App-Modul-Gradle-Datei Folgendes hinzu:

dependencies { // Die Version des Hersteller-SDKs muss mit der EngageLab SDK-Version identisch sein implementation 'com.engagelab.plugin:mi:5.x.x' }
              
              dependencies {
    // Die Version des Hersteller-SDKs muss mit der EngageLab SDK-Version identisch sein
    implementation 'com.engagelab.plugin:mi:5.x.x'
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Herstellerkanal-Parameter konfigurieren

Fügen Sie im Abschnitt defaultConfig Ihrer Gradle-Datei Ihres App-Moduls Folgendes hinzu:

manifestPlaceholders = [ // Variablen in der AndroidManifest.xml setzen XIAOMI_APPKEY : "MI-Ihre Xiaomi-App-APPID", // AppKey (Anwendungsschlüssel), bei Xiaomi registriert XIAOMI_APPID : "MI-Ihre Xiaomi-App-APPKEY", // AppID, bei Xiaomi registriert ]
              
              manifestPlaceholders = [
    // Variablen in der AndroidManifest.xml setzen
    XIAOMI_APPKEY : "MI-Ihre Xiaomi-App-APPID", // AppKey (Anwendungsschlüssel), bei Xiaomi registriert
    XIAOMI_APPID : "MI-Ihre Xiaomi-App-APPKEY", // AppID, bei Xiaomi registriert
]

            
Diesen Codeblock im schwebenden Fenster anzeigen

Code-Verschleierung (Obfuskation) konfigurieren

Wenn Sie Proguard verwenden, fügen Sie in Ihrer Proguard-Konfigurationsdatei folgende Zeilen hinzu, um Warnungen und Kompilierungsfehler zu vermeiden:

-dontwarn com.xiaomi.push.** -keep class com.xiaomi.push.** { *; }
              
              -dontwarn com.xiaomi.push.**
-keep class com.xiaomi.push.** { *; }

            
Diesen Codeblock im schwebenden Fenster anzeigen

Integrationsüberprüfung

Bei erfolgreicher Integration erscheint im Log folgende Ausgabe (Hinweis: Dies sind Log-Ausgaben, keine zu übersetzenden Werte):

D [MTMiBusiness] support xiaomi push D [MTMiBusiness] onTokenSuccess:get token is Tv3KBknVcnEaXnLe89MGEH3SWVgUYdLDYzJaST30IoIGATl2tv5eu6iuT/PTO0Mj D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=1, token=Tv3KBknVcnEaXnLe89MGEH3SWVgUYdLDYzJaST30IoIGATl2tv5eu6iuT/PTO0Mj region=NULL isUserSettings=false }
              
              D  [MTMiBusiness] support xiaomi push
D  [MTMiBusiness] onTokenSuccess:get token is Tv3KBknVcnEaXnLe89MGEH3SWVgUYdLDYzJaST30IoIGATl2tv5eu6iuT/PTO0Mj
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=1,
    token=Tv3KBknVcnEaXnLe89MGEH3SWVgUYdLDYzJaST30IoIGATl2tv5eu6iuT/PTO0Mj
    region=NULL
    isUserSettings=false
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

So testen Sie die Xiaomi-Kanal-Integration

  1. Navigieren Sie in der EngageLab-Konsole zu AppPush → Grundeinstellungen → Integrationseinstellungen, geben Sie die Parameter AppKey (Anwendungsschlüssel), AppID und AppSecret ein und klicken Sie auf „Speichern“.
    Xiaomi Integrationseinstellungen Screenshot
  2. Beenden Sie den App-Prozess und führen Sie einen Push-Test durch. Wird die Push-Benachrichtigung empfangen, war die Integration erfolgreich.

Hinweise für Xiaomi ab Android 13

  • Ab Android 13 muss laut offizieller Xiaomi-Dokumentation die Startmethode der Anwendung exakt mit dem Intent-Filter übereinstimmen, um die Push-Benachrichtigung korrekt zuzustellen.

    Weitere Informationen finden Sie in der offiziellen Google-Dokumentation zu Intent-Filtern ab Android 13: Google Offizielle Dokumentation – Intent Filters

  • Empfehlung: Aktivieren Sie auf Xiaomi-Testgeräten unter „Application Compatibility Changes“ die Option ENFORCE_INTENTS_TO_MATCH_INTENT_FILTERS in den Entwickleroptionen, um die Funktionsfähigkeit Ihrer App umfassend zu testen.

Huawei-Kanal: SDK-Integration und Konfiguration

mavenCentral und agconnect-Abhängigkeit einbinden

Fügen Sie mavenCentral und die agconnect-Abhängigkeit in der Haupt-Gradle-Datei Ihres Projektstammverzeichnisses hinzu:

buildscript { repositories { google() mavenCentral() maven {url 'https://developer.huawei.com/repo/'} } } buildscript { dependencies { classpath 'com.huawei.agconnect:agcp:1.9.1.301' } } allprojects { repositories { google() mavenCentral() maven {url 'https://developer.huawei.com/repo/'} } }
              
              buildscript {
    repositories {
        google()
        mavenCentral()
        maven {url 'https://developer.huawei.com/repo/'}
    }
}
buildscript {
    dependencies {
       classpath 'com.huawei.agconnect:agcp:1.9.1.301'
    }
}
allprojects {
    repositories {
        google()
        mavenCentral()
        maven {url 'https://developer.huawei.com/repo/'}
    }
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Hinweis: Wenn Sie Gradle 8.0 verwenden, fügen Sie in der Datei gradle.properties Ihres Projekts folgende Zeile hinzu (AGC-Plugin-Versionen unter 1.9.1.300 unterstützen kein Gradle 8.0):

apmsInstrumentationEnabled=false
              
              apmsInstrumentationEnabled=false

            
Diesen Codeblock im schwebenden Fenster anzeigen

Huawei-Plugin aktivieren

Fügen Sie am Ende der build.gradle-Datei Ihres App-Moduls folgende Zeile ein:

apply plugin: 'com.huawei.agconnect'
              
              apply plugin: 'com.huawei.agconnect'

            
Diesen Codeblock im schwebenden Fenster anzeigen

Abhängigkeiten für die Herstellerkanal-Integration definieren

Fügen Sie im Abschnitt dependencies Ihrer App-Modul-Gradle-Datei Folgendes hinzu (verwenden Sie die aktuelle Version laut Huawei):

dependencies { implementation 'com.huawei.hms:push:6.13.0.300' // Die Version des Hersteller-SDKs muss mit der AppPush SDK-Version identisch sein implementation 'com.engagelab.plugin:huawei:5.x.x' }
              
              dependencies {
    implementation 'com.huawei.hms:push:6.13.0.300'
    // Die Version des Hersteller-SDKs muss mit der AppPush SDK-Version identisch sein
    implementation 'com.engagelab.plugin:huawei:5.x.x'
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

agconnect-services.json konfigurieren

Laden Sie die Datei agconnect-services.json gemäß der Anleitung zur Beantragung von Herstellerkanal-Parametern herunter und platzieren Sie sie im Verzeichnis app.

Huawei agconnect-services.json im App-Verzeichnis

Signaturzertifikat konfigurieren

Konfigurieren Sie in der Datei build.gradle die Signatur, die mit dem im Huawei-Backend hinterlegten Fingerabdruckzertifikat übereinstimmt.

Der HMS-Dienst erfordert eine signierte App für die erfolgreiche Registrierung. Den Fingerabdruck erhalten Sie mit dem Befehl keytool -list -v -keystore keystorefileName.

signingConfigs { release { storeFile file("release.keystore") // Pfad zur Signaturdatei storePassword "123456" keyAlias "android.keystore" keyPassword "123456" } } buildTypes { release { minifyEnabled true proguardFiles 'proguard-rules.pro' signingConfig signingConfigs.release } debug { minifyEnabled false signingConfig signingConfigs.release } }
              
              signingConfigs {
    release {
        storeFile file("release.keystore") // Pfad zur Signaturdatei
        storePassword "123456"
        keyAlias "android.keystore"
        keyPassword "123456"
    }
}

buildTypes {
    release {
        minifyEnabled true
        proguardFiles 'proguard-rules.pro'
        signingConfig signingConfigs.release
    }
    debug {
        minifyEnabled false
        signingConfig signingConfigs.release
    }
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Code-Verschleierung (Obfuskation) konfigurieren

Wenn Sie Proguard verwenden, fügen Sie in Ihrer Proguard-Konfigurationsdatei folgende Zeilen hinzu:

-ignorewarnings -keepattributes *Annotation* -keepattributes Exceptions -keepattributes InnerClasses -keepattributes Signature -keepattributes SourceFile,LineNumberTable -keep class com.hianalytics.android.**{*;} -keep class com.huawei.updatesdk.**{*;} -keep class com.huawei.hms.**{*;}
              
              -ignorewarnings
-keepattributes *Annotation* 
-keepattributes Exceptions 
-keepattributes InnerClasses 
-keepattributes Signature 
-keepattributes SourceFile,LineNumberTable 
-keep class com.hianalytics.android.**{*;} 
-keep class com.huawei.updatesdk.**{*;} 
-keep class com.huawei.hms.**{*;}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Bei Nutzung von AndResGuard ergänzen Sie die Whitelist entsprechend:

"R.string.hms*", "R.string.connect_server_fail_prompt_toast", "R.string.getting_message_fail_prompt_toast", "R.string.no_available_network_prompt_toast", "R.string.third_app_*", "R.string.upsdk_*", "R.layout.hms*", "R.layout.upsdk_*", "R.drawable.upsdk*", "R.color.upsdk*", "R.dimen.upsdk*", "R.style.upsdk*", "R.string.agc*"
              
              "R.string.hms*",
"R.string.connect_server_fail_prompt_toast",
"R.string.getting_message_fail_prompt_toast",
"R.string.no_available_network_prompt_toast",
"R.string.third_app_*",
"R.string.upsdk_*",
"R.layout.hms*",
"R.layout.upsdk_*",
"R.drawable.upsdk*",
"R.color.upsdk*",
"R.dimen.upsdk*",
"R.style.upsdk*",
"R.string.agc*"

            
Diesen Codeblock im schwebenden Fenster anzeigen

Integrationsüberprüfung

Bei erfolgreicher Integration erscheint im Log folgende Ausgabe:

D [MTHuaweiBusiness] support huawei push D [MTHuaweiBusiness] onTokenSuccess:get token is IQAAAACy0aL1AABEZ3l2C7jluCGX5XriooCvoOwK9TrjG1MTpH0CD47WPXFcAbtt3DdOeOPvX6d7xfAVctoyaOCGKRllRa-0RBP7WQrYI6SxnOp1GA D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=2, token=IQAAAACy0aL1AABEZ3l2C7jluCGX5XriooCvoOwK9TrjG1MTpH0CD47WPXFcAbtt3DdOeOPvX6d7xfAVctoyaOCGKRllRa-0RBP7WQrYI6SxnOp1GA region=NULL isUserSettings=false }
              
              D  [MTHuaweiBusiness] support huawei push
D  [MTHuaweiBusiness] onTokenSuccess:get token is IQAAAACy0aL1AABEZ3l2C7jluCGX5XriooCvoOwK9TrjG1MTpH0CD47WPXFcAbtt3DdOeOPvX6d7xfAVctoyaOCGKRllRa-0RBP7WQrYI6SxnOp1GA
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=2,
    token=IQAAAACy0aL1AABEZ3l2C7jluCGX5XriooCvoOwK9TrjG1MTpH0CD47WPXFcAbtt3DdOeOPvX6d7xfAVctoyaOCGKRllRa-0RBP7WQrYI6SxnOp1GA
    region=NULL
    isUserSettings=false
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

So testen Sie die Huawei-Kanal-Integration

  1. Navigieren Sie in der EngageLab-Konsole zu AppPush → Grundeinstellungen → Integrationseinstellungen, geben Sie die Parameter AppID, AppSecret ein und klicken Sie auf „Speichern“.

Huawei Integrationseinstellungen Screenshot 2. Beenden Sie den App-Prozess und führen Sie einen Push-Test durch. Wird die Push-Benachrichtigung empfangen, war die Integration erfolgreich.


Meizu-Kanal: SDK-Integration und Konfiguration

mavenCentral-Unterstützung aktivieren

Fügen Sie die mavenCentral-Unterstützung in der Haupt-Gradle-Datei Ihres Projektstammverzeichnisses hinzu.

buildscript { repositories { mavenCentral() } } allprojects { repositories { mavenCentral() } }
              
              buildscript {  
    repositories {  
        mavenCentral()  
    }  
}  

allprojects {
    repositories {  
        mavenCentral()  
    } 
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Abhängigkeiten für die Herstellerkanal-Integration definieren

Fügen Sie im Abschnitt dependencies Ihrer App-Modul-Gradle-Datei Folgendes hinzu:

dependencies { // Die Version des Hersteller-SDKs muss mit der AppPush SDK-Version identisch sein implementation 'com.engagelab.plugin:meizu:5.x.x' // Ab SDK-Version 5.2.0 ist zusätzlich "com.engagelab.plugin:meizu_th_push" erforderlich implementation 'com.engagelab.plugin:meizu_th_push:5.2.0' }
              
              dependencies {
  // Die Version des Hersteller-SDKs muss mit der AppPush SDK-Version identisch sein
  implementation 'com.engagelab.plugin:meizu:5.x.x'
  // Ab SDK-Version 5.2.0 ist zusätzlich "com.engagelab.plugin:meizu_th_push" erforderlich
  implementation 'com.engagelab.plugin:meizu_th_push:5.2.0'
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Herstellerkanal-Parameter konfigurieren

Fügen Sie im Abschnitt defaultConfig Ihrer Gradle-Datei Ihres App-Moduls Folgendes hinzu:

Die Werte für Meizu-Parameter müssen mit „MZ-“ beginnen.

manifestPlaceholders = [ // Variablen in der AndroidManifest.xml setzen MEIZU_APPKEY : "MZ-Ihr Meizu-App-APPKEY", // AppKey (Anwendungsschlüssel), bei Meizu registriert MEIZU_APPID : "MZ-Ihr Meizu-App-APPID", // AppID, bei Meizu registriert ]
              
              manifestPlaceholders = [
     // Variablen in der AndroidManifest.xml setzen
     MEIZU_APPKEY : "MZ-Ihr Meizu-App-APPKEY", // AppKey (Anwendungsschlüssel), bei Meizu registriert
     MEIZU_APPID : "MZ-Ihr Meizu-App-APPID",   // AppID, bei Meizu registriert
]

            
Diesen Codeblock im schwebenden Fenster anzeigen

Code-Verschleierung (Obfuskation) konfigurieren

Wenn Sie Proguard verwenden, fügen Sie in Ihrer Proguard-Konfigurationsdatei folgende Zeilen hinzu:

-dontwarn com.meizu.cloud.** -keep class com.meizu.cloud.** { *; }
              
              -dontwarn com.meizu.cloud.**
-keep class com.meizu.cloud.** { *; }

            
Diesen Codeblock im schwebenden Fenster anzeigen

Integrationsüberprüfung

Bei erfolgreicher Integration erscheint im Log folgende Ausgabe:

D [MTMeizuBusiness] support meizu push D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=3, token=DDI5c060475064d447b40670206756d73605705037205 region=NULL isUserSettings=false }
              
              D  [MTMeizuBusiness] support meizu push
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=3,
    token=DDI5c060475064d447b40670206756d73605705037205
    region=NULL
    isUserSettings=false
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Falls der Meizu-Kanal kein Token erhält, setzen Sie android.enableR8 = false in der Datei gradle.properties, um R8 zu deaktivieren.

So testen Sie die Meizu-Kanal-Integration

  1. Navigieren Sie in der EngageLab-Konsole zu AppPush → Grundeinstellungen → Integrationseinstellungen, geben Sie die Parameter AppKey (Anwendungsschlüssel), AppID, AppSecret ein und klicken Sie auf „Speichern“.
    Meizu Integrationseinstellungen Screenshot
  2. Beenden Sie den App-Prozess und führen Sie einen Push-Test durch. Wird die Push-Benachrichtigung empfangen, war die Integration erfolgreich.

Vivo-Kanal: SDK-Integration und Konfiguration

mavenCentral-Unterstützung aktivieren

Fügen Sie die mavenCentral-Unterstützung in der Haupt-Gradle-Datei Ihres Projektstammverzeichnisses hinzu.

buildscript { repositories { mavenCentral() } } allprojects { repositories { mavenCentral() } }
              
              buildscript {  
    repositories {  
        mavenCentral()  
    }  
}  

allprojects {
    repositories {  
        mavenCentral()  
    } 
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Abhängigkeiten für die Herstellerkanal-Integration definieren

Fügen Sie im Abschnitt dependencies Ihrer App-Modul-Gradle-Datei Folgendes hinzu:

dependencies { // Die Version des Hersteller-SDKs muss mit der AppPush SDK-Version identisch sein implementation 'com.engagelab.plugin:vivo:5.x.x' }
              
              dependencies {  
    // Die Version des Hersteller-SDKs muss mit der AppPush SDK-Version identisch sein
    implementation 'com.engagelab.plugin:vivo:5.x.x'
} 

            
Diesen Codeblock im schwebenden Fenster anzeigen

Herstellerkanal-Parameter konfigurieren

Fügen Sie im Abschnitt defaultConfig Ihrer Gradle-Datei Ihres App-Moduls Folgendes hinzu:

manifestPlaceholders = [ VIVO_APPKEY : "Ihr Vivo-App-APPKEY", // AppKey (Anwendungsschlüssel), bei Vivo registriert VIVO_APPID : "Ihr Vivo-App-APPID", // AppID, bei Vivo registriert ]
              
              manifestPlaceholders = [  
    VIVO_APPKEY : "Ihr Vivo-App-APPKEY", // AppKey (Anwendungsschlüssel), bei Vivo registriert
    VIVO_APPID : "Ihr Vivo-App-APPID",   // AppID, bei Vivo registriert
] 

            
Diesen Codeblock im schwebenden Fenster anzeigen

Integrationsüberprüfung

Bei erfolgreicher Integration erscheint im Log folgende Ausgabe:

D [MTVivoBusiness] support vivo push D [MTVivoBusiness] getRegId onTokenSuccess:get token is v2-CRrhwCeK9eY77H6m_EeUqz3zGqmbh0LJPnhvsF0V-ia9OmMHQP9FGCjZ D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=5, token=v2-CRrhwCeK9eY77H6m_EeUqz3zGqmbh0LJPnhvsF0V-ia9OmMHQP9FGCjZ region=NULL isUserSettings=false }
              
              D  [MTVivoBusiness] support vivo push
D  [MTVivoBusiness] getRegId onTokenSuccess:get token is v2-CRrhwCeK9eY77H6m_EeUqz3zGqmbh0LJPnhvsF0V-ia9OmMHQP9FGCjZ
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=5,
    token=v2-CRrhwCeK9eY77H6m_EeUqz3zGqmbh0LJPnhvsF0V-ia9OmMHQP9FGCjZ
    region=NULL
    isUserSettings=false
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Code-Verschleierung (Obfuskation) konfigurieren

Wenn Sie Proguard verwenden, fügen Sie in Ihrer Proguard-Konfigurationsdatei folgende Zeilen hinzu:

-dontwarn com.vivo.push.** -keep class com.vivo.push.**{*; } -keep class com.vivo.vms.**{*; }
              
              -dontwarn com.vivo.push.**
-keep class com.vivo.push.**{*; }
-keep class com.vivo.vms.**{*; }

            
Diesen Codeblock im schwebenden Fenster anzeigen

So testen Sie die Vivo-Kanal-Integration

  1. Navigieren Sie in der EngageLab-Konsole zu AppPush → Grundeinstellungen → Integrationseinstellungen, geben Sie die Parameter AppKey (Anwendungsschlüssel), AppID, AppSecret ein und klicken Sie auf „Speichern“.

Vivo Integrationseinstellungen Screenshot 2. Beenden Sie den App-Prozess und führen Sie einen Push-Test durch. Wird die Push-Benachrichtigung empfangen, war die Integration erfolgreich.

Ist Vivo nicht im Markt verfügbar, müssen Sie das Testgerät auf der Vivo Push-Plattform hinzufügen und den Push ausschließlich per API mit gesetztem push_mode senden.

"options": { "classification": 1, "third_party_channel": { "vivo": { "pushMode": 1, // Optional, seit 21.09.2020. „0“ = regulärer Push, „1“ = Test-Push, Standard ist 0 "distribution_new": "pns_mtpush" } } }
              
               "options": {           
    "classification": 1,           
    "third_party_channel": {                
        "vivo": {                    
            "pushMode":  1, // Optional, seit 21.09.2020. „0“ = regulärer Push, „1“ = Test-Push, Standard ist 0                 
            "distribution_new": "pns_mtpush"                
        }            
    }        
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

OPPO-Kanal: SDK-Integration und Konfiguration

mavenCentral-Unterstützung aktivieren

Fügen Sie die mavenCentral-Unterstützung in der Haupt-Gradle-Datei Ihres Projektstammverzeichnisses hinzu.

buildscript { repositories { mavenCentral() } } allprojects { repositories { mavenCentral() } }
              
              buildscript {  
    repositories {  
        mavenCentral()  
    }  
}  

allprojects {
    repositories {  
        mavenCentral()  
    } 
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Abhängigkeiten für die Herstellerkanal-Integration definieren

Fügen Sie im Abschnitt dependencies Ihrer App-Modul-Gradle-Datei Folgendes hinzu:

dependencies { // Die Version des Hersteller-SDKs muss mit der AppPush SDK-Version identisch sein implementation 'com.engagelab.plugin:oppo:5.x.x' implementation 'com.engagelab.plugin:oppo_th_push:5.x.x' // Für die OPPO-Integration sind zusätzlich folgende Abhängigkeiten erforderlich: implementation 'com.google.code.gson:gson:2.10.1' implementation 'commons-codec:commons-codec:1.6' implementation 'androidx.annotation:annotation:1.1.0' }
              
              dependencies {  
    // Die Version des Hersteller-SDKs muss mit der AppPush SDK-Version identisch sein
    implementation 'com.engagelab.plugin:oppo:5.x.x' 
    implementation 'com.engagelab.plugin:oppo_th_push:5.x.x' 

    // Für die OPPO-Integration sind zusätzlich folgende Abhängigkeiten erforderlich:
    implementation 'com.google.code.gson:gson:2.10.1'
    implementation 'commons-codec:commons-codec:1.6'
    implementation 'androidx.annotation:annotation:1.1.0'
} 

            
Diesen Codeblock im schwebenden Fenster anzeigen

Herstellerkanal-Parameter konfigurieren

Fügen Sie im Abschnitt defaultConfig Ihrer Gradle-Datei Ihres App-Moduls Folgendes hinzu:

OPPO-Parameter müssen mit „OP-“ beginnen.

manifestPlaceholders = [ OPPO_APPKEY : "OP-Ihr OPPO-App-APPKEY", // AppKey (Anwendungsschlüssel), bei OPPO registriert OPPO_APPID : "OP-Ihr OPPO-App-APPID", // AppID, bei OPPO registriert OPPO_APPSECRET: "OP-Ihr OPPO-App-APPSECRET" // AppSecret, bei OPPO registriert ]
              
              manifestPlaceholders = [  
    OPPO_APPKEY : "OP-Ihr OPPO-App-APPKEY",      // AppKey (Anwendungsschlüssel), bei OPPO registriert
    OPPO_APPID : "OP-Ihr OPPO-App-APPID",        // AppID, bei OPPO registriert
    OPPO_APPSECRET: "OP-Ihr OPPO-App-APPSECRET"  // AppSecret, bei OPPO registriert
] 

            
Diesen Codeblock im schwebenden Fenster anzeigen

Code-Verschleierung (Obfuskation) konfigurieren

Wenn Sie Proguard verwenden, fügen Sie in Ihrer Proguard-Konfigurationsdatei folgende Zeilen hinzu:

-dontwarn com.coloros.mcsdk.** -keep class com.coloros.mcsdk.** { *; } -dontwarn com.heytap.** -keep class com.heytap.** { *; } -dontwarn com.mcs.** -keep class com.mcs.** { *; }
              
              -dontwarn com.coloros.mcsdk.**
-keep class com.coloros.mcsdk.** { *; }

-dontwarn com.heytap.**
-keep class com.heytap.** { *; }

-dontwarn com.mcs.**
-keep class com.mcs.** { *; }

            
Diesen Codeblock im schwebenden Fenster anzeigen

Integrationsüberprüfung

Bei erfolgreicher Integration erscheint im Log folgende Ausgabe:

D [MTOppoBusiness] support oppo push D [MTOppoBusiness] onTokenSuccess:get token is OnePlus_CN_0e3c2f966c9d01d4e2423cbc9e7598b6 D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=4, token=OnePlus_CN_0e3c2f966c9d01d4e2423cbc9e7598b6 region=NULL isUserSettings=false }
              
              D  [MTOppoBusiness] support oppo push
D  [MTOppoBusiness] onTokenSuccess:get token is OnePlus_CN_0e3c2f966c9d01d4e2423cbc9e7598b6
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=4,
    token=OnePlus_CN_0e3c2f966c9d01d4e2423cbc9e7598b6
    region=NULL
    isUserSettings=false
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

So testen Sie die OPPO-Kanal-Integration

  1. Navigieren Sie in der EngageLab-Konsole zu AppPush → Grundeinstellungen → Integrationseinstellungen, geben Sie die Parameter AppKey (Anwendungsschlüssel), AppID, AppSecret, MasterSecret ein und klicken Sie auf „Speichern“.

OPPO Integrationseinstellungen Screenshot 2. Beenden Sie den App-Prozess und führen Sie einen Push-Test durch. Wird die Push-Benachrichtigung empfangen, war die Integration erfolgreich.

Ist die App nicht verfügbar, muss für Testzwecke eine Push-Testberechtigung auf der OPPO Open Platform beantragt werden. Pro Tag können maximal 1.000 öffentliche Nachrichten pro App versendet werden.


FCM-Kanal: SDK-Integration und Konfiguration

mavenCentral und google-services-Abhängigkeit einbinden

Fügen Sie in der Haupt-Gradle-Datei Ihres Projektstammverzeichnisses mavenCentral und die google-services-Abhängigkeit hinzu:

buildscript { repositories { mavenCentral() } dependencies { classpath 'com.google.gms:google-services:4.3.15' } } allprojects { repositories { mavenCentral() maven { url "https://maven.google.com" } } }
              
              buildscript {
    repositories {
        mavenCentral() 
    }
    dependencies {
        classpath 'com.google.gms:google-services:4.3.15'
    }
}

allprojects {
    repositories {
        mavenCentral()
        maven { url "https://maven.google.com" } 
    }
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

FCM-Plugin aktivieren

Fügen Sie am Ende der build.gradle-Datei Ihres App-Moduls folgende Zeile ein:

apply plugin: 'com.google.gms.google-services'
              
              apply plugin: 'com.google.gms.google-services'

            
Diesen Codeblock im schwebenden Fenster anzeigen

Abhängigkeiten für die Herstellerkanal-Integration definieren

Fügen Sie im Abschnitt dependencies Ihrer App-Modul-Gradle-Datei Folgendes hinzu:

dependencies { // Die Version des Hersteller-SDKs muss mit der AppPush SDK-Version identisch sein implementation 'com.engagelab.plugin:google:5.x.x' implementation 'com.google.firebase:firebase-messaging:25.0.0' }
              
              dependencies {
    // Die Version des Hersteller-SDKs muss mit der AppPush SDK-Version identisch sein
    implementation 'com.engagelab.plugin:google:5.x.x'
    implementation 'com.google.firebase:firebase-messaging:25.0.0'
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Fügen Sie im Abschnitt android Ihrer Gradle-Datei Ihres App-Moduls Folgendes hinzu:

android { // Google Push benötigt Java 1.8 compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
              
              android {
    // Google Push benötigt Java 1.8
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

google-services.json konfigurieren

Laden Sie die Datei google-services.json gemäß der Anleitung zur Beantragung von Herstellerkanal-Parametern herunter und platzieren Sie sie im Verzeichnis app.

FCM google-services.json im App-Verzeichnis

FCM-Benachrichtigungssymbol konfigurieren

Fügen Sie folgende Konfiguration zur AndroidManifest.xml hinzu, um das FCM-Benachrichtigungssymbol festzulegen:

<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/Ihr_Benachrichtigungssymbol" />
              
              <meta-data android:name="com.google.firebase.messaging.default_notification_icon"  
     android:resource="@drawable/Ihr_Benachrichtigungssymbol" />  

            
Diesen Codeblock im schwebenden Fenster anzeigen

Integrationsüberprüfung

Bei erfolgreicher Integration erscheint im Log folgende Ausgabe:

D [MTGoogleBusiness] support google push D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=8, token=dj793yH_RO6FqNyKImQJYV:APA91bExj3PSVv50pwtl83LXVeB_HKOCSkyB6qCE12TIwIRl-RKiqCfXjvCshcqVrqn_8htlNBa8_A_8ixq7YIxfrloxig2BryZPCkunyx_z2drz0L-C2K8R7J8Yrojs61WCsF-BZj8h region=NULL isUserSettings=false }
              
              D  [MTGoogleBusiness] support google push
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=8,
    token=dj793yH_RO6FqNyKImQJYV:APA91bExj3PSVv50pwtl83LXVeB_HKOCSkyB6qCE12TIwIRl-RKiqCfXjvCshcqVrqn_8htlNBa8_A_8ixq7YIxfrloxig2BryZPCkunyx_z2drz0L-C2K8R7J8Yrojs61WCsF-BZj8h
    region=NULL
    isUserSettings=false
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Voraussetzungen für den Test der FCM-Kanal-Integration

  • Das Gerät muss Google Play-Dienste in Version 17.3.4 oder höher installiert haben.
  • Für den Test ist eine Verbindung über ein ausländisches VPN erforderlich, und das Gerät muss Zugang zu Google Play-Diensten haben.
  • Bei Tests auf einem inländischen Gerät muss die App im Hintergrund bleiben; wird sie geschlossen, kann der Push fehlschlagen, da manche Hersteller Hintergrundprozesse beenden.

So testen Sie die FCM-Kanal-Integration

  1. Navigieren Sie in der EngageLab-Konsole zu AppPush → Grundeinstellungen → Integrationseinstellungen, geben Sie den AppSecret ein und klicken Sie auf „Speichern“.
    FCM Integrationseinstellungen Screenshot

  2. Bei Tests in China muss nach der Initialisierung der Ländercode gesetzt werden (nicht in der Live-Umgebung verwenden):

public class ExampleApplication extends Application { @Override public void onCreate() { super.onCreate(); MTCorePrivatesApi.configDebugMode(this, true); // Ländercode setzen – Nicht in der Live-Umgebung verwenden MTGlobal.setCountryCode("US"); // Initialisierung MTPushPrivatesApi.init(this); } }
              
              public class ExampleApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
    
        MTCorePrivatesApi.configDebugMode(this, true);

        // Ländercode setzen – Nicht in der Live-Umgebung verwenden
        MTGlobal.setCountryCode("US");
         
        // Initialisierung
        MTPushPrivatesApi.init(this);
    }
}

            
Diesen Codeblock im schwebenden Fenster anzeigen
  1. Prüfen Sie im AppPush-Backend, ob die Push-Benachrichtigung über den FCM- oder EngageLab-Kanal gesendet wurde.

FCM Kanalprüfung im Backend


Honor-Kanal: SDK-Integration und Konfiguration

mavenCentral-Unterstützung aktivieren

Fügen Sie die mavenCentral-Unterstützung in der Haupt-Gradle-Datei Ihres Projektstammverzeichnisses hinzu.

buildscript { repositories { ... mavenCentral() ... } } allprojects { repositories { ... mavenCentral() ... } }
              
              buildscript {
    repositories {
      ...
      mavenCentral()
      ...
    }
}

allprojects {
    repositories {
        ...
        mavenCentral()
        ...
    }
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Herstellerkanal-Parameter und Abhängigkeiten konfigurieren

Fügen Sie in der Datei build.gradle Ihres Projektmoduls Folgendes hinzu:

defaultConfig { ... manifestPlaceholders = [ ... HONOR_APPID : "Ihre Honor-App-APPID", // AppID, bei Honor registriert ... ] ... } dependencies { ... // Die Version des Hersteller-SDKs muss mit der AppPush SDK-Version identisch sein implementation 'com.engagelab.plugin:honor:5.x.x' implementation 'com.engagelab.plugin:honor_th_push:5.x.x' ... }
              
              defaultConfig {
    ...
    manifestPlaceholders = [
           ...
           HONOR_APPID : "Ihre Honor-App-APPID", // AppID, bei Honor registriert
           ...
    ]
    ...
}
dependencies {
    ...
    // Die Version des Hersteller-SDKs muss mit der AppPush SDK-Version identisch sein
    implementation 'com.engagelab.plugin:honor:5.x.x' 
    implementation 'com.engagelab.plugin:honor_th_push:5.x.x'
    ...
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Signaturzertifikat konfigurieren

Konfigurieren Sie in der Datei build.gradle die Signatur, die mit dem im Honor-Backend hinterlegten Fingerabdruckzertifikat übereinstimmt.

Der Honor-Dienst erfordert eine signierte App für die erfolgreiche Registrierung. Den Fingerabdruck erhalten Sie mit dem Befehl keytool -list -v -keystore <Pfad zur Keystore-Datei>.

Integrationsüberprüfung

Bei erfolgreicher Integration erscheint im Log folgende Ausgabe:

D [MTHonorBusiness] support honor push D [MTHonorBusiness] onTokenSuccess:get token is s18069ps301291893q1ssro2o40s1630-n262n542r9669q62o83s390306179rro-775875632-654-6105326555582-PA-0052993947080949113-5 D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=7, token=s18069ps301291893q1ssro2o40s1630-n262n542r9669q62o83s390306179rro-775875632-654-6105326555582-PA-0052993947080949113-5 region=NULL isUserSettings=false }
              
              D  [MTHonorBusiness] support honor push
D  [MTHonorBusiness] onTokenSuccess:get token is s18069ps301291893q1ssro2o40s1630-n262n542r9669q62o83s390306179rro-775875632-654-6105326555582-PA-0052993947080949113-5
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=7,
    token=s18069ps301291893q1ssro2o40s1630-n262n542r9669q62o83s390306179rro-775875632-654-6105326555582-PA-0052993947080949113-5
    region=NULL
    isUserSettings=false
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Code-Verschleierung (Obfuskation) konfigurieren

Wenn Sie Proguard verwenden, fügen Sie in Ihrer Proguard-Konfigurationsdatei folgende Zeilen hinzu:

-ignorewarnings -keepattributes *Annotation* -keepattributes Exceptions -keepattributes InnerClasses -keepattributes Signature -keepattributes SourceFile,LineNumberTable -keep class com.hihonor.push.**{*;}
              
              -ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.hihonor.push.**{*;}

            
Diesen Codeblock im schwebenden Fenster anzeigen

So testen Sie die Honor-Kanal-Integration

  1. Navigieren Sie in der EngageLab-Konsole zu AppPush → Grundeinstellungen → Integrationseinstellungen, geben Sie die Parameter AppID, ClientID, ClientSecret, AppSecret ein und klicken Sie auf „Speichern“.

Honor Integrationseinstellungen Screenshot 2. Beenden Sie den App-Prozess und führen Sie einen Push-Test durch. Wird die Push-Benachrichtigung empfangen, war die Integration erfolgreich.


Hersteller-Benachrichtigungen melden, ohne das Hersteller-SDK zu integrieren – dennoch EngageLab für Hersteller-Push verwenden

Sie können Hersteller-Benachrichtigungen an EngageLab melden, ohne das Hersteller-SDK direkt zu integrieren. Nutzen Sie dazu folgende Methoden:

/** * Meldet das Eintreffen einer Herstellerkanal-Benachrichtigung * * Übermittlung per HTTP/HTTPS * * @param context Nicht null * @param messageId EngageLab-Nachrichten-ID, nicht null * @param platform Hersteller, Wertebereich (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 8:google) * @param platformMessageId Hersteller-Nachrichten-ID, kann null sein */ public static void reportNotificationArrived(Context context, String messageId, byte platform, String platformMessageId)
              
              /**
 * Meldet das Eintreffen einer Herstellerkanal-Benachrichtigung
 * 
 * Übermittlung per HTTP/HTTPS
 *
 * @param context           Nicht null
 * @param messageId         EngageLab-Nachrichten-ID, nicht null
 * @param platform          Hersteller, Wertebereich (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 8:google)
 * @param platformMessageId Hersteller-Nachrichten-ID, kann null sein
 */
public static void reportNotificationArrived(Context context, String messageId, byte platform, String platformMessageId)

            
Diesen Codeblock im schwebenden Fenster anzeigen
/** * Meldet das Anklicken einer Herstellerkanal-Benachrichtigung * * Übermittlung per HTTP/HTTPS * * @param context Nicht null * @param messageId EngageLab-Nachrichten-ID, nicht null * @param platform Hersteller, Wertebereich (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google) * @param platformMessageId Hersteller-Nachrichten-ID, kann null sein */ public static void reportNotificationClicked(Context context, String messageId, byte platform, String platformMessageId)
              
              /**
 * Meldet das Anklicken einer Herstellerkanal-Benachrichtigung
 * 
 * Übermittlung per HTTP/HTTPS
 *
 * @param context           Nicht null
 * @param messageId         EngageLab-Nachrichten-ID, nicht null
 * @param platform          Hersteller, Wertebereich (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
 * @param platformMessageId Hersteller-Nachrichten-ID, kann null sein
 */
public static void reportNotificationClicked(Context context, String messageId, byte platform, String platformMessageId)

            
Diesen Codeblock im schwebenden Fenster anzeigen
/** * Meldet das Löschen einer Herstellerkanal-Benachrichtigung * * Übermittlung per HTTP/HTTPS * * @param context Nicht null * @param messageId EngageLab-Nachrichten-ID, nicht null * @param platform Hersteller, Wertebereich (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google) * @param platformMessageId Hersteller-Nachrichten-ID, kann null sein */ public static void reportNotificationDeleted(Context context, String messageId, byte platform, String platformMessageId)
              
              /**
 * Meldet das Löschen einer Herstellerkanal-Benachrichtigung
 * 
 * Übermittlung per HTTP/HTTPS
 *
 * @param context           Nicht null
 * @param messageId         EngageLab-Nachrichten-ID, nicht null
 * @param platform          Hersteller, Wertebereich (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
 * @param platformMessageId Hersteller-Nachrichten-ID, kann null sein
 */
public static void reportNotificationDeleted(Context context, String messageId, byte platform, String platformMessageId)

            
Diesen Codeblock im schwebenden Fenster anzeigen
/** * Meldet das Öffnen einer Herstellerkanal-Benachrichtigung * * Übermittlung per HTTP/HTTPS * * @param context Nicht null * @param messageId EngageLab-Nachrichten-ID, nicht null * @param platform Hersteller, Wertebereich (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google) * @param platformMessageId Hersteller-Nachrichten-ID, kann null sein */ public static void reportNotificationOpened(Context context, String messageId, byte platform, String platformMessageId)
              
              /**
 * Meldet das Öffnen einer Herstellerkanal-Benachrichtigung
 * 
 * Übermittlung per HTTP/HTTPS
 *
 * @param context           Nicht null
 * @param messageId         EngageLab-Nachrichten-ID, nicht null
 * @param platform          Hersteller, Wertebereich (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
 * @param platformMessageId Hersteller-Nachrichten-ID, kann null sein
 */
public static void reportNotificationOpened(Context context, String messageId, byte platform, String platformMessageId)

            
Diesen Codeblock im schwebenden Fenster anzeigen
/** * Hersteller-Token hochladen * * Muss nach erfolgreichem Aufbau der EngageLab-Langzeitverbindung aufgerufen werden, sonst ungültig. Der Status ist erfolgreich, wenn der Callback `MTCommonReceiver.onConnectStatus` true zurückgibt. * * Upload via TCP * * @param context Nicht null * @param platform Hersteller, Wertebereich (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google) * @param token Vom Hersteller zurückgegebenes Token, nicht null */ public static void uploadPlatformToken(Context context, byte platform, String token)
              
              /**
 * Hersteller-Token hochladen
 *
 * Muss nach erfolgreichem Aufbau der EngageLab-Langzeitverbindung aufgerufen werden, sonst ungültig. Der Status ist erfolgreich, wenn der Callback `MTCommonReceiver.onConnectStatus` true zurückgibt.
 * 
 * Upload via TCP
 *
 * @param context  Nicht null
 * @param platform Hersteller, Wertebereich (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
 * @param token    Vom Hersteller zurückgegebenes Token, nicht null
 */
public static void uploadPlatformToken(Context context, byte platform, String token)

            
Diesen Codeblock im schwebenden Fenster anzeigen

Tipp: Nutzen Sie die oben beschriebenen Methoden, um Ihre Push-Benachrichtigungen und die Herstellerkanal-Integration mit EngageLab optimal zu verwalten und zu überwachen.


Weitere Informationen und Ressourcen:


Jetzt SDK-Integration starten und zuverlässige Offline-Push-Benachrichtigungen ermöglichen!

icon
Vertrieb kontaktieren