คู่มือการผสานรวม SDK ของช่องทางผู้ผลิต
เอกสารนี้มีวัตถุประสงค์เพื่อแนะนำลูกค้าในการผสานรวม SDK ของช่องทางผู้ผลิตต่างๆ โดยใช้วิธีการผสานรวมอัตโนมัติเพื่อให้สามารถแจ้งเตือนแบบออฟไลน์ได้
สำหรับการดาวน์โหลด SDK โปรดดูที่ ดาวน์โหลดทรัพยากร สำหรับหมายเลขเวอร์ชัน SDK ล่าสุด โปรดดูที่ บันทึกการเปลี่ยนแปลง
ข้อกำหนดเบื้องต้น
- ได้ผสานรวมช่องทาง Engagelab แล้ว
- ก่อนการผสานรวม SDK ของผู้ผลิต คุณต้องสมัครพารามิเตอร์ช่องทางของผู้ผลิตที่เกี่ยวข้อง โปรดดูรายละเอียดใน คู่มือการสมัครพารามิเตอร์ช่องทางผู้ผลิต
ไฟล์ทรัพยากร
- วางไอคอนการแจ้งเตือนชื่อ
mtpush_notification_icon.pngไว้ในres/drawable/หากไม่ได้กำหนดค่า SDK จะใช้ไอคอนของแอปพลิเคชัน และในเวอร์ชัน Android ที่สูงกว่าอาจมีปัญหาในการแสดงผล
คู่มือการผสานรวมช่องทาง Xiaomi
กำหนดค่า mavenCentral Support
กำหนดค่า mavenCentral support ในไฟล์ gradle หลักของไดเรกทอรีรากของ Project (โครงการใหม่มักจะกำหนดค่าการสนับสนุนนี้โดยค่าเริ่มต้น)
Groovy (build.gradle):
buildscript {
repositories {
mavenCentral()
}
}
allprojects {
repositories {
mavenCentral()
}
}
Kotlin DSL (build.gradle.kts):
buildscript {
repositories {
mavenCentral()
}
}
allprojects {
repositories {
mavenCentral()
}
}
กำหนดค่าการพึ่งพา
ในส่วน dependencies ของไฟล์ gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:
Groovy (build.gradle):
dependencies {
// เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน SDK ของ Engagelab
implementation 'com.engagelab.plugin:mi:5.x.x'
}
Kotlin DSL (build.gradle.kts):
dependencies {
// เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน SDK ของ Engagelab
implementation("com.engagelab.plugin:mi:5.x.x")
}
กำหนดค่าพารามิเตอร์
ในส่วน defaultConfig ของไฟล์ gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:
Groovy (build.gradle):
manifestPlaceholders = [
// กำหนดตัวแปรในไฟล์ manifest.xml
XIAOMI_APPKEY : "MI-แอป Xiaomi ของคุณ APPID", // appkey ที่ลงทะเบียนบนแพลตฟอร์ม Xiaomi
XIAOMI_APPID : "MI-แอป Xiaomi ของคุณ APPKEY", // appid ที่ลงทะเบียนบนแพลตฟอร์ม Xiaomi
]
Kotlin DSL (build.gradle.kts):
manifestPlaceholders.putAll(mapOf(
// กำหนดตัวแปรในไฟล์ manifest.xml
"XIAOMI_APPKEY" to "MI-แอป Xiaomi ของคุณ APPID", // appkey ที่ลงทะเบียนบนแพลตฟอร์ม Xiaomi
"XIAOMI_APPID" to "MI-แอป Xiaomi ของคุณ APPKEY" // appid ที่ลงทะเบียนบนแพลตฟอร์ม Xiaomi
))
กำหนดค่าการป้องกันโค้ด
หากใช้ proguard ให้เพิ่มเนื้อหาต่อไปนี้ในไฟล์การกำหนดค่าเพื่อป้องกันการรายงานคำเตือนผิดพลาดที่อาจทำให้การคอมไพล์ไม่สำเร็จ:
-dontwarn com.xiaomi.push.**
-keep class com.xiaomi.push.** { *; }
การตรวจสอบความสำเร็จของการผสานรวม
หากการผสานรวมสำเร็จ จะมีการแสดงบันทึกดังนี้:
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
}
วิธีการทดสอบช่องทาง Xiaomi
- ไปที่ [EngageLab Console] -> [AppPush] -> [การตั้งค่าพื้นฐาน] -> [การตั้งค่าการผสานรวม] ใส่พารามิเตอร์: AppKey, AppID, AppSecret และคลิก "บันทึก"

