MTPush-API
MTCorePrivatesApi
- Hauptsächlich für die Informationskonfiguration verwendet.
- Alle Methoden müssen im Hauptprozess aufgerufen werden. Bitte führen Sie vor dem Methodenaufruf keine Prozessprüfung durch, um sie in den Kindprozess zu verschieben, da sonst ein Aufruffehler auftritt.
configAppKey
- Muss in der Methode Application.onCreate() aufgerufen werden.
- Bitte vor init aufrufen.
/**
* Konfiguriert den Anwendungsschlüssel, ohne die Konfiguration in der AndroidManifest.xml zu verwenden.
*
* Muss in der Methode Application.onCreate() aufgerufen werden.
* Bitte vor [init](#init) aufrufen.
*
*@param context darf nicht leer sein
*@param appKey darf nicht leer sein
*/
Public static void configAppKey(Context context, String appKey)
Beispielcode:
MTCorePrivatesApi.configAppKey(this, "Ihr AppKey");
configAppChannel
- Muss in der Methode Application.onCreate() aufgerufen werden.
- Bitte vor init aufrufen.
/**
* Konfiguriert den Anwendungskanal, ohne die Konfiguration in der AndroidManifest.xml zu verwenden.
* Muss in der Methode Application.onCreate() aufgerufen werden.
* Muss vor init verwendet werden und innerhalb von Application.onCreate aufgerufen werden.
*
* @param context darf nicht leer sein
* @param appChannel darf nicht leer sein
*/
public static void configAppChannel(Context context, String appChannel)
Beispielcode:
MTCorePrivatesApi.configAppChannel(this, "Ihr_AppChannel");
configAppSiteName
- Muss in der Methode Application.onCreate() aufgerufen werden.
- Bitte vor init aufrufen.
/**
* Konfiguriert den Namen des Datenzentrum-Standorts, ohne die Konfiguration in der AndroidManifest.xml zu verwenden.
* Die aktuell verfügbaren Standorte sind: Singapore, USA_Virginia, DEU_Frankfurt und HongKong.
* Muss in der Methode Application.onCreate() aufgerufen werden.
* Bitte vor [init](#init) aufrufen.
*
*@param context darf nicht leer sein
*@param appSiteName darf nicht leer sein
*/
Public static void configAppSiteName(Context context, String appSiteName)
Beispielcode:
MTCorePrivatesApi.configAppSiteName(this, "Ihr Plattform-Datenzentrum-Standortname");
configHeartbeatInterval
- Muss in der Methode Application.onCreate() aufgerufen werden.
- Bitte vor init aufrufen.
/**
* Setzt das Heartbeat-Intervall.
*
* Muss in der Methode Application.onCreate() aufgerufen werden.
*
* @param context darf nicht leer sein
* @param heartbeatInterval Zeiteinheit ist Millisekunden, muss größer als 0 sein, Standardwert ist 4 Minuten und 50 Sekunden
*/
public static void configHeartbeatInterval(Context context, long heartbeatInterval)
Beispielcode:
- Im Demo wird das Heartbeat-Intervall auf 3 Minuten gesetzt.
MTCorePrivatesApi.configHeartbeatInterval(this, 3*60*1000);
configConnectRetryCount
- Muss in der Methode Application.onCreate() aufgerufen werden.
- Bitte vor init aufrufen.
/**
* Setzt die Anzahl der Wiederholungsversuche für die Langzeitverbindung.
*
* Muss in der Methode Application.onCreate() aufgerufen werden.
*
* @param context darf nicht leer sein
* @param connectRetryCount Anzahl der Wiederholungen, Standardwert ist 3, mindestens 3
*/
public static void configConnectRetryCount(Context context, int connectRetryCount)
Beispielcode:
- Im Beispiel wird die Anzahl der Wiederholungsversuche auf 10 gesetzt.
MTCorePrivatesApi.configConnectRetryCount(this, 10);
setTcpSSl
- Muss in der Methode Application.onCreate() aufgerufen werden.
- Bitte vor init aufrufen.
/**
* Legt fest, ob die Langzeitverbindung verschlüsselt wird, Standard ist keine Verschlüsselung.
*
* Muss in der Methode Application.onCreate() aufgerufen werden.
*
* @param isSSL true = Verschlüsselung, false = keine Verschlüsselung
*/
public static void setTcpSSl(boolean isSSL)
Beispielcode:
- Demo aktiviert Verschlüsselung.
MTCorePrivatesApi.setTcpSSl(true);
configDebugMode
- Muss in der Methode Application.onCreate() aufgerufen werden.
- Bitte vor init aufrufen.
- Engagelab-Log-Format, Suche nach „ENGAGELAB-PRIVATES“
- Engagelab gibt Logs sowohl im Hauptprozess als auch im Kindprozess aus.
/**
* Legt fest, ob der Debug-Modus aktiviert ist. Im Debug-Modus werden detailliertere Logs ausgegeben.
*
* Muss in der Methode Application.onCreate() aufgerufen werden.
*
* @param context darf nicht leer sein
* @param enable true = Debug-Modus aktiv, false = nicht aktiv
*/
public static void configDebugMode(Context context, boolean enable)
Beispielcode:
- Das SDK läuft in zwei Prozessen, Hauptprozess und Kindprozess. Der Name des Kindprozesses ist der Prozessattributname der MTCommonService-Subklasse.
- SDK-Log-Tag ist „ENGAGELAB-PRIVATES“.
- Die Logs zu udp/tcp/http-bezogenen Operationen befinden sich alle im Kindprozess.
- Falls Nachrichten nicht gepusht werden können, aktivieren Sie bitte zuerst den Debug-Modus, holen Sie sich dann das Log mit dem Tag „ENGAGELAB-PRIVATES“ aus dem Kindprozess und stellen Sie es dem technischen Support zur Analyse zur Verfügung.
// Es wird empfohlen, true zu setzen, solange die App nicht live ist, um die Integration zu erleichtern.
MTCorePrivatesApi.configDebugMode(context.getApplicationContext(), true);
// Nach dem Go-Live sollte auf false gesetzt werden.
MTCorePrivatesApi.configDebugMode(context.getApplicationContext(), false);
configSM4
- Muss in der Methode Application.onCreate() aufgerufen werden.
- Bitte vor init aufrufen.
/**
* Konfiguriert die Verwendung der nationalen Verschlüsselung (SM4).
*
* @param context darf nicht leer sein
*/
public static void configSM4(Context context)
Beispielcode:
// Nationale Verschlüsselung aktivieren, wenn nicht aufgerufen, wird die Standardverschlüsselung verwendet.
MTCorePrivatesApi.configSM4(context.getApplicationContext());
getUserId
Wenn der Rückgabewert leer ist, prüfen Sie bitte, ob die Umgebung korrekt konfiguriert ist und ob die Initialisierung aufgerufen wurde.
Wenn die Konfiguration korrekt ist, kann es dennoch sein, dass sich die Verbindung noch im Aufbau befindet. Sie können die UserId abfragen, wenn onConnectStatus true zurückgibt.
/**
* Gibt die userId des aktuellen Geräts zurück. Dies ist die eindeutige Kennung von Engagelab und kann für Push verwendet werden.
*
* @param context darf nicht leer sein
* @return userId
*/
public static String getUserId(Context context)
Beispielcode:
String userId = MTCorePrivatesApi.getUserId(context);
getRegistrationId
Wenn der Rückgabewert leer ist, prüfen Sie bitte, ob die Umgebung korrekt konfiguriert ist und ob die Initialisierung aufgerufen wurde.
Wenn die Konfiguration korrekt ist, kann es dennoch sein, dass sich die Verbindung noch im Aufbau befindet. Sie können die RegistrationId abfragen, wenn onConnectStatus true zurückgibt.
/**
* Gibt die registrationId des aktuellen Geräts zurück. Dies ist die eindeutige Kennung von Engagelab und kann für Push verwendet werden.
*
* @param context darf nicht leer sein
* @return registrationId
*/
public static String getRegistrationId(Context context)
Beispielcode:
String registrationId = MTCorePrivatesApi.getRegistrationId(context);
setEnableResetOnDeviceChange
- Muss in der Methode Application.onCreate() aufgerufen werden.
- Bitte vor init aufrufen.
- Standard ist false (deaktiviert).
/**
* Konfiguriert die Geräte-Migrationsfunktion.
* Wenn aktiviert, werden bei einem Gerätewechsel die lokale registrationId und UID-Informationen gelöscht und neu registriert.
* Standard ist false.
*
* @param context darf nicht leer sein
* @param enable true = Geräte-Migration aktiv, false = deaktiviert
*/
public static void setEnableResetOnDeviceChange(Context context, boolean enable)
Beispielcode:
- Bei Gerätewechsel (z. B. Flashen des Geräts, Gerätewechsel usw.) werden die lokal zwischengespeicherten Registrierungsinformationen automatisch gelöscht.
// Geräte-Migrationsfunktion aktivieren
MTCorePrivatesApi.setEnableResetOnDeviceChange(this, true);
// Geräte-Migrationsfunktion deaktivieren (Standard)
MTCorePrivatesApi.setEnableResetOnDeviceChange(this, false);
MTPushPrivatesApi
- Hauptsächlich für Push-Funktionen verwendet.
- Alle Methoden müssen im Hauptprozess aufgerufen werden. Bitte führen Sie vor dem Methodenaufruf keine Prozessprüfung durch, um sie in den Kindprozess zu verschieben, da sonst ein Aufruffehler auftritt.
configOldPushVersion
- Wenn im Backend nicht auf Version
tag: V3.5.4-newportal-20210823-gamma.57oder höher aktualisiert wurde, muss diese Methode aufgerufen werden, sonst gibt es Probleme beim Klick auf Benachrichtigungen.- Muss in der Methode Application.onCreate() aufgerufen werden.
- Bitte vor init aufrufen.
/**
* Konfiguriert die Push-Versionsnummer als 3.9.X.
*
* @param context darf nicht leer sein
*/
public static void configOldPushVersion(Context context)
Beispielcode:
public class ExampleApplication extends Application {
@Override
public void onCreate() {
// Debug-Modus aktivieren
MTCorePrivatesApi.configDebugMode(context.getApplicationContext(), true);
// Alte Version für Klick auf Benachrichtigung aktivieren
MTPushPrivatesApi.configOldPushVersion(context.getApplicationContext());
// Initialisierung
MTPushPrivatesApi.init(context.getApplicationContext());
}
}
setEnablePushTextToSpeech
/**
* Einstellungen für die Sprachausgabe von Push-Benachrichtigungen, erfordert das Importieren des Sprachpakets (mt-sdk-sound-x.x.x.aar)
*
* @param context darf nicht leer sein
* @param enable true = aktivieren, false = deaktivieren, Standard ist false
*/
public static void setEnablePushTextToSpeech(Context context, boolean enable)
Beispielcode:
MTPushPrivatesApi.setEnablePushTextToSpeech(context, true);
init
- Es wird empfohlen, in der Methode Application.onCreate() aufzurufen.
/**
* Initialisierung von MTPush
*
* Es wird empfohlen, in der Methode Application.onCreate() aufzurufen.
*
* @param context darf nicht leer sein, bitte verwenden Sie das applicationContext-Objekt
*/
public static void init(Context context)
Beispielcode:
public class ExampleApplication extends Application {
@Override
public void onCreate() {
// Debug-Modus aktivieren
MTCorePrivatesApi.configDebugMode(context.getApplicationContext(), true);
// Initialisierung
MTPushPrivatesApi.init(context.getApplicationContext());
}
}
setCollectControl
- Steuerung der Datenerfassung festlegen
- Es wird empfohlen, diese Methode in Application.onCreate() vor dem Aufruf von init auszuführen.
/**
* Steuerung der Datenerfassung festlegen
*
* Dient zur Steuerung, ob bestimmte Gerätedaten erfasst werden.
* Es wird empfohlen, diese Methode in Application.onCreate() vor dem Aufruf von init auszuführen.
*
* @param control Objekt zur Steuerung der Datenerfassung, darf nicht null sein
*/
public static void setCollectControl(MTPushCollectControl control)
Beispielcode:
public class ExampleApplication extends Application {
@Override
public void onCreate() {
// Steuerung der Datenerfassung konfigurieren
MTPushCollectControl collectControl = new MTPushCollectControl();
collectControl.setGaid(true); // GAID-Erfassung aktivieren, false = deaktivieren. Standard ist aktiviert.
MTPushPrivatesApi.setCollectControl(collectControl);
// Initialisierung
MTPushPrivatesApi.init(context.getApplicationContext());
}
}
goToAppNotificationSettings
- Nach dem Start des SDK kann das Ergebnis über onNotificationStatus zurückgegeben werden, um zu entscheiden, ob diese Methode aufgerufen werden muss.
/**
* Öffnet die Einstellungsseite für Benachrichtigungen
*
* @param context darf nicht leer sein
*/
public static void goToAppNotificationSettings(Context context)
Beispielcode:
// Öffnet die Einstellungsseite für Benachrichtigungen. Der Kunde muss den Benachrichtigungsschalter manuell aktivieren.
MTPushPrivatesApi.goToAppNotificationSettings(this);
// Nach dem Überschreiben von MTCommonReceiver die Methode onNotificationStatus implementieren, um den Status des Benachrichtigungsschalters zu erhalten. Wenn enable true ist, wurde er erfolgreich aktiviert.
@Override
public void onNotificationStatus(Context context, boolean enable) {
if(enable){
// Der Benachrichtigungsschalter wurde aktiviert
}
}
turnOnPush
- Wird in der Regel nach turnOffPush verwendet, um Push wieder zu aktivieren.
- Mehrfaches Aufrufen hat nur einmal Wirkung; wenn bereits aktiviert, bleibt der Status unverändert.
- Bei korrekter Umgebung wird das Ergebnis über onConnectStatus zurückgegeben.
- Unterstützte Kanäle: Engagelab/Huawei/Xiaomi/Meizu/Oppo/Vivo
/**
* Push aktivieren, der Status wird persistent auf true gesetzt, Standard ist true.
*
* @param context darf nicht leer sein
*/
public static void turnOnPush(Context context)
Beispielcode:
// Push aktivieren (Standard ist aktiviert)
MTPushPrivatesApi.turnOnPush(context);
// Nach dem Überschreiben von MTCommonReceiver die Methode onConnectStatus implementieren, um den Status der Langzeitverbindung zu erhalten. Wenn enable true ist, wurde Push erfolgreich aktiviert.
@Override
public void onConnectStatus(Context context, boolean enable){
if(enable){
// Push erfolgreich aktiviert
}
}
turnOffPush
- Wird in der Regel verwendet, um Push zu deaktivieren.
- Nach dem Deaktivieren wird Push durch erneutes Aufrufen von init nicht automatisch aktiviert.
- Mehrfaches Aufrufen hat nur einmal Wirkung.
- Bei korrekter Umgebung wird das Ergebnis über onConnectStatus zurückgegeben.
- Unterstützte Kanäle: Engagelab/Huawei/Xiaomi/Meizu/Oppo/Vivo
/**
* Push deaktivieren, der Status wird persistent auf false gesetzt, Standard ist true.
*
* @param context darf nicht leer sein
*/
public static void turnOffPush(Context context)
Beispielcode:
// Push deaktivieren, zum erneuten Aktivieren muss turnOnPush aufgerufen werden
MTPushPrivatesApi.turnOffPush(context);
// Nach dem Überschreiben von MTCommonReceiver die Methode onConnectStatus implementieren, um den Status der Langzeitverbindung zu erhalten. Wenn enable false ist, wurde Push erfolgreich deaktiviert.
@Override
public void onConnectStatus(Context context, boolean enable){
if(!enable){
// Push erfolgreich deaktiviert
}
}
addTag
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
- Bei korrekter Umgebung wird das Ergebnis über onTagMessage zurückgegeben.
/**
* Fügt ein angegebenes Tag hinzu, Akkumulationslogik: vorherige Tags bleiben erhalten.
*
* @param context darf nicht leer sein
* @param sequence Benutzerdefinierte Operationssequenznummer, wird zusammen mit dem Ergebnis zurückgegeben, zur Identifikation der Operation
* @param tags Tag-Array, Länge jedes Tag-Namens max. 40 Bytes, max. 1000 Tags, Gesamtlänge pro Vorgang max. 5000 Bytes
*/
public static void addTag(Context context, int sequence, String... tags)
Beispielcode:
// Konstante für das Hinzufügen von Tags
private static final int SEQUENCE_TAG_ADD = 1;
// Tags hinzufügen: "china", "guangdong", "shenzhen"
MTPushPrivatesApi.addTag(context, SEQUENCE_TAG_ADD, "china", "guangdong", "shenzhen");
// Nach dem Überschreiben von MTCommonReceiver die Methode onTagMessage implementieren, um das Callback zu erhalten
@Override
public void onTagMessage(Context context, TagMessage tagMessage){
if(tagMessage.getCode != MTPushPrivatesApi.Code.Success){
// Tag-Operation fehlgeschlagen, Details siehe MTPushPrivatesApi.Code
return;
}
if(tagMessage.getSequence() == SEQUENCE_TAG_ADD){
// Tag erfolgreich hinzugefügt. Erfolgreiche Tags können jetzt abgerufen werden.
String[] tags = tagMessage.getTags();
}
}
deleteTag
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
- Bei korrekter Umgebung wird das Ergebnis über onTagMessage zurückgegeben.
/**
* Löscht das angegebene Tag, Löschlogik: Das angegebene Tag wird entfernt.
*
* @param context darf nicht leer sein
* @param sequence Benutzerdefinierte Operationssequenznummer, wird zusammen mit dem Ergebnis zurückgegeben, zur Identifikation der Operation
* @param tags Tag-Array, Länge jedes Tag-Namens max. 40 Bytes, max. 1000 Tags, Gesamtlänge pro Vorgang max. 5000 Bytes
*/
public static void deleteTag(Context context, int sequence, String... tags)
Beispielcode:
// Konstante für das Löschen von Tags
private static final int SEQUENCE_TAG_DELETE = 2;
// Tags löschen: "china", "guangdong", "shenzhen"
MTPushPrivatesApi.deleteTag(context, SEQUENCE_TAG_DELETE, "china", "guangdong", "shenzhen");
// Nach dem Überschreiben von MTCommonReceiver die Methode onTagMessage implementieren, um das Callback zu erhalten
@Override
public void onTagMessage(Context context, TagMessage tagMessage){
if(tagMessage.getCode != MTPushPrivatesApi.Code.Success){
// Tag-Operation fehlgeschlagen, Details siehe MTPushPrivatesApi.Code
return;
}
if(tagMessage.getSequence() == SEQUENCE_TAG_DELETE){
// Tag erfolgreich gelöscht
String[] tags = tagMessage.getTags();
}
}
updateTag
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
- Bei korrekter Umgebung wird das Ergebnis über onTagMessage zurückgegeben.
/**
* Aktualisiert das angegebene Tag, Überschreiblogik: Vorherige Tags werden entfernt.
*
* @param context darf nicht leer sein
* @param sequence Benutzerdefinierte Operationssequenznummer, wird zusammen mit dem Ergebnis zurückgegeben, zur Identifikation der Operation
* @param tags Tag-Array, Länge jedes Tag-Namens max. 40 Bytes, max. 1000 Tags, Gesamtlänge pro Vorgang max. 5000 Bytes
*/
public static void updateTag(Context context, int sequence, String... tags)
Beispielcode:
// Konstante für das Aktualisieren von Tags
private static final int SEQUENCE_TAG_UPDATE = 3;
// Tags aktualisieren: "beijing", "shanghai", "guangzhou", "shenzhen" (vorherige Tags werden ungültig)
MTPushPrivatesApi.updateTag(context, SEQUENCE_TAG_UPDATE, "beijing", "shanghai", "guangzhou", "shenzhen");
// Nach dem Überschreiben von MTCommonReceiver die Methode onTagMessage implementieren, um das Callback zu erhalten
@Override
public void onTagMessage(Context context, TagMessage tagMessage){
if(tagMessage.getCode != MTPushPrivatesApi.Code.Success){
// Tag-Operation fehlgeschlagen, Details siehe MTPushPrivatesApi.Code
return;
}
if(tagMessage.getSequence() == SEQUENCE_TAG_UPDATE){
// Tag erfolgreich aktualisiert
String[] tags = tagMessage.getTags();
}
}
queryTag
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
- Bei korrekter Umgebung wird das Ergebnis über onTagMessage zurückgegeben.
/**
* Abfrage eines bestimmten Tags.
*
* @param context darf nicht leer sein
* @param sequence Benutzerdefinierte Operationssequenznummer, wird zusammen mit dem Ergebnis zurückgegeben, zur Identifikation der Operation
* @param tag Tag-Name, max. 40 Bytes
*/
public static void queryTag(Context context, int sequence, String tag)
Beispielcode:
// Konstante für die Abfrage eines Tags
private static final int SEQUENCE_TAG_QUERY = 4;
// Tag abfragen
MTPushPrivatesApi.queryTag(context, SEQUENCE_TAG_QUERY, "china");
// Nach dem Überschreiben von MTCommonReceiver die Methode onTagMessage implementieren, um das Callback zu erhalten
@Override
public void onTagMessage(Context context, TagMessage tagMessage){
if(tagMessage.getCode != MTPushPrivatesApi.Code.Success){
// Tag-Operation fehlgeschlagen, Details siehe MTPushPrivatesApi.Code
return;
}
if(tagMessage.getSequence() == SEQUENCE_TAG_QUERY){
// Tag erfolgreich abgefragt
String tag = tagMessage.getQueryTag();
boolean valid = tagMessage.isQueryTagValid();
}
}
deleteAllTag
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
- Bei korrekter Umgebung wird das Ergebnis über onTagMessage zurückgegeben.
/**
* Löscht alle Tags, Löschlogik: Alle Tags werden entfernt.
*
* @param context darf nicht leer sein
* @param sequence Benutzerdefinierte Operationssequenznummer, wird zusammen mit dem Ergebnis zurückgegeben, zur Identifikation der Operation
*/
public static void deleteAllTag(Context context, int sequence, String... tags)
Beispielcode:
// Konstante für das Löschen aller Tags
private static final int SEQUENCE_TAG_DELETE_ALL = 5;
// Alle Tags löschen
MTPushPrivatesApi.deleteTag(context, SEQUENCE_TAG_DELETE_ALL);
// Nach dem Überschreiben von MTCommonReceiver die Methode onTagMessage implementieren, um das Callback zu erhalten
@Override
public void onTagMessage(Context context, TagMessage tagMessage){
if(tagMessage.getCode != MTPushPrivatesApi.Code.Success){
// Tag-Operation fehlgeschlagen, Details siehe MTPushPrivatesApi.Code
return;
}
if(tagMessage.getSequence() == SEQUENCE_TAG_DELETE_ALL){
// Alle Tags erfolgreich gelöscht
}
}
queryAllTag
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
- Bei korrekter Umgebung wird das Ergebnis über onTagMessage zurückgegeben.
/**
* Alle Tags abfragen.
*
* @param context darf nicht leer sein
* @param sequence Benutzerdefinierte Operationssequenznummer, wird zusammen mit dem Ergebnis zurückgegeben, zur Identifikation der Operation
*/
public static void queryAllTag(Context context, int sequence, String... tags)
Beispielcode:
// Konstante für die Abfrage aller Tags
private static final int SEQUENCE_TAG_QUERY_ALL = 6;
// Alle Tags abfragen
MTPushPrivatesApi.queryAllTag(context, SEQUENCE_TAG_QUERY_ALL);
// Nach dem Überschreiben von MTCommonReceiver die Methode onTagMessage implementieren, um das Callback zu erhalten
@Override
public void onTagMessage(Context context, TagMessage tagMessage){
if(tagMessage.getCode != MTPushPrivatesApi.Code.Success){
// Tag-Operation fehlgeschlagen, Details siehe MTPushPrivatesApi.Code
return;
}
if(tagMessage.getSequence() == SEQUENCE_TAG_DELETE_ALL){
// Alle Tags erfolgreich abgefragt
String[] tags = tagMessage.getTags();
}
}
setAlias
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
- Bei korrekter Umgebung wird das Ergebnis über onAliasMessage zurückgegeben.
/**
* Alias setzen
*
* Es wird empfohlen, für unterschiedliche Nutzer:innen in derselben App unterschiedliche Aliase zu verwenden, um eine eindeutige Identifikation zu gewährleisten.
*
* Alias nicht auf eine:n Nutzer:in beschränken.
*
* @param context darf nicht leer sein
* @param sequence Benutzerdefinierte Operationssequenznummer, wird zusammen mit dem Ergebnis zurückgegeben, zur Identifikation der Operation
* @param alias Gültige Alias-Zeichen: Buchstaben (Groß-/Kleinschreibung), Zahlen, Unterstrich, chinesische Zeichen, Sonderzeichen @!#$&*+=.|. Einschränkung: Max. 40 Bytes (UTF-8)
*/
public static void setAlias(Context context, int sequence, String alias)
Beispielcode:
// Konstante für das Setzen eines Alias
private static final int SEQUENCE_ALIAS_SET = 7;
// Alias setzen: "young"
MTPushPrivatesApi.setAlias(context, SEQUENCE_ALIAS_SET, "young");
// Nach dem Überschreiben von MTCommonReceiver die Methode onAliasMessage implementieren, um das Callback zu erhalten
@Override
public void onAliasMessage(Context context, AliasMessage aliasMessage){
if(aliasMessage.getCode != MTPushPrivatesApi.Code.Success){
// Alias-Operation fehlgeschlagen, Details siehe MTPushPrivatesApi.Code
return;
}
if(aliasMessage.getSequence() == SEQUENCE_ALIAS_SET){
// Alias erfolgreich gesetzt
String alias = aliasMessage.getAlias();
}
}
getAlias
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
- Bei korrekter Umgebung wird das Ergebnis über onAliasMessage zurückgegeben.
/**
* Alias abfragen
*
* Es wird empfohlen, für unterschiedliche Nutzer:innen in derselben App unterschiedliche Aliase zu verwenden, um eine eindeutige Identifikation zu gewährleisten.
*
* Alias nicht auf eine:n Nutzer:in beschränken.
*
* @param context darf nicht leer sein
* @param sequence Benutzerdefinierte Operationssequenznummer, wird zusammen mit dem Ergebnis zurückgegeben, zur Identifikation der Operation
*/
public static void getAlias(Context context, int sequence)
Beispielcode:
// Konstante für das Abfragen eines Alias
private static final int SEQUENCE_ALIAS_GET = 8;
// Alias abfragen
MTPushPrivatesApi.getAlias(context, SEQUENCE_ALIAS_GET);
// Nach dem Überschreiben von MTCommonReceiver die Methode onAliasMessage implementieren, um das Callback zu erhalten
@Override
public void onAliasMessage(Context context, AliasMessage aliasMessage){
if(aliasMessage.getCode != MTPushPrivatesApi.Code.Success){
// Alias-Operation fehlgeschlagen, Details siehe MTPushPrivatesApi.Code
return;
}
if(aliasMessage.getSequence() == SEQUENCE_ALIAS_GET){
// Alias erfolgreich abgefragt
String alias = aliasMessage.getAlias();
}
}
clearAlias
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
- Bei korrekter Umgebung wird das Ergebnis über onAliasMessage zurückgegeben.
/**
* Alias löschen
*
* Es wird empfohlen, für unterschiedliche Nutzer:innen in derselben App unterschiedliche Aliase zu verwenden, um eine eindeutige Identifikation zu gewährleisten.
*
* Alias nicht auf eine:n Nutzer:in beschränken.
*
* @param context darf nicht leer sein
* @param sequence Benutzerdefinierte Operationssequenznummer, wird zusammen mit dem Ergebnis zurückgegeben, zur Identifikation der Operation
*/
public static void clearAlias(Context context, int sequence)
Beispielcode:
// Konstante für das Löschen eines Alias
private static final int SEQUENCE_ALIAS_CLEAR = 7;
// Alias löschen
MTPushPrivatesApi.clearAlias(context, SEQUENCE_ALIAS_CLEAR);
// Nach dem Überschreiben von MTCommonReceiver die Methode onAliasMessage implementieren, um das Callback zu erhalten
@Override
public void onAliasMessage(Context context, AliasMessage aliasMessage){
if(aliasMessage.getCode != MTPushPrivatesApi.Code.Success){
// Alias-Operation fehlgeschlagen, Details siehe MTPushPrivatesApi.Code
return;
}
if(aliasMessage.getSequence() == SEQUENCE_ALIAS_CLEAR){
// Alias erfolgreich gelöscht
}
}
setNotificationShowTime
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
- Unterstützte Kanäle: Engagelab-Kanal/Google-Kanal, wenn die App im Vordergrund ist (Anzeige durch Engagelab).
/**
* Legt die Anzeigedauer von Benachrichtigungen fest. Standardmäßig werden Benachrichtigungen jederzeit angezeigt.
*
* @param context darf nicht leer sein
* @param beginHour Startzeit (24-Stunden-Format, Bereich 0 bis 23)
* @param endHour Endzeit (24-Stunden-Format, Bereich 0 bis 23), beginHour darf nicht größer oder gleich endHour sein
* @param weekDays Wochentags-Array (7-Tage-System, Werte 1 bis 7), leeres Array = keine Anzeige
*/
public static void setNotificationShowTime(Context context, int beginHour, int endHour, int... weekDays)
Beispielcode:
// Benachrichtigungen werden wöchentlich von 9 bis 21 Uhr an den Tagen 1/3/5/7 angezeigt
MTPushPrivatesApi.setNotificationShowTime(context, 9, 21, 1, 3, 5, 7);
resetNotificationShowTime
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
- Unterstützte Kanäle: Engagelab-Kanal/Google-Kanal, wenn die App im Vordergrund ist (Anzeige durch Engagelab).
/**
* Setzt die Anzeigedauer von Benachrichtigungen zurück, Standard ist jederzeitige Anzeige.
*
* @param context darf nicht leer sein
*/
public static void resetNotificationShowTime(Context context)
Beispielcode:
// Setzt die Anzeigedauer für Benachrichtigungen zurück (Standard: jederzeit)
MTPushPrivatesApi.resetNotificationShowTime(context);
setNotificationSilenceTime
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
- Unterstützte Kanäle: Engagelab-Kanal/Google-Kanal, wenn die App im Vordergrund ist (Anzeige durch Engagelab).
/**
* Legt die Ruhezeit für Benachrichtigungen fest, Standard ist keine Ruhezeit.
*
* @param context darf nicht leer sein
* @param beginHour Startzeit der Ruhezeit (24-Stunden-Format, Bereich 0 bis 23)
* @param beginMinute Startminute der Ruhezeit (Bereich 0 bis 59)
* @param endHour Endzeit der Ruhezeit (24-Stunden-Format, Bereich 0 bis 23)
* @param endMinute Endminute der Ruhezeit (Bereich 0 bis 59)
*/
public static void setNotificationSilenceTime(Context context, int beginHour, int beginMinute, int endHour, int endMinute)
Beispielcode:
// Ruhezeit von 21:30 Uhr bis 9:30 Uhr am nächsten Tag
MTPushPrivatesApi.setNotificationSilenceTime(context, 21, 30, 9, 30);
resetNotificationSilenceTime
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
- Unterstützte Kanäle: Engagelab-Kanal/Google-Kanal, wenn die App im Vordergrund ist (Anzeige durch Engagelab).
/**
* Setzt die Ruhezeit für Benachrichtigungen zurück, Standard ist keine Ruhezeit.
*
* @param context darf nicht leer sein
*/
public static void resetNotificationSilenceTime(Context context)
Beispielcode:
// Ruhezeit für Benachrichtigungen zurücksetzen (Standard: keine Ruhezeit)
MTPushPrivatesApi.resetNotificationSilenceTime(context);
setNotificationLayout
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
- Unterstützte Kanäle: Engagelab-Kanal
/**
* Legt ein benutzerdefiniertes Benachrichtigungs-Layout fest, Standard ist das Systemlayout.
*
* @param context darf nicht leer sein
* @param builderId Build-ID
* @param notificationLayout Objekt für benutzerdefiniertes Layout, darf nicht leer sein
*/
public static void setNotificationLayout(Context context, int builderId, NotificationLayout notificationLayout)
Beispielcode:
// Konstante für die Build-ID
private static final int BUILDER_ID = 11;
// NotificationLayout erstellen
NotificationLayout notificationLayout = new NotificationLayout()
.setLayoutId(R.layout.custom_notification_layout)
.setIconViewId(R.id.iv_notification_icon)
.setIconResourceId(R.drawable.mtpush_notification_icon)
.setTitleViewId(R.id.tv_notification_title)
.setContentViewId(R.id.tv_notification_content)
.setTimeViewId(R.id.tv_notification_time);
// Benutzerdefiniertes Layout mit Build-ID festlegen
MTPushPrivatesApi.setNotificationLayout(this.getApplicationContext(), BUILDER_ID, notificationLayout);
resetNotificationLayout
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
- Unterstützte Kanäle: Engagelab-Kanal
/**
* Setzt das benutzerdefinierte Benachrichtigungs-Layout zurück, Standard ist das Systemlayout.
*
* @param context darf nicht leer sein
* @param builderId ID des benutzerdefinierten Layouts
*/
public static void resetNotificationLayout(Context context, int builderId)
Beispielcode:
// Konstante für die Build-ID
private static final int BUILDER_ID = 11;
// Benutzerdefiniertes Layout mit Build-ID zurücksetzen (Systemlayout verwenden)
MTPushPrivatesApi.resetNotificationLayout(context, BUILDER_ID);
setNotificationCount
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
- Unterstützte Kanäle: Engagelab-Kanal/Google-Kanal, wenn die App im Vordergrund ist (Anzeige durch Engagelab).
/**
* Legt die Anzahl der Benachrichtigungen in der Benachrichtigungsleiste fest, Standard ist 5.
*
* @param context darf nicht leer sein
* @param count Begrenzung der Anzahl, bei Überschreitung wird die älteste Benachrichtigung entfernt, darf nicht <= 0 sein
*/
public static void setNotificationCount(Context context, int count)
Beispielcode:
// Anzahl der Benachrichtigungen auf 50 setzen
MTPushPrivatesApi.setNotificationCount(context, 50);
resetNotificationCount
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
- Unterstützte Kanäle: Engagelab-Kanal/Google-Kanal, wenn die App im Vordergrund ist (Anzeige durch Engagelab).
/**
* Setzt die Anzahl der Benachrichtigungen in der Benachrichtigungsleiste zurück, Standard ist 5.
*
* @param context darf nicht leer sein
*/
public static void resetNotificationCount(Context context)
Beispielcode:
// Anzahl der Benachrichtigungen zurücksetzen (Standard: 5)
MTPushPrivatesApi.resetNotificationCount(context);
setNotificationBadge
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
/**
* Legt die Anzahl der App-Badges fest, Standard ist 0 (nur für Huawei/Honor gültig).
*
* @param context darf nicht leer sein
* @param badge Anzahl der App-Badges
*/
public static void setNotificationBadge(Context context, int badge)
Beispielcode:
// Anzahl der App-Badges auf 1 setzen
MTPushPrivatesApi.setNotificationBadge(context, 1);
resetNotificationBadge
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
/**
* Setzt die Anzahl der App-Badges zurück, Standard ist 0 (nur für Huawei/Honor gültig).
*
* @param context darf nicht leer sein
*/
public static void resetNotificationBadge(Context context)
Beispielcode:
// Anzahl der App-Badges zurücksetzen (Standard: 0)
MTPushPrivatesApi.resetNotificationBadge(context);
showNotification
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
/**
* Benachrichtigung anzeigen
*
* @param context darf nicht leer sein
* @param notificationMessage Benachrichtigungsobjekt, darf nicht leer sein
*/
public static void showNotification(Context context, NotificationMessage notificationMessage)
Beispielcode:
// Grundlegende Benachrichtigung erstellen (messageId und content erforderlich)
NotificationMessage notificationMessage = new NotificationMessage()
.setMessageId("12345")
.setNotificationId(12345)
.setTitle("custom_notification_title")
.setContent("custom_notification_content");
// Benachrichtigung anzeigen
MTPushPrivatesApi.showNotification(context, notificationMessage);
clearNotification
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
/**
* Löscht die Benachrichtigung mit der angegebenen notifyId
*
* @param context darf nicht leer sein
* @param notifyId Benachrichtigungs-ID
*/
public static void clearNotification(Context context, int notifyId)
Beispielcode:
// Benachrichtigung mit der angegebenen notifyId löschen
MTPushPrivatesApi.clearNotification(context, 12345);
reportNotificationArrived
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
- Wenn kein Engagelab-Herstellerpaket integriert ist, aber Engagelab die Zustellrate erfassen soll, bitte diese Schnittstelle aufrufen.
/**
* Meldet das Eintreffen der Herstellerbenachrichtigung.
*
* HTTP/HTTPS wird verwendet.
*
* @param context darf nicht leer sein
* @param messageId Engagelab messageId, darf nicht leer sein
* @param platform Hersteller (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
* @param platformMessageId Hersteller messageId, optional
*/
public static void reportNotificationArrived(Context context, String messageId, byte platform, String platformMessageId)
Beispielcode:
// Meldet das Eintreffen der Herstellerbenachrichtigung, messageId: "12345", Hersteller: Xiaomi, Hersteller messageId: "MI-6476RHT25"
MTPushPrivatesApi.reportNotificationArrived(context, "12345", MTPushPrivatesApi.PLATFORM_XIAOMI, "MI-6476RHT25");
reportNotificationClicked
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
- Wenn kein Engagelab-Herstellerpaket integriert ist, aber Engagelab die Klickrate erfassen soll, bitte diese Schnittstelle aufrufen.
/**
* Meldet den Klick auf die Herstellerbenachrichtigung.
*
* HTTP/HTTPS wird verwendet.
*
* @param context darf nicht leer sein
* @param messageId Engagelab messageId, darf nicht leer sein
* @param platform Hersteller (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
* @param platformMessageId Hersteller messageId, optional
*/
public static void reportNotificationClicked(Context context, String messageId, byte platform, String platformMessageId)
Beispielcode:
// Meldet den Klick auf die Herstellerbenachrichtigung, messageId: "12345", Hersteller: Xiaomi, Hersteller messageId: "MI-6476RHT25"
MTPushPrivatesApi.reportNotificationClicked(context, "12345", MTPushPrivatesApi.PLATFORM_XIAOMI, "MI-6476RHT25");
reportNotificationDeleted
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
- Wenn kein Engagelab-Herstellerpaket integriert ist, aber Engagelab die Löschrate erfassen soll, bitte diese Schnittstelle aufrufen.
/**
* Meldet das Löschen der Herstellerbenachrichtigung.
*
* HTTP/HTTPS wird verwendet.
*
* @param context darf nicht leer sein
* @param messageId Engagelab messageId, darf nicht leer sein
* @param platform Hersteller (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
* @param platformMessageId Hersteller messageId, optional
*/
public static void reportNotificationDeleted(Context context, String messageId, byte platform, String platformMessageId)
Beispielcode:
// Meldet das Löschen der Herstellerbenachrichtigung, messageId: "12345", Hersteller: Xiaomi, Hersteller messageId: "MI-6476RHT25"
MTPushPrivatesApi.reportNotificationDeleted(context, "12345", MTPushPrivatesApi.PLATFORM_XIAOMI, "MI-6476RHT25");
reportNotificationOpened
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
- Wenn kein Engagelab-Herstellerpaket integriert ist, aber Engagelab die Öffnungsrate erfassen soll, bitte diese Schnittstelle aufrufen.
- Einige Hersteller (z. B. Huawei/Oppo/Vivo) bieten keine Callbacks für Benachrichtigungseingang und -klick. Nach der Konfiguration der Aktivität, auf die die Benachrichtigung verweist, können die Parameter im Ziel-Intent abgefragt werden. Es wird empfohlen, für alle Hersteller die Zielaktivität zu konfigurieren.
- Ab MTPush 4.0.0 nicht mehr erforderlich.
/**
* Meldet das Öffnen der Herstellerbenachrichtigung.
*
* HTTP/HTTPS wird verwendet.
*
* @param context darf nicht leer sein
* @param messageId Engagelab messageId, darf nicht leer sein
* @param platform Hersteller (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
* @param platformMessageId Hersteller messageId, optional
*/
public static void reportNotificationOpened(Context context, String messageId, byte platform, String platformMessageId)
Beispielcode:
Bundle bundle = intent.getExtras();
String platformMessage = "";
// Huawei
if (intent.getData() != null) {
platformMessage = intent.getData().toString();
}
// Andere Hersteller
if (TextUtils.isEmpty(platformMessage) && intent.getExtras() != null) {
if (bundle.containsKey("JMessageExtra")) {
platformMessage = bundle.getString("JMessageExtra");
} else {
platformMessage = bundle.getString("MTMessageExtra");
}
}
if (TextUtils.isEmpty(platformMessage)) {
return;
}
JSONObject messageJson = new JSONObject(platformMessage);
tvMessage.setText(toLogString(messageJson));
// Auslesen
String messageId = messageJson.optString("msg_id");
byte platform = (byte) messageJson.optInt("rom_type");
String title = messageJson.optString("n_title");
String content = messageJson.optString("n_content");
// Meldet das Öffnen der Benachrichtigung (empfohlen für alle Hersteller, nur für Versionen < 4.0.0 erforderlich)
MTPushPrivatesApi.reportNotificationOpened(this, messageId, platform, "");
uploadPlatformToken
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
- Da der Upload per TCP erfolgt, muss die Langzeitverbindung erfolgreich aufgebaut sein, d. h. diese Schnittstelle nach dem Callback onConnectStatus mit true aufrufen.
- Wenn kein Engagelab-Herstellerpaket integriert ist, aber Engagelab Hersteller-Nachrichten pushen soll, bitte diese Schnittstelle aufrufen.
/**
* Hersteller-Token hochladen
*
* Upload erfolgt per TCP
*
* @param context darf nicht leer sein
* @param platform Hersteller (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
* @param token Vom Hersteller zurückgegebenes Token, darf nicht leer sein
* @param region Für internationale Versionen von Xiaomi/Oppo: "GLOBAL", sonst "NULL"
*/
public static void uploadPlatformToken(Context context, byte platform, String token, String region)
Beispielcode:
// Hersteller-Token melden, Hersteller: Xiaomi, Token: "MI-6476s-afs-afs-afaR-HT25"
MTPushPrivatesApi.uploadPlatformToken(context, MTPushPrivatesApi.PLATFORM_XIAOMI, "MI-6476s-afs-afs-afaR-HT25", "NULL");
clearPlatformToken
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
- Da der Upload per TCP erfolgt, muss die Langzeitverbindung erfolgreich aufgebaut sein, d. h. diese Schnittstelle nach dem Callback onConnectStatus mit true aufrufen.
- Wenn kein Engagelab-Herstellerpaket integriert ist, aber Engagelab Hersteller-Nachrichten pushen soll, bitte diese Schnittstelle aufrufen.
/**
* Token löschen. Nach dem Aufruf kann das Token nur noch über uploadPlatformToken gemeldet werden. Das SDK erfasst und meldet das Token nicht mehr automatisch. Nach einem Kaltstart wird es zurückgesetzt.
* Über das Callback onPlatformToken überwachen. Wenn platform -128 ist, war das Löschen erfolgreich.
*
* TCP-Verbindung erforderlich.
*
* @param context darf nicht leer sein
*/
public static void clearPlatformToken(Context context)
Beispielcode:
MTPushPrivatesApi.clearPlatformToken(context);
onFragmentResume
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
/**
* @param context darf nicht leer sein
* @param fragmentName Vollständiger Klassenname des Fragments (this.getClass().getCanonicalName())
*/
public static void onFragmentResume(Context context, String fragmentName)
onFragmentPause
- Bitte zuerst init aufrufen, sonst ist der Aufruf ungültig.
/**
* @param context darf nicht leer sein
* @param fragmentName Vollständiger Klassenname des Fragments (this.getClass().getCanonicalName())
*/
public static void onFragmentPause(Context context, String fragmentName)
Hinweise zur Verwendung: Da es vier Möglichkeiten gibt, ein Fragment in Android hinzuzufügen, muss jede Methode unterschiedlich behandelt werden. Nachfolgend finden Sie Erklärungen zur Steuerung der In-App-Anzeige für das jeweilige Fragment basierend auf diesen vier Methoden.
| Fragment-Verwendung | Kann Fragment-Lebenszyklus überwacht werden? | JPush Dynamic Display Page Interface Call Method |
|---|---|---|
| Methode 1: add/show/hide | Lebenszyklus kann nicht überwacht werden | Aufruf von onFragmentResume und onHiddenChanged im Fragment |
| Methode 2: ViewPager | Lebenszyklus kann nicht überwacht werden | Aufruf von setUserVisibleHint im Fragment |
| Methode 3: replace | Lebenszyklus kann überwacht werden | Aufruf der Lebenszyklusmethoden onResume und onPause im Fragment |
| Methode 4: attach/detach | Lebenszyklus kann überwacht werden | Aufruf der Lebenszyklusmethoden onResume und onPause im Fragment |
add/show/hide-Methode
1) Rufen Sie die dynamische Steuerungsschnittstelle in der onCreateView-Callbackfunktion des Fragments auf und übergeben Sie die erforderlichen Parameter. @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { String classname = this.getClass().getCanonicalName(); MTPushPrivatesApi.onFragmentResumed(MyApplication.gContext, classname); return inflater.inflate(R.layout.black_fragment, container, false); } 2) Rufen Sie die dynamische Steuerungsschnittstelle im onHiddenChanged-Callback des Fragments auf und übergeben Sie die erforderlichen Parameter. @Override public void onHiddenChanged(boolean hidden) { String classname = this.getClass().getCanonicalName(); if (!hidden) { // context sollte application context sein MTPushPrivatesApi.onFragmentResumed(MyApplication.gContext, classname); } else { // verstecken MTPushPrivatesApi.onFragmentPaused(MyApplication.gContext, classname); } super.onHiddenChanged(hidden); }1) Rufen Sie die dynamische Steuerungsschnittstelle in der onCreateView-Callbackfunktion des Fragments auf und übergeben Sie die erforderlichen Parameter. @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { String classname = this.getClass().getCanonicalName(); MTPushPrivatesApi.onFragmentResumed(MyApplication.gContext, classname); return inflater.inflate(R.layout.black_fragment, container, false); } 2) Rufen Sie die dynamische Steuerungsschnittstelle im onHiddenChanged-Callback des Fragments auf und übergeben Sie die erforderlichen Parameter. @Override public void onHiddenChanged(boolean hidden) { String classname = this.getClass().getCanonicalName(); if (!hidden) { // context sollte application context sein MTPushPrivatesApi.onFragmentResumed(MyApplication.gContext, classname); } else { // verstecken MTPushPrivatesApi.onFragmentPaused(MyApplication.gContext, classname); } super.onHiddenChanged(hidden); }Diesen Codeblock im schwebenden Fenster anzeigenViewPager-Methode
1) Rufen Sie die dynamische Steuerungsschnittstelle im setUserVisibleHint-Callback des Fragments auf und übergeben Sie die erforderlichen Parameter. @Override public void setUserVisibleHint(boolean isVisibleToUser) { String classname = this.getClass().getCanonicalName(); if (isVisibleToUser) { // application context übergeben MTPushPrivatesApi.onFragmentResumed(MyApplication.gContext, classname); } else { // verstecken MTPushPrivatesApi.onFragmentPause(MyApplication.gContext, classname); } super.setUserVisibleHint(isVisibleToUser); }1) Rufen Sie die dynamische Steuerungsschnittstelle im setUserVisibleHint-Callback des Fragments auf und übergeben Sie die erforderlichen Parameter. @Override public void setUserVisibleHint(boolean isVisibleToUser) { String classname = this.getClass().getCanonicalName(); if (isVisibleToUser) { // application context übergeben MTPushPrivatesApi.onFragmentResumed(MyApplication.gContext, classname); } else { // verstecken MTPushPrivatesApi.onFragmentPause(MyApplication.gContext, classname); } super.setUserVisibleHint(isVisibleToUser); }Diesen Codeblock im schwebenden Fenster anzeigenreplace- oder attach/detach-Methoden
Rufen Sie die dynamische Seitenkonfiguration im Lebenszyklus-Callback des hinzugefügten Fragments auf. @Override public void onResume() { // application context übergeben String classname = this.getClass().getCanonicalName(); MTPushPrivatesApi.onFragmentResumed(MyApplication.gContext, classname); super.onResume(); } @Override public void onPause() { String classname = this.getClass().getCanonicalName(); MTPushPrivatesApi.onFragmentPause(MyApplication.gContext, classname); super.onPause(); }Rufen Sie die dynamische Seitenkonfiguration im Lebenszyklus-Callback des hinzugefügten Fragments auf. @Override public void onResume() { // application context übergeben String classname = this.getClass().getCanonicalName(); MTPushPrivatesApi.onFragmentResumed(MyApplication.gContext, classname); super.onResume(); } @Override public void onPause() { String classname = this.getClass().getCanonicalName(); MTPushPrivatesApi.onFragmentPause(MyApplication.gContext, classname); super.onPause(); }Diesen Codeblock im schwebenden Fenster anzeigen
(Der Rest der Dokumentation, wie MTCommonReceiver, NotificationChannel-Konfiguration, NotificationMessage, CustomMessage, TagMessage, AliasMessage, PlatformTokenMessage, InAppMessage und Code bleibt im Original erhalten, da keine Übersetzung für diesen Teil angefordert wurde. Bitte geben Sie Bescheid, falls auch diese Abschnitte ins Deutsche übersetzt werden sollen.)

