Panduan Integrasi SDK Channel Pabrikan
Dokumen ini bertujuan memandu pelanggan dalam integrasi SDK dari berbagai channel pabrikan menggunakan metode integrasi otomatis untuk mendukung notifikasi push offline.
Untuk mengunduh SDK, silakan kunjungi Resource Download. Untuk melihat versi SDK terbaru, cek Changelog.
Prasyarat
- Channel EngageLab sudah terintegrasi.
- Sebelum mengintegrasikan SDK pabrikan, Anda perlu mengajukan parameter channel pabrikan terkait. Lihat Panduan Pengajuan Parameter Channel Pabrikan untuk detailnya.
Berkas Sumber Daya
- Letakkan ikon notifikasi bernama
mtpush_notification_icon.pngdi bawahres/drawable/. Jika tidak dikonfigurasi, SDK akan menggunakan ikon aplikasi, dan pada Android versi tinggi bisa terjadi masalah tampilan.
Panduan Integrasi Channel Xiaomi
Konfigurasi mavenCentral
Pastikan dukungan mavenCentral sudah ada di file gradle utama proyek (umumnya sudah default).
buildscript {
repositories {
mavenCentral()
}
}
allprojects {
repositories {
mavenCentral()
}
}
Dependensi
Pada dependencies di file gradle modul aplikasi, tambahkan:
dependencies {
// Versi pabrikan harus sama dengan versi SDK EngageLab
implementation 'com.engagelab.plugin:mi:5.x.x'
}
Parameter
Pada bagian defaultConfig di file gradle modul aplikasi, tambahkan:
manifestPlaceholders = [
XIAOMI_APPKEY : "MI-APPID aplikasi Xiaomi Anda", // appkey dari platform Xiaomi
XIAOMI_APPID : "MI-APPKEY aplikasi Xiaomi Anda", // appid dari platform Xiaomi
]
Proguard
Jika menggunakan proguard, tambahkan:
-dontwarn com.xiaomi.push.**
-keep class com.xiaomi.push.** { *; }
Validasi Integrasi
Jika berhasil, log akan menampilkan:
D [MTMiBusiness] support xiaomi push
D [MTMiBusiness] onTokenSuccess:get token is ...
D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { ... }
Pengujian Channel Xiaomi
- Masuk ke [EngageLab Console] -> [AppPush] -> [Pengaturan Dasar] -> [Pengaturan Integrasi], masukkan parameter AppKey, AppID, AppSecret, lalu klik "Simpan".
- Setelah aplikasi dimatikan, lakukan push. Jika push diterima, integrasi berhasil.
Catatan Xiaomi Android 13+
- Android 13+ mengharuskan intent filter aplikasi sesuai agar berjalan dengan benar di Xiaomi.
- Developer disarankan mengaktifkan ENFORCE_INTENTS_TO_MATCH_INTENT_FILTERS di opsi pengembang Xiaomi saat pengujian.
Panduan Integrasi Channel Huawei
Konfigurasi mavenCentral
Tambahkan pada file gradle utama:
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/'}
}
}
Jika menggunakan gradle 8.0, tambahkan di gradle.properties:
apmsInstrumentationEnabled=false
Tambahkan Plugin Huawei
Di bagian bawah file build.gradle modul aplikasi:
apply plugin: 'com.huawei.agconnect'
Dependensi
Tambahkan di dependencies:
dependencies {
implementation 'com.huawei.hms:push:6.13.0.300'
implementation 'com.engagelab.plugin:huawei:5.x.x'
}
File agconnect-services.json
Lihat Panduan Pengajuan Parameter Channel Pabrikan untuk mendapatkan file ini dan letakkan di direktori app.
Sertifikat Tanda Tangan
Konfigurasikan tanda tangan sesuai fingerprint yang didaftarkan di backend Huawei.
signingConfigs {
release {
storeFile file("release.keystore")
storePassword "123456"
keyAlias "android.keystore"
keyPassword "123456"
}
}
buildTypes {
release {
minifyEnabled true
proguardFiles 'proguard-rules.pro'
signingConfig signingConfigs.release
}
debug{
minifyEnabled false
signingConfig signingConfigs.release
}
}
Proguard
Tambahkan:
-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.**{*;}
Jika menggunakan AndResGuard, tambahkan whitelist sesuai kebutuhan.
Validasi Integrasi
Jika berhasil, log akan menampilkan:
D [MTHuaweiBusiness] support huawei push
D [MTHuaweiBusiness] onTokenSuccess:get token is ...
D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { ... }
Pengujian Channel Huawei
- Masuk ke [EngageLab Console] -> [AppPush] -> [Pengaturan Dasar] -> [Pengaturan Integrasi], masukkan parameter AppID, AppSecret, lalu klik "Simpan".
- Setelah aplikasi dimatikan, lakukan push. Jika push diterima, integrasi berhasil.
Panduan Integrasi Channel Meizu
Konfigurasi mavenCentral
Pastikan sudah ada di file gradle utama.
Dependensi
Tambahkan di dependencies:
dependencies {
implementation 'com.engagelab.plugin:meizu:5.x.x'
implementation 'com.engagelab.plugin:meizu_th_push:5.2.0'
}
Parameter
Tambahkan di defaultConfig:
manifestPlaceholders = [
MEIZU_APPKEY : "MZ-APPKEY aplikasi Meizu Anda",
MEIZU_APPID : "MZ-APPID aplikasi Meizu Anda",
]
Proguard
Tambahkan:
-dontwarn com.meizu.cloud.**
-keep class com.meizu.cloud.** { *; }
Validasi Integrasi
Jika berhasil, log akan menampilkan:
D [MTMeizuBusiness] support meizu push
D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { ... }
Jika gagal dapatkan token, coba tambahkan android.enableR8 = false di gradle.properties.
Pengujian Channel Meizu
- Masuk ke [EngageLab Console] -> [AppPush] -> [Pengaturan Dasar] -> [Pengaturan Integrasi], masukkan parameter AppKey, AppID, AppSecret, lalu klik "Simpan".
- Setelah aplikasi dimatikan, lakukan push. Jika push diterima, integrasi berhasil.
Panduan Integrasi Channel Vivo
Konfigurasi mavenCentral
Pastikan sudah ada di file gradle utama.
Dependensi
Tambahkan di dependencies:
dependencies{
implementation 'com.engagelab.plugin:vivo:5.x.x'
}
Parameter
Tambahkan di defaultConfig:
manifestPlaceholders=[
VIVO_APPKEY : "APPKEY aplikasi Vivo Anda",
VIVO_APPID : "APPID aplikasi Vivo Anda",
]
Validasi Integrasi
Jika berhasil, log akan menampilkan:
D [MTVivoBusiness] support vivo push
D [MTVivoBusiness] getRegId onTokenSuccess:get token is ...
D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { ... }
Proguard
Tambahkan:
-dontwarn com.vivo.push.**
-keep class com.vivo.push.**{*; }
-keep class com.vivo.vms.**{*; }
Pengujian Channel Vivo
- Masuk ke [EngageLab Console] -> [AppPush] -> [Pengaturan Dasar] -> [Pengaturan Integrasi], masukkan parameter AppKey, AppID, AppSecret, lalu klik "Simpan".
- Setelah aplikasi dimatikan, lakukan push. Jika push diterima, integrasi berhasil.
Jika Vivo tidak tersedia di pasar, tambahkan perangkat uji di platform push Vivo dan gunakan API dengan
push_modetertentu.
Panduan Integrasi Channel OPPO
Konfigurasi mavenCentral
Pastikan sudah ada di file gradle utama.
Dependensi
Tambahkan di dependencies:
dependencies{
implementation 'com.engagelab.plugin:oppo:5.x.x'
implementation 'com.engagelab.plugin:oppo_th_push:5.x.x'
implementation 'com.google.code.gson:gson:2.10.1'
implementation 'commons-codec:commons-codec:1.6'
implementation 'androidx.annotation:annotation:1.1.0'
}
Parameter
Tambahkan di defaultConfig:
manifestPlaceholders=[
OPPO_APPKEY : "OP-APPKEY aplikasi OPPO Anda",
OPPO_APPID : "OP-APPID aplikasi OPPO Anda",
OPPO_APPSECRET: "OP-APPSECRET aplikasi OPPO Anda"
]
Proguard
Tambahkan:
-dontwarn com.coloros.mcsdk.**
-keep class com.coloros.mcsdk.** { *; }
-dontwarn com.heytap.**
-keep class com.heytap.** { *; }
-dontwarn com.mcs.**
-keep class com.mcs.** { *; }
Validasi Integrasi
Jika berhasil, log akan menampilkan:
D [MTOppoBusiness] support oppo push
D [MTOppoBusiness] onTokenSuccess:get token is ...
D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { ... }
Pengujian Channel OPPO
- Masuk ke [EngageLab Console] -> [AppPush] -> [Pengaturan Dasar] -> [Pengaturan Integrasi], masukkan parameter AppKey, AppID, AppSecret, MasterSecret, lalu klik "Simpan".
- Setelah aplikasi dimatikan, lakukan push. Jika push diterima, integrasi berhasil.
Jika aplikasi belum tersedia, pengujian memerlukan izin push uji di platform OPPO. Setiap aplikasi dapat melakukan push pesan publik hingga 1000 kali per hari.
Panduan Integrasi Channel FCM
Konfigurasi mavenCentral
Tambahkan pada file gradle utama dan dependensi google-services:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.google.gms:google-services:4.3.15'
}
}
allprojects {
repositories {
mavenCentral()
maven { url "https://maven.google.com" }
}
}
Plugin FCM
Tambahkan di bawah file build.gradle modul aplikasi:
apply plugin: 'com.google.gms.google-services'
Dependensi
Tambahkan di dependencies:
dependencies {
implementation 'com.engagelab.plugin:google:5.x.x'
implementation 'com.google.firebase:firebase-messaging:25.0.0'
}
Pada bagian android:
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
File google-services.json
Lihat Panduan Pengajuan Parameter Channel Pabrikan untuk mendapatkan file ini dan letakkan di direktori app.
Ikon Notifikasi FCM
Tambahkan di AndroidManifest.xml:
<meta-data android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@drawable/nama_ikon_notifikasi_anda" />
Validasi Integrasi
Jika berhasil, log akan menampilkan:
D [MTGoogleBusiness] support google push
D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { ... }
Pengujian Channel FCM
Prasyarat:
- Sistem ponsel harus memiliki Google Play services versi 17.3.4 ke atas.
- Perlu VPN luar negeri dan jaringan bisa akses Google.
- Jika pakai ponsel dalam negeri, aplikasi harus tetap berjalan di background.
Masuk ke [EngageLab Console] -> [AppPush] -> [Pengaturan Dasar] -> [Pengaturan Integrasi], masukkan parameter App Secret, lalu klik "Simpan".
Jika pengujian di Tiongkok, atur kode negara setelah inisialisasi:
MTCorePrivatesApi.configDebugMode(this, true);
MTGlobal.setCountryCode("US");
MTPushPrivatesApi.init(this);
- Di backend AppPush, cek apakah push dikirim lewat channel FCM atau EngageLab.
Panduan Integrasi Channel Honor
Konfigurasi mavenCentral
Pastikan sudah ada di file gradle utama.
Parameter & Dependensi
Pada file build.gradle modul proyek:
defaultConfig {
manifestPlaceholders = [
HONOR_APPID : "APP ID aplikasi Honor Anda",
]
}
dependencies {
implementation 'com.engagelab.plugin:honor:5.x.x'
implementation 'com.engagelab.plugin:honor_th_push:5.x.x'
}
Sertifikat Tanda Tangan
Konfigurasikan tanda tangan sesuai fingerprint yang didaftarkan di backend Honor.
Validasi Integrasi
Jika berhasil, log akan menampilkan:
D [MTHonorBusiness] support honor push
D [MTHonorBusiness] onTokenSuccess:get token is ...
D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { ... }
Proguard
Tambahkan:
-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.hihonor.push.**{*;}
Pengujian Channel Honor
- Masuk ke [EngageLab Console] -> [AppPush] -> [Pengaturan Dasar] -> [Pengaturan Integrasi], masukkan parameter App ID, Client ID, Client Secret, App Secret, lalu klik "Simpan".
- Setelah aplikasi dimatikan, lakukan push. Jika push diterima, integrasi berhasil.
Cara Melaporkan Notifikasi Pabrikan Tanpa Integrasi SDK Pabrikan
/**
* Melaporkan kedatangan notifikasi channel pabrikan
* @param context Tidak boleh null
* @param messageId ID pesan EngageLab, tidak boleh null
* @param platform Pabrikan (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 8:google)
* @param platformMessageId ID pesan pabrikan, boleh null
*/
public static void reportNotificationArrived(Context context, String messageId, byte platform, String platformMessageId)
/**
* Melaporkan klik notifikasi channel pabrikan
* @param context Tidak boleh null
* @param messageId ID pesan EngageLab, tidak boleh null
* @param platform Pabrikan (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
* @param platformMessageId ID pesan pabrikan, boleh null
*/
public static void reportNotificationClicked(Context context, String messageId, byte platform, String platformMessageId)
/**
* Melaporkan penghapusan notifikasi channel pabrikan
* @param context Tidak boleh null
* @param messageId ID pesan EngageLab, tidak boleh null
* @param platform Pabrikan (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
* @param platformMessageId ID pesan pabrikan, boleh null
*/
public static void reportNotificationDeleted(Context context, String messageId, byte platform, String platformMessageId)
/**
* Melaporkan pembukaan notifikasi channel pabrikan
* @param context Tidak boleh null
* @param messageId ID pesan EngageLab, tidak boleh null
* @param platform Pabrikan (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
* @param platformMessageId ID pesan pabrikan, boleh null
*/
public static void reportNotificationOpened(Context context, String messageId, byte platform, String platformMessageId)
/**
* Upload token pabrikan
* Harus dipanggil setelah koneksi panjang EngageLab berhasil (onConnectStatus true).
* @param context Tidak boleh null
* @param platform Pabrikan (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
* @param token Token dari pabrikan, tidak boleh null
*/
public static void uploadPlatformToken(Context context, byte platform, String token)