- หลังจากปิดกระบวนการแอป ให้ทำการผลักดัน หากได้รับการผลักดัน แสดงว่าการผสานรวมช่องทางของผู้ผลิตสำเร็จ
หมายเหตุพิเศษสำหรับ Xiaomi Android 13 และสูงกว่า
ตามเอกสารของ Xiaomi อย่างเป็นทางการ Android 13 และสูงกว่าต้องการให้วิธีการเปิดตัวแอปพลิเคชันตรงกับตัวกรอง Intent อย่างแม่นยำเพื่อให้แน่ใจว่าแอปพลิเคชันทำงานได้อย่างถูกต้องบนอุปกรณ์ Xiaomi
โปรดดูรายละเอียดเพิ่มเติมในเอกสารของ Google เกี่ยวกับตัวกรอง Intent ใน Android 13 และสูงกว่า: เอกสารของ Google - Intent Filters
คำแนะนำสำหรับการทดสอบของนักพัฒนา:
นักพัฒนาสามารถตรวจสอบ "การเปลี่ยนแปลงความเข้ากันได้ของแอปพลิเคชัน" ในตัวเลือกนักพัฒนาบนอุปกรณ์ Xiaomi และเปิดใช้งานตัวเลือก ENFORCE_INTENTS_TO_MATCH_INTENT_FILTERS ระหว่างการทดสอบเพื่อให้แน่ใจว่าแอปทำงานได้อย่างถูกต้องในทุกกรณี
คู่มือการผสานรวมช่องทาง Huawei
กำหนดค่า mavenCentral Support
กำหนดค่า mavenCentral support และ agconnect dependency ในไฟล์ gradle หลักของไดเรกทอรีรากของ Project
Groovy (build.gradle):
buildscript {
repositories {
google()
mavenCentral()
maven {url 'https://developer.huawei.com/repo/'}
}
dependencies {
classpath 'com.huawei.agconnect:agcp:1.9.1.301'
}
}
allprojects {
repositories {
google()
mavenCentral()
maven {url 'https://developer.huawei.com/repo/'}
}
}
Kotlin DSL (build.gradle.kts):
buildscript {
repositories {
google()
mavenCentral()
maven { url = uri("https://developer.huawei.com/repo/") }
}
dependencies {
classpath("com.huawei.agconnect:agcp:1.9.1.301")
}
}
allprojects {
repositories {
google()
mavenCentral()
maven { url = uri("https://developer.huawei.com/repo/") }
}
}
(ตัวเลือก) หากใช้ gradle 8.0 ให้เพิ่มคำสั่งต่อไปนี้ในไฟล์ gradle.properties ระดับโปรเจกต์:
หมายเหตุ: การผสานรวมเวอร์ชันของ AGC plugin ที่ต่ำกว่า 1.9.1.300 ไม่รองรับความเข้ากันได้กับ gradle 8.0 คุณต้องดำเนินการขั้นตอนนี้
apmsInstrumentationEnabled=false
เพิ่ม Huawei Plugin
เพิ่ม apply plugin ที่ด้านล่างของไฟล์ build.gradle ของโมดูลแอปพลิเคชัน เพื่อเปิดใช้งาน gradle plugin:
Groovy (build.gradle):
apply plugin: 'com.huawei.agconnect'
Kotlin DSL (build.gradle.kts):
plugins {
id("com.huawei.agconnect")
}
กำหนดค่าการพึ่งพา
ในส่วน dependencies ของไฟล์ gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้ โดยเลือกเวอร์ชันล่าสุดตามการเผยแพร่ของ Huawei:
Groovy (build.gradle):
dependencies {
implementation 'com.huawei.hms:push:6.13.0.300'
// เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน SDK ของ AppPush
implementation 'com.engagelab.plugin:huawei:5.x.x'
}
Kotlin DSL (build.gradle.kts):
dependencies {
implementation("com.huawei.hms:push:6.13.0.300")
// เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน SDK ของ AppPush
implementation("com.engagelab.plugin:huawei:5.x.x")
}
กำหนดค่าไฟล์ agconnect-services.json
อ้างอิง คู่มือการสมัครพารามิเตอร์ช่องทางผู้ผลิต เพื่อรับไฟล์ agconnect-services.json และกำหนดค่าในไดเรกทอรี app

กำหนดค่าใบรับรองลายเซ็น
ในไฟล์ build.gradle ให้กำหนดค่าลายเซ็นที่ตรงกับใบรับรองลายนิ้วมือที่เพิ่มใน Huawei backend
บริการ HMS ต้องการให้แอปมีการลงนามเพื่อการลงทะเบียนที่สำเร็จ คุณสามารถรับใบรับรองลายนิ้วมือที่สอดคล้องกันได้โดยใช้ keytool -list -v -keystore keystorefileName ในเทอร์มินัล
Groovy (build.gradle):
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
}
}
Kotlin DSL (build.gradle.kts):
signingConfigs {
create("release") {
storeFile = file("release.keystore") // เส้นทางไปยังไฟล์ลายเซ็น
storePassword = "123456"
keyAlias = "android.keystore"
keyPassword = "123456"
}
}
buildTypes {
getByName("release") {
isMinifyEnabled = true
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
signingConfig = signingConfigs.getByName("release")
}
getByName("debug") {
isMinifyEnabled = false
signingConfig = signingConfigs.getByName("release")
}
}
กำหนดค่าการป้องกันโค้ด
หากใช้ proguard ให้เพิ่มเนื้อหาต่อไปนี้ในไฟล์การกำหนดค่าเพื่อป้องกันการรายงานคำเตือนผิดพลาดที่อาจทำให้การคอมไพล์ไม่สำเร็จ:
-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.**{*;}
หากนักพัฒนาใช้ AndResGuard ให้เพิ่ม AndResGuard whitelist ในไฟล์การกำหนดค่าการป้องกันโค้ด
"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*"
การตรวจสอบความสำเร็จของการผสานรวม
หากการผสานรวมสำเร็จ บันทึกจะปรากฏดังนี้:
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
}
วิธีการทดสอบช่องทาง Huawei
- ไปที่ [EngageLab Console] -> [AppPush] -> [Basic Settings] -> [Integration Settings] หน้าจอ ใส่พารามิเตอร์: AppID, AppSecret และคลิก "Save"
2. หลังจากปิดกระบวนการแอป ให้ทำการ push หากได้รับ push การผสานรวมช่องทางผู้ผลิตสำเร็จ
คู่มือการผสานรวมช่องทาง Meizu
การตั้งค่า mavenCentral Support
ในไฟล์ gradle หลักของไดเรกทอรี root ของ Project ให้ตั้งค่า mavenCentral support (โครงการใหม่มักจะตั้งค่าการสนับสนุนนี้โดยค่าเริ่มต้น)
Groovy (build.gradle):
buildscript {
repositories {
mavenCentral()
}
}
allprojects {
repositories {
mavenCentral()
}
}
Kotlin DSL (build.gradle.kts):
buildscript {
repositories {
mavenCentral()
}
}
allprojects {
repositories {
mavenCentral()
}
}
การตั้งค่าการพึ่งพา
ในส่วน dependencies ของไฟล์ gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:
Groovy (build.gradle):
dependencies {
// เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK
implementation 'com.engagelab.plugin:meizu:5.x.x'
// Meizu ตั้งแต่ SDK 5.2.0 ต้องเพิ่ม "com.engagelab.plugin:meizu_th_push" ก่อน 5.2.0 ไม่ต้องเพิ่มบรรทัดนี้
// เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK
implementation 'com.engagelab.plugin:meizu_th_push:5.2.0'
}
Kotlin DSL (build.gradle.kts):
dependencies {
// เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK
implementation("com.engagelab.plugin:meizu:5.x.x")
// Meizu ตั้งแต่ SDK 5.2.0 ต้องเพิ่ม "com.engagelab.plugin:meizu_th_push" ก่อน 5.2.0 ไม่ต้องเพิ่มบรรทัดนี้
// เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK
implementation("com.engagelab.plugin:meizu_th_push:5.2.0")
}
การตั้งค่าพารามิเตอร์
ในส่วน defaultConfig ของไฟล์ gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:
พารามิเตอร์สำหรับ Meizu ต้องมีคำนำหน้าด้วย "MZ-"
Groovy (build.gradle):
manifestPlaceholders = [
// ตั้งค่าตัวแปรในไฟล์ manifest.xml
MEIZU_APPKEY : "MZ-แอป Meizu ของคุณ APPKEY", // appkey ที่ลงทะเบียนในแพลตฟอร์ม Meizu
MEIZU_APPID : "MZ-แอป Meizu ของคุณ APPID", // appid ที่ลงทะเบียนในแพลตฟอร์ม Meizu
]
Kotlin DSL (build.gradle.kts):
manifestPlaceholders.putAll(mapOf(
// ตั้งค่าตัวแปรในไฟล์ manifest.xml
"MEIZU_APPKEY" to "MZ-แอป Meizu ของคุณ APPKEY", // appkey ที่ลงทะเบียนในแพลตฟอร์ม Meizu
"MEIZU_APPID" to "MZ-แอป Meizu ของคุณ APPID" // appid ที่ลงทะเบียนในแพลตฟอร์ม Meizu
))
การตั้งค่าการลบโค้ด
หากใช้ proguard ให้เพิ่มเนื้อหาต่อไปนี้ในไฟล์การตั้งค่าเพื่อป้องกันการรายงานคำเตือนที่ผิดพลาดซึ่งอาจทำให้การคอมไพล์ไม่สำเร็จ:
-dontwarn com.meizu.cloud.**
-keep class com.meizu.cloud.** { *; }
การตรวจสอบความสำเร็จของการผสานรวม
หากการผสานรวมสำเร็จ บันทึกจะปรากฏดังนี้:
D [MTMeizuBusiness] support meizu push
D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
platform=3,
token=DDI5c060475064d447b40670206756d73605705037205
region=NULL
isUserSettings=false
}
หากช่องทาง Meizu ไม่สามารถรับ token ได้ ให้ลองเพิ่ม android.enableR8 = false ใน gradle.properties เพื่อปิดใช้งาน R8
วิธีการทดสอบช่องทางผู้ผลิต Meizu
ไปที่ [EngageLab Console] -> [AppPush] -> [Basic Settings] -> [Integration Settings] หน้าจอ ใส่พารามิเตอร์: AppKey, AppID, AppSecret และคลิก "Save"

หลังจากปิดกระบวนการแอป ให้ทำการ push หากได้รับ push การผสานรวมช่องทางผู้ผลิตสำเร็จ
คู่มือการผสานรวมช่องทาง Vivo
การตั้งค่า mavenCentral Support
ในไฟล์ gradle หลักของไดเรกทอรี root ของ Project ให้ตั้งค่า mavenCentral support (โครงการใหม่มักจะตั้งค่าการสนับสนุนนี้โดยค่าเริ่มต้น)
Groovy (build.gradle):
buildscript {
repositories {
mavenCentral()
}
}
allprojects {
repositories {
mavenCentral()
}
}
Kotlin DSL (build.gradle.kts):
buildscript {
repositories {
mavenCentral()
}
}
allprojects {
repositories {
mavenCentral()
}
}
การตั้งค่าการพึ่งพา
ในส่วน dependencies ของไฟล์ gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:
Groovy (build.gradle):
dependencies{
// เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK
implementation 'com.engagelab.plugin:vivo:5.x.x'
}
Kotlin DSL (build.gradle.kts):
dependencies {
// เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK
implementation("com.engagelab.plugin:vivo:5.x.x")
}
การตั้งค่าพารามิเตอร์
ในส่วน defaultConfig ของไฟล์ gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:
Groovy (build.gradle):
manifestPlaceholders=[
VIVO_APPKEY : "แอป Vivo ของคุณ APPKEY", // appkey ที่ลงทะเบียนในแพลตฟอร์ม Vivo
VIVO_APPID : "แอป Vivo ของคุณ APPID", // appid ที่ลงทะเบียนในแพลตฟอร์ม Vivo
]
Kotlin DSL (build.gradle.kts):
manifestPlaceholders.putAll(mapOf(
"VIVO_APPKEY" to "แอป Vivo ของคุณ APPKEY", // appkey ที่ลงทะเบียนในแพลตฟอร์ม Vivo
"VIVO_APPID" to "แอป Vivo ของคุณ APPID" // appid ที่ลงทะเบียนในแพลตฟอร์ม Vivo
))
การตรวจสอบความสำเร็จของการผสานรวม
หากการผสานรวมสำเร็จ บันทึกจะปรากฏดังนี้:
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
}
การตั้งค่าการลบโค้ด
หากใช้ proguard ให้เพิ่มเนื้อหาต่อไปนี้ในไฟล์การตั้งค่าเพื่อป้องกันการรายงานคำเตือนที่ผิดพลาดซึ่งอาจทำให้การคอมไพล์ไม่สำเร็จ:
-dontwarn com.vivo.push.**
-keep class com.vivo.push.**{*; }
-keep class com.vivo.vms.**{*; }
วิธีการทดสอบช่องทาง Vivo
- ไปที่ [EngageLab Console] -> [AppPush] -> [Basic Settings] -> [Integration Settings] หน้าจอ ใส่พารามิเตอร์: AppKey, AppID, AppSecret และคลิก "Save"
2. หลังจากปิดกระบวนการแอป ให้ทำการ push หากได้รับ push การผสานรวมช่องทางผู้ผลิตสำเร็จ
หากแอป Vivo ยังไม่ได้วางจำหน่ายในร้าน เมื่อทดสอบ push ต้องเพิ่มอุปกรณ์ทดสอบในแพลตฟอร์ม push ของ Vivo และส่งผ่าน API โดยระบุพารามิเตอร์ push_mode
"options": {
"classification": 1,
"third_party_channel": {
"vivo": {
"pushMode": 1, // ไม่บังคับ เพิ่มเมื่อ 2020/09/21 สอดคล้องกับฟิลด์ pushMode ของ Vivo ค่าเต็มตัวคือ: “0” สำหรับ push แบบปกติ; “1” สำหรับ push แบบทดสอบ ค่าเริ่มต้นคือ 0
"distribution_new": "pns_mtpush"
}
}
}
คู่มือการผสานรวมช่องทาง OPPO
การตั้งค่า mavenCentral Support
ในไฟล์ gradle หลักของไดเรกทอรี root ของ Project ให้ตั้งค่า mavenCentral support (โครงการใหม่มักจะตั้งค่าการสนับสนุนนี้โดยค่าเริ่มต้น)
Groovy (build.gradle):
buildscript {
repositories {
mavenCentral()
}
}
allprojects {
repositories {
mavenCentral()
}
}
Kotlin DSL (build.gradle.kts):
buildscript {
repositories {
mavenCentral()
}
}
allprojects {
repositories {
mavenCentral()
}
}
การตั้งค่าการพึ่งพา
ในส่วน dependencies ของไฟล์ gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:
Groovy (build.gradle):
dependencies{
// เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK
implementation 'com.engagelab.plugin:oppo:5.x.x'
implementation 'com.engagelab.plugin:oppo_th_push:5.x.x'
// OPPO ต้องเพิ่มการพึ่งพาต่อไปนี้
implementation 'com.google.code.gson:gson:2.10.1'
implementation 'commons-codec:commons-codec:1.6'
implementation 'androidx.annotation:annotation:1.1.0'
}
Kotlin DSL (build.gradle.kts):
dependencies {
// เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK
implementation("com.engagelab.plugin:oppo:5.x.x")
implementation("com.engagelab.plugin:oppo_th_push:5.x.x")
// OPPO ต้องเพิ่มการพึ่งพาต่อไปนี้
implementation("com.google.code.gson:gson:2.10.1")
implementation("commons-codec:commons-codec:1.6")
implementation("androidx.annotation:annotation:1.1.0")
}
การตั้งค่าพารามิเตอร์
ในส่วน defaultConfig ของไฟล์ gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:
พารามิเตอร์ของ OPPO ต้องมีคำนำหน้าด้วย "OP-"
Groovy (build.gradle):
manifestPlaceholders=[
OPPO_APPKEY : "OP-แอป OPPO ของคุณ APPKEY", // appkey ที่ลงทะเบียนในแพลตฟอร์ม OPPO
OPPO_APPID : "OP-แอป OPPO ของคุณ APPID", // appid ที่ลงทะเบียนในแพลตฟอร์ม OPPO
OPPO_APPSECRET: "OP-แอป OPPO ของคุณ APPSECRET" // appsecret ที่ลงทะเบียนในแพลตฟอร์ม OPPO
]
Kotlin DSL (build.gradle.kts):
manifestPlaceholders.putAll(mapOf(
"OPPO_APPKEY" to "OP-แอป OPPO ของคุณ APPKEY", // appkey ที่ลงทะเบียนในแพลตฟอร์ม OPPO
"OPPO_APPID" to "OP-แอป OPPO ของคุณ APPID", // appid ที่ลงทะเบียนในแพลตฟอร์ม OPPO
"OPPO_APPSECRET" to "OP-แอป OPPO ของคุณ APPSECRET" // appsecret ที่ลงทะเบียนในแพลตฟอร์ม OPPO
))
การตั้งค่าการลบโค้ด
หากใช้ proguard ให้เพิ่มเนื้อหาต่อไปนี้ในไฟล์การตั้งค่าเพื่อป้องกันการรายงานคำเตือนที่ผิดพลาดซึ่งอาจทำให้การคอมไพล์ไม่สำเร็จ:
-dontwarn com.coloros.mcsdk.**
-keep class com.coloros.mcsdk.** { *; }
-dontwarn com.heytap.**
-keep class com.heytap.** { *; }
-dontwarn com.mcs.**
-keep class com.mcs.** { *; }
การตรวจสอบความสำเร็จของการผสานรวม
หากการผสานรวมสำเร็จ บันทึกจะปรากฏดังนี้:
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
}
วิธีการทดสอบช่องทาง OPPO
- ไปที่ [EngageLab Console] -> [AppPush] -> [Basic Settings] -> [Integration Settings] หน้า, ป้อนพารามิเตอร์: AppKey, AppID, AppSecret, MasterSecret และคลิก "Save"
2. หลังจากปิดกระบวนการแอปพลิเคชัน ให้ทำการ Push หากได้รับ Push การรวมช่องทางผู้ผลิตสำเร็จ
หากแอปยังไม่ได้วางจำหน่าย ต้องสมัครสิทธิ์ทดสอบ Push บนแพลตฟอร์ม OPPO Open Platform แต่ละแอปสามารถ push ข้อความช่องทางสาธารณะได้ 1000 ข้อความต่อวัน
คู่มือการรวมช่องทาง FCM
การตั้งค่าการสนับสนุน mavenCentral
ในไฟล์ gradle หลักของไดเรกทอรีรากของโปรเจกต์ ให้ตั้งค่าการสนับสนุน mavenCentral และการพึ่งพา google-services
Groovy (build.gradle):
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.google.gms:google-services:4.3.15'
}
}
allprojects {
repositories {
mavenCentral()
maven { url "https://maven.google.com" }
}
}
Kotlin DSL (build.gradle.kts):
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("com.google.gms:google-services:4.3.15")
}
}
allprojects {
repositories {
mavenCentral()
maven { url = uri("https://maven.google.com") }
}
}
เพิ่มปลั๊กอิน FCM
ที่ด้านล่างของไฟล์ build.gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มบรรทัด apply plugin เพื่อเปิดใช้งาน gradle plugin:
Groovy (build.gradle):
apply plugin: 'com.google.gms.google-services'
Kotlin DSL (build.gradle.kts):
plugins {
id("com.google.gms.google-services")
}
การตั้งค่าการพึ่งพา
ในส่วน dependencies ของไฟล์ gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:
Groovy (build.gradle):
dependencies {
// เวอร์ชันผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK
implementation 'com.engagelab.plugin:google:5.x.x'
implementation 'com.google.firebase:firebase-messaging:25.0.1'
}
Kotlin DSL (build.gradle.kts):
dependencies {
// เวอร์ชันผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK
implementation("com.engagelab.plugin:google:5.x.x")
implementation("com.google.firebase:firebase-messaging:25.0.1")
}
ในส่วน android ของไฟล์ gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:
Groovy (build.gradle):
android {
// google push ต้องการ java 1.8
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
Kotlin DSL (build.gradle.kts):
android {
// google push ต้องการ java 1.8
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
}
การตั้งค่าไฟล์ google-services.json
อ้างอิง [คู่มือการสมัครพารามิเตอร์ช่องทางผู้ผลิต](https://www.engagelab.com/th_TH/docs/app-push/developer-guide/client-sdk-reference/android-sdk/application-guide-for-manufacturer-channel-parameters#fcm-%E5%8F%82%E6%95%B0%E8%8E%B7%E5%8F%96) เพื่อรับไฟล์ google-services.json และตั้งค่าในไดเรกทอรี app

การตั้งค่าไอคอนการแจ้งเตือน FCM
เพิ่มการตั้งค่าต่อไปนี้ใน AndroidManifest.xml เพื่อตั้งค่าไอคอนการแจ้งเตือน FCM:
<meta-data android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@drawable/ไอคอนการแจ้งเตือนที่ต้องการกำหนด" />
การตรวจสอบความสำเร็จของการรวม
หากการรวมสำเร็จ จะมีการแสดงผลลัพธ์ใน log ดังนี้:
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
}
วิธีการทดสอบช่องทาง FCM
- เงื่อนไขเบื้องต้นสำหรับการทดสอบ:
- ระบบโทรศัพท์ต้องมี Google Play services เวอร์ชัน 17.3.4 หรือสูงกว่า
- การทดสอบต้องเชื่อมต่อกับ VPN ต่างประเทศและตรวจสอบให้แน่ใจว่าเครือข่ายโทรศัพท์สามารถเข้าถึง Google ได้
- หากใช้โทรศัพท์ในประเทศสำหรับการทดสอบ แอปต้องทำงานในพื้นหลัง; การทดสอบจะล้มเหลวหากแอปถูกปิด เนื่องจากผู้ผลิตในประเทศอาจปิดกระบวนการในพื้นหลัง
ไปที่ [EngageLab Console] -> [AppPush] -> [Basic Settings] -> [Integration Settings] หน้า, ป้อนพารามิเตอร์: App Secret และคลิก "Save"

หากทดสอบในประเทศจีน ต้องตั้งค่ารหัสประเทศหลังการเริ่มต้น
Java:
public class ExampleApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
MTCorePrivatesApi.configDebugMode(this, true);
// ตั้งค่ารหัสประเทศ -- ไม่ควรตั้งค่าในสภาพแวดล้อมการผลิต
MTGlobal.setCountryCode("US");
// เริ่มต้น
MTPushPrivatesApi.init(this);
}
}
Kotlin:
class ExampleApplication : Application() {
override fun onCreate() {
super.onCreate()
MTCorePrivatesApi.configDebugMode(this, true)
// ตั้งค่ารหัสประเทศ -- ไม่ควรตั้งค่าในสภาพแวดล้อมการผลิต
MTGlobal.setCountryCode("US")
// เริ่มต้น
MTPushPrivatesApi.init(this)
}
}
- ตรวจสอบใน backend AppPush ว่าบันทึกการ push เป็นช่องทาง FCM หรือช่องทาง Engagelab

คู่มือการรวมช่องทาง Honor
การตั้งค่าการสนับสนุน mavenCentral
ในไฟล์ gradle หลักของไดเรกทอรีรากของโปรเจกต์ ให้ตั้งค่าการสนับสนุน mavenCentral (โปรเจกต์ใหม่มักจะตั้งค่าการสนับสนุนนี้โดยค่าเริ่มต้น)
buildscript {
repositories {
...
mavenCentral()
...
}
}
allprojects {
repositories {
...
mavenCentral()
...
}
}
การตั้งค่าพารามิเตอร์และการพึ่งพา
ในไฟล์ build.gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:
Groovy (build.gradle):
defaultConfig {
...
manifestPlaceholders = [
...
HONOR_APPID : "แอป Honor ของคุณ APP ID", // APP ID ที่ลงทะเบียนในแพลตฟอร์ม Honor
...
]
...
}
dependencies {
...
// เวอร์ชันผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK
implementation 'com.engagelab.plugin:honor:5.x.x'
implementation 'com.engagelab.plugin:honor_th_push:5.x.x'
...
}
Kotlin DSL (build.gradle.kts):
defaultConfig {
// ...
manifestPlaceholders.putAll(mapOf(
// ...
"HONOR_APPID" to "แอป Honor ของคุณ APP ID", // APP ID ที่ลงทะเบียนในแพลตฟอร์ม Honor
// ...
))
// ...
}
dependencies {
// ...
// เวอร์ชันผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK
implementation("com.engagelab.plugin:honor:5.x.x")
implementation("com.engagelab.plugin:honor_th_push:5.x.x")
// ...
}
การตั้งค่าใบรับรองลายเซ็น
ในไฟล์ build.gradle ให้ตั้งค่าลายเซ็นที่ตรงกับใบรับรองลายนิ้วมือที่เพิ่มใน backend ของ Honor
บริการ Honor ต้องการให้แอปมีการลงนามเพื่อการลงทะเบียนที่สำเร็จ สามารถรับใบรับรองลายนิ้วมือที่ตรงกันได้ในเทอร์มินัลด้วยคำสั่ง keytool -list -v -keystore <เส้นทางสัมบูรณ์ของไฟล์ลายเซ็น> หากไม่มีไฟล์ลายเซ็นหรือรหัสผ่านคีย์ สามารถใช้คำสั่ง keytool -list -printcert -jarfile <เส้นทางสัมบูรณ์ของไฟล์ Apk> ในเทอร์มินัลเพื่อรับใบรับรองลายนิ้วมือได้
การตรวจสอบความสำเร็จของการรวม
หากการรวมสำเร็จ จะมีการแสดงผลลัพธ์ใน log ดังนี้:
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
}
การตั้งค่าการปกปิดโค้ด
หากใช้ proguard ให้เพิ่มเนื้อหาต่อไปนี้ในไฟล์การตั้งค่าเพื่อป้องกันการรายงานคำเตือนที่ผิดพลาดซึ่งอาจทำให้การคอมไพล์ล้มเหลว:
-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.hihonor.push.**{*;}
วิธีการทดสอบช่องทาง Honor
- ไปที่ [EngageLab Console] -> [AppPush] -> [Basic Settings] -> [Integration Settings] หน้า, ป้อนพารามิเตอร์: App ID, Client ID, Client Secret, App Secret และคลิก "Save"

- หลังจากปิดกระบวนการแอปพลิเคชัน ให้ทำการ Push หากได้รับ Push การรวมช่องทางผู้ผลิตสำเร็จ
วิธีการรายงานการแจ้งเตือนของผู้ผลิตโดยไม่ต้องรวม SDK ของผู้ผลิตแต่ยังคงใช้ EngageLab เพื่อ Push ข้อความของผู้ผลิต
/**
* รายงานการแจ้งเตือนช่องทางผู้ผลิตที่มาถึง
*
* รายงานผ่าน http/https
*
* @param context ต้องไม่เป็น null
* @param messageId EngageLab message id, ต้องไม่เป็น null
* @param platform ผู้ผลิต, ค่า (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 8:google)
* @param platformMessageId message id ของผู้ผลิต, สามารถเป็น null ได้
*/
public static void reportNotificationArrived(Context context, String messageId, byte platform, String platformMessageId)
/**
* รายงานการคลิกการแจ้งเตือนช่องทางผู้ผลิต
*
* รายงานผ่าน http/https
*
* @param context ต้องไม่เป็น null
* @param messageId EngageLab message id, ต้องไม่เป็น null
* @param platform ผู้ผลิต, ค่า (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
* @param platformMessageId message id ของผู้ผลิต, สามารถเป็น null ได้
*/
public static void reportNotificationClicked(Context context, String messageId, byte platform, String platformMessageId)
/**
* รายงานการลบการแจ้งเตือนช่องทางผู้ผลิต
*
* รายงานผ่าน http/https
*
* @param context ต้องไม่เป็น null
* @param messageId EngageLab message id, ต้องไม่เป็น null
* @param platform ผู้ผลิต, ค่า (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
* @param platformMessageId message id ของผู้ผลิต, สามารถเป็น null ได้
*/
public static void reportNotificationDeleted(Context context, String messageId, byte platform, String platformMessageId)
/**
* รายงานการเปิดการแจ้งเตือนช่องทางผู้ผลิต
*
* รายงานผ่าน http/https
*
* @param context ต้องไม่เป็น null
* @param messageId EngageLab message id, ต้องไม่เป็น null
* @param platform ผู้ผลิต, ค่า (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
* @param platformMessageId message id ของผู้ผลิต, สามารถเป็น null ได้
*/
public static void reportNotificationOpened(Context context, String messageId, byte platform, String platformMessageId)
/**
* อัปโหลด token ของผู้ผลิต
*
* ต้องเรียกหลังจากการเชื่อมต่อ EngageLab long connection สำเร็จ มิฉะนั้นจะไม่ถูกต้อง สถานะการเชื่อมต่อ long connection สำเร็จเมื่อ `MTCommonReceiver.onConnectStatus` callback ส่งคืนค่า true
*
* อัปโหลดผ่าน TCP
*
* @param context ต้องไม่เป็น null
* @param platform ผู้ผลิต, ค่า (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
* @param token token ที่ส่งคืนโดยผู้ผลิต, ต้องไม่เป็น null
*/
public static void uploadPlatformToken(Context context, byte platform, String token)
