MTPush-API
MTCorePrivatesApi
- ใช้สำหรับการตั้งค่าข้อมูล
- ทุกเมธอดต้องถูกเรียกในกระบวนการหลัก ห้ามตรวจสอบกระบวนการก่อนเรียกเมธอดเพื่อวางไว้ในกระบวนการย่อย มิฉะนั้นจะเกิดข้อผิดพลาดในการเรียกใช้
configAppKey
- ต้องเรียกในเมธอด Application.onCreate()
- กรุณาเรียกก่อน init
/**
* ตั้งค่าคีย์แอปพลิเคชัน โดยไม่ใช้การตั้งค่าใน AndroidManifest.xml
*
* ต้องเรียกในเมธอด Application.onCreate()
* กรุณาเรียกก่อน [init](#init)
*
* @param context ต้องไม่เป็น null
* @param appKey ต้องไม่เป็น null
*/
Public static void configAppKey (Context context, String appKey)
ตัวอย่างโค้ด
MTCorePrivatesApi.configAppKey(this, "your appkey");
configAppChannel
- ต้องเรียกในเมธอด Application.onCreate()
- กรุณาเรียกก่อน init
/**
* ตั้งค่าช่องทางแอปพลิเคชัน โดยไม่ใช้การตั้งค่าใน AndroidManifest.xml
* ต้องเรียกในเมธอด Application.onCreate()
* ต้องเรียกใช้ก่อน init และต้องใช้ใน Application.onCreate
*
* @param context ต้องไม่เป็น null
* @param appChannel ต้องไม่เป็น null
*/
public static void configAppChannel(Context context, String appChannel)
ตัวอย่างโค้ด:
MTCorePrivatesApi.configAppChannel(this,"your_appChannel");
configAppSiteName
- ต้องเรียกในเมธอด Application.onCreate()
- กรุณาเรียกก่อน init
/**
* ตั้งค่าชื่อไซต์ศูนย์ข้อมูล โดยไม่ใช้การตั้งค่าใน AndroidManifest.xml
* โหนดที่ใช้งานได้ในปัจจุบันคือ Singapore, USA_Virginia, DEU_Frankfurt และ HongKong
* ต้องเรียกในเมธอด Application.onCreate()
* กรุณาเรียกก่อน [init](#init)
*
* @param context ต้องไม่เป็น null
* @param appSiteName ต้องไม่เป็น null
*/
Public static void configAppSiteName (Context context, String appSiteName)
ตัวอย่างโค้ด
MTCorePrivatesApi.configAppSiteName(this, "Your Platform Data Center Site Name");
configHeartbeatInterval
- ต้องเรียกในเมธอด Application.onCreate()
- กรุณาเรียกก่อน init
/**
* ตั้งค่าช่วงเวลา Heartbeat
*
* ต้องเรียกในเมธอด Application.onCreate()
*
* @param context ต้องไม่เป็น null
* @param heartbeatInterval หน่วยเวลาเป็นมิลลิวินาที ต้องมากกว่า 0 ค่าเริ่มต้นคือ 4 นาที 50 วินาที
*/
public static void configHeartbeatInterval(Context context, long heartbeatInterval)
ตัวอย่างโค้ด
- ตัวอย่างตั้งค่าช่วงเวลา Heartbeat เป็น 3 นาที
MTCorePrivatesApi.configHeartbeatInterval(this,3*60*1000);
configConnectRetryCount
- ต้องเรียกในเมธอด Application.onCreate()
- กรุณาเรียกก่อน init
/**
* ตั้งค่าจำนวนครั้งในการลองเชื่อมต่อใหม่
*
* ต้องเรียกในเมธอด Application.onCreate()
*
* @param context ต้องไม่เป็น null
* @param connectRetryCount จำนวนครั้งที่ลองใหม่ ค่าเริ่มต้นคือ 3 อย่างน้อย 3 ครั้ง
*/
public static void configConnectRetryCount(Context context, int connectRetryCount)
ตัวอย่างโค้ด
- ตัวอย่างตั้งค่าจำนวนครั้งลองใหม่เป็น 10 ครั้ง
MTCorePrivatesApi.configConnectRetryCount(this,10);
setTcpSSl
- ต้องเรียกในเมธอด Application.onCreate()
- กรุณาเรียกก่อน init
/**
* ตั้งค่าการเข้ารหัสการเชื่อมต่อแบบยาว ค่าเริ่มต้นคือไม่เข้ารหัส
*
* ต้องเรียกในเมธอด Application.onCreate()
*
* @param isSSL true เข้ารหัส, false ไม่เข้ารหัส
*/
public static void setTcpSSl(boolean isSSL)
ตัวอย่างโค้ด
- ตัวอย่างตั้งค่าเป็นเข้ารหัส
MTCorePrivatesApi.setTcpSSl(true);
configDebugMode
- ต้องเรียกในเมธอด Application.onCreate()
- กรุณาเรียกก่อน init
- รูปแบบล็อกของ Engagelab ค้นหา "ENGAGELAB-PRIVATES"
- Engagelab จะพิมพ์ล็อกในกระบวนการหลักและกระบวนการย่อยแยกกัน
/**
* ตั้งค่าการทำงานในโหมดดีบัก โหมดดีบักจะพิมพ์ล็อกที่ละเอียดมากขึ้น
*
* ต้องเรียกในเมธอด Application.onCreate()
*
* @param context ต้องไม่เป็น null
* @param enable เป็นโหมดดีบักหรือไม่, true เป็นโหมดดีบัก, false ไม่เป็นโหมดดีบัก
*/
public static void configDebugMode(Context context, boolean enable)
ตัวอย่างโค้ด
- sdk ทำงานในสองกระบวนการ กระบวนการหลักและกระบวนการย่อย ชื่อกระบวนการย่อยคือชื่อคุณสมบัติ process ของบริการย่อย MTCommonService
- แท็กล็อกของ sdk คือ "ENGAGELAB-PRIVATES"
- ล็อกที่เกี่ยวข้องกับ udp/tcp/http จะอยู่ในกระบวนการย่อย
- ดังนั้น หากไม่สามารถส่งข้อความได้ กรุณาเปิดโหมดดีบักก่อน แล้วไปที่กระบวนการย่อยเพื่อรับล็อกที่มีแท็ก "ENGAGELAB-PRIVATES" และส่งให้ฝ่ายสนับสนุนทางเทคนิคเพื่อวิเคราะห์
// แนะนำให้ตั้งค่าเป็น true เมื่อแอปยังไม่ออนไลน์ เพื่อความสะดวกในการรวม
MTCorePrivatesApi.configDebugMode(context.getApplicationContext(), true);
// แนะนำให้ตั้งค่าเป็น false เมื่อแอปออนไลน์แล้ว
MTCorePrivatesApi.configDebugMode(context.getApplicationContext(), false);
configSM4
- ต้องเรียกในเมธอด Application.onCreate()
- กรุณาเรียกก่อน init
/**
* ตั้งค่าการใช้การเข้ารหัส SM4
*
* @param context ต้องไม่เป็น null
*/
public static void configSM4(Context context)
ตัวอย่างโค้ด
// เปิดใช้งานการเข้ารหัส SM4 หากไม่ได้เรียกใช้ จะใช้วิธีการเข้ารหัสเริ่มต้น
MTCorePrivatesApi.configSM4(context.getApplicationContext());
getUserId
เมื่อค่าที่ส่งกลับเป็น null ต้องตรวจสอบว่าตั้งค่าสภาพแวดล้อมและเรียกใช้การเริ่มต้นหรือไม่
หากตรวจสอบการตั้งค่าถูกต้อง อาจยังอยู่ในกระบวนการเชื่อมต่อ สามารถรับได้เมื่อ onConnectStatus ส่งกลับค่า true
/**
* รับ userId ของอุปกรณ์ปัจจุบัน ซึ่งเป็นตัวระบุเฉพาะของ Engagelab สามารถใช้สำหรับการส่งข้อความ
*
* @param context ต้องไม่เป็น null
* @return userId
*/
public static String getUserId(Context context)
ตัวอย่างโค้ด
String userId = MTCorePrivatesApi.getUserId(context);
getRegistrationId
เมื่อค่าที่ส่งกลับเป็น null ต้องตรวจสอบว่าตั้งค่าสภาพแวดล้อมและเรียกใช้การเริ่มต้นหรือไม่
หากตรวจสอบการตั้งค่าถูกต้อง อาจยังอยู่ในกระบวนการเชื่อมต่อ สามารถรับได้เมื่อ onConnectStatus ส่งกลับค่า true
/**
* รับ registrationId ของอุปกรณ์ปัจจุบัน ซึ่งเป็นตัวระบุเฉพาะของ Engagelab สามารถใช้สำหรับการส่งข้อความ
*
* @param context ต้องไม่เป็น null
* @return registrationId
*/
public static String getRegistrationId(Context context)
ตัวอย่างโค้ด
String registrationId = MTCorePrivatesApi.getRegistrationId(context);
setEnableResetOnDeviceChange
- ต้องเรียกใช้ในเมธอด Application.onCreate()
- กรุณาเรียกใช้ก่อน init
- ค่าเริ่มต้นคือ false (ปิดใช้งาน)
/**
* กำหนดค่าฟังก์ชันการย้ายอุปกรณ์
* หากเปิดใช้งาน เมื่อเปลี่ยนรุ่นอุปกรณ์ ข้อมูลรหัสการลงทะเบียนและ UID ในเครื่องจะถูกล้างและลงทะเบียนใหม่
* ค่าเริ่มต้นคือ false
*
* @param context ต้องไม่เป็น null
* @param enable เปิดใช้งานการย้ายอุปกรณ์หรือไม่ true เพื่อเปิดใช้งาน, false เพื่อปิดใช้งาน
*/
public static void setEnableResetOnDeviceChange(Context context, boolean enable)
ตัวอย่างโค้ด:
- เมื่อเปลี่ยนรุ่นอุปกรณ์ (เช่น การแฟลชอุปกรณ์, การเปลี่ยนอุปกรณ์ ฯลฯ) ข้อมูลการลงทะเบียนที่แคชไว้ในเครื่องจะถูกล้างโดยอัตโนมัติ
// เปิดใช้งานฟังก์ชันการย้ายอุปกรณ์
MTCorePrivatesApi.setEnableResetOnDeviceChange(this, true);
// ปิดใช้งานฟังก์ชันการย้ายอุปกรณ์ (สถานะเริ่มต้น)
MTCorePrivatesApi.setEnableResetOnDeviceChange(this, false);
MTPushPrivatesApi
- ใช้สำหรับฟังก์ชันการแจ้งเตือนเป็นหลัก
- ทุกเมธอดต้องถูกเรียกในกระบวนการหลัก กรุณาอย่าตรวจสอบกระบวนการก่อนเรียกเมธอดและวางไว้ในกระบวนการย่อย มิฉะนั้นการเรียกจะผิดพลาด
configOldPushVersion
- หากเวอร์ชัน
tag: V3.5.4-newportal-20210823-gamma.57
ยังไม่ได้อัปเกรดในระบบหลังบ้าน ฝั่งหน้าต้องเรียกใช้เมธอดนี้ มิฉะนั้นจะมีปัญหาในการคลิกแจ้งเตือนเพื่อกระโดดไปยังหน้าอื่น- เรียกใช้ในเมธอด Application.onCreate()
- กรุณาเรียกใช้ก่อน init
/**
* กำหนดค่าเวอร์ชันการแจ้งเตือนเป็น 3.9.X
*
* @param context ต้องไม่เป็นค่าว่าง
*/
public static void configOldPushVersion(Context context)
ตัวอย่างโค้ดดังนี้:
public class ExampleApplication extends Application {
@Override
public void onCreate() {
// เปิดโหมดดีบัก
MTCorePrivatesApi.configDebugMode(context.getApplicationContext(), true);
// ใช้เวอร์ชันเก่าของการแจ้งเตือนเพื่อคลิกกระโดด
MTPushPrivatesApi.configOldPushVersion(context.getApplicationContext());
// การเริ่มต้น
MTPushPrivatesApi.init(context.getApplicationContext());
}
}
setEnablePushTextToSpeech
/**
* การตั้งค่าฟีเจอร์การประกาศด้วยเสียง ต้องนำเข้าแพ็คเกจเสียง (mt-sdk-sound-x.x.x.aar)
*
* @param context ต้องไม่เป็นค่าว่าง
* @param enable true เพื่อเปิดใช้งาน, false เพื่อปิดใช้งาน, ค่าเริ่มต้นคือ false
*/
public static void setEnablePushTextToSpeech(Context context, boolean enable)
ตัวอย่างโค้ดดังนี้:
MTPushPrivatesApi.setEnablePushTextToSpeech(context,true);
init
- แนะนำให้เรียกใช้ในเมธอด Application.onCreate()
/**
* การเริ่มต้น MTPush
*
* แนะนำให้เรียกใช้ในเมธอด Application.onCreate()
*
* @param context ต้องไม่เป็นค่าว่าง กรุณาใช้วัตถุ applicationContext
*/
public static void init(Context context)
ตัวอย่างโค้ดดังนี้:
public class ExampleApplication extends Application {
@Override
public void onCreate() {
// เปิดโหมดดีบัก
MTCorePrivatesApi.configDebugMode(context.getApplicationContext(), true);
// การเริ่มต้น
MTPushPrivatesApi.init(context.getApplicationContext());
}
}
goToAppNotificationSettings
- หลังจากเริ่มต้น sdk แล้ว คุณสามารถเรียกกลับผลลัพธ์ตาม onNotificationStatus และตัดสินใจว่าจำเป็นต้องเรียกใช้ข้ออ้างนี้หรือไม่
/**
* ไปยังหน้าการตั้งค่าสวิตช์การแจ้งเตือน
*
* @param context ต้องไม่เป็นค่าว่าง
*/
public static void goToAppNotificationSettings(Context context)
ตัวอย่างโค้ดดังนี้:
// ไปยังหน้าการตั้งค่าสวิตช์การแจ้งเตือน ลูกค้าต้องเปิดสวิตช์การแจ้งเตือนด้วยตนเอง
MTPushPrivatesApi.goToAppNotificationSettings(this);
// หลังจากสืบทอด MTCommonReceiver ให้เขียนทับเมธอด onNotificationStatus เพื่อรับสถานะของสวิตช์การแจ้งเตือน หาก enable เป็น true หมายความว่าเปิดใช้งานสำเร็จแล้ว
@Override
public void onNotificationStatus(Context context, boolean enable) {
if(enable){
// สวิตช์การแจ้งเตือนถูกตั้งค่าให้เปิด
}
}
turnOnPush
- โดยทั่วไปใช้เพื่อเปิดการแจ้งเตือนหลังจากเรียก turnOffPush
- การเรียกซ้ำจะมีผลเพียงครั้งเดียว หากเปิดใช้งานอยู่แล้วจะไม่มีผลอีก
- หากไม่มีปัญหากับสภาพแวดล้อม onConnectStatus จะเรียกกลับผลลัพธ์
- ช่องทางที่รองรับในปัจจุบัน: Engagelab/Huawei/Xiaomi/Meizu/oppo/vivo
/**
* เปิดใช้งานการแจ้งเตือน และสถานะสวิตช์การเก็บข้อมูลถาวรเป็น true ค่าเริ่มต้นคือ true
*
* @param context ต้องไม่เป็นค่าว่าง
*/
public static void turnOnPush(Context context)
ตัวอย่างโค้ดดังนี้:
// เปิดการแจ้งเตือน ซึ่งเปิดใช้งานโดยค่าเริ่มต้น
MTPushPrivatesApi.turnOnPush(context);
// หลังจากสืบทอด MTCommonReceiver ให้เขียนทับเมธอด onConnectStatus เพื่อรับสถานะการเชื่อมต่อ หาก enable เป็น true หมายความว่าเปิดใช้งานสำเร็จแล้ว
@Override
public void onConnectStatus(Context context, boolean enable){
if(enable){
// เปิดการแจ้งเตือนสำเร็จ
}
}
turnOffPush
- โดยทั่วไปใช้เพื่อปิดการแจ้งเตือน
- หลังจากปิดการแจ้งเตือน การเรียก init จะไม่เปิดการแจ้งเตือน
- การเรียกซ้ำจะมีผลเพียงครั้งเดียว
- หากไม่มีปัญหากับสภาพแวดล้อม onConnectStatus จะเรียกกลับผลลัพธ์
- ช่องทางที่รองรับในปัจจุบัน: Engagelab/Huawei/Xiaomi/Meizu/oppo/vivo
/**
* ปิดการแจ้งเตือน และสถานะสวิตช์การเก็บข้อมูลถาวรเป็น false ค่าเริ่มต้นคือ true
*
* @param context ต้องไม่เป็นค่าว่าง
*/
public static void turnOffPush(Context context)
ตัวอย่างโค้ดดังนี้:
// ปิดการแจ้งเตือน คุณต้องเรียก turnOnPush อีกครั้งเพื่อเปิดการแจ้งเตือน
MTPushPrivatesApi.turnOffPush(context);
// หลังจากสืบทอด MTCommonReceiver ให้เขียนทับเมธอด onConnectStatus เพื่อรับสถานะการเชื่อมต่อ หาก enable เป็น false หมายความว่าปิดสำเร็จแล้ว
@Override
public void onConnectStatus(Context context, boolean enable){
if(!enable){
// ปิดการแจ้งเตือนสำเร็จ
}
}
addTag
- กรุณา init ก่อน มิฉะนั้นการเรียกจะไม่ถูกต้อง
- หากไม่มีปัญหากับสภาพแวดล้อม onTagMessage จะเรียกกลับผลลัพธ์
/**
* เพิ่มแท็กที่ระบุ, การสะสมตรรกะ, แท็กที่ตั้งไว้ก่อนหน้านี้ยังคงอยู่
*
* @param context ต้องไม่เป็นค่าว่าง
* @param sequence หมายเลขลำดับการดำเนินการที่กำหนดเองของผู้ใช้ ส่งคืนพร้อมกับผลลัพธ์การดำเนินการ ใช้เพื่อระบุความเป็นเอกลักษณ์ของการดำเนินการ
* @param tags อาร์เรย์แท็ก ความยาวของชื่อแท็กแต่ละชื่อจำกัดที่ 40 ไบต์ สามารถตั้งค่าแท็กได้สูงสุด 1000 แท็ก และความยาวรวมของการดำเนินการเดียวไม่เกิน 5000 ไบต์
*/
public static void addTag(Context context, int sequence, String... tags)
ตัวอย่างโค้ดดังนี้:
// กำหนดค่าคงที่ที่นี่ ซึ่งแทนการเพิ่มแท็กที่ระบุ
private static final int SEQUENCE_TAG_ADD = 1;
// เพิ่มแท็ก: "china","guangdong","shenzhen"
MTPushPrivatesApi.addTag(context,SEQUENCE_TAG_ADD,"china","guangdong","shenzhen")
// หลังจากสืบทอด MTCommonReceiver ให้เขียนทับเมธอด onTagMessage เพื่อรับการเรียกกลับการดำเนินการแท็ก
@Override
public void onTagMessage(Context context, TagMessage tagMessage){
if(tagMessage.getCode != MTPushPrivatesApi.Code.Success){
// การดำเนินการแท็กล้มเหลว สามารถดูข้อมูลข้อผิดพลาดโดยละเอียดได้ใน MTPushPrivatesApi.Code
return;
}
if(tagMessage.getSequence() == SEQUENCE_TAG_ADD){
// เพิ่มแท็กที่ระบุสำเร็จ ในขณะนี้ คุณสามารถดูอาร์เรย์แท็กของการดำเนินการที่สำเร็จ
String[] tags = tagMessage. getTags();
}
}
deleteTag
- กรุณา init ก่อน มิฉะนั้นการเรียกจะไม่ถูกต้อง
- หากไม่มีปัญหากับสภาพแวดล้อม onTagMessage จะเรียกกลับผลลัพธ์
/**
* ลบแท็กที่ระบุ, ลบตรรกะ, และแท็กที่ระบุจะถูกลบ
*
* @param context ต้องไม่เป็นค่าว่าง
* @param sequence หมายเลขลำดับการดำเนินการที่กำหนดเองของผู้ใช้ ส่งคืนพร้อมกับผลลัพธ์การดำเนินการ ใช้เพื่อระบุความเป็นเอกลักษณ์ของการดำเนินการ
* @param tags อาร์เรย์แท็ก ความยาวของชื่อแท็กแต่ละชื่อจำกัดที่ 40 ไบต์ สามารถตั้งค่าแท็กได้สูงสุด 1000 แท็ก และความยาวรวมของการดำเนินการเดียวไม่เกิน 5000 ไบต์
*/
public static void deleteTag(Context context, int sequence, String... tags)
ตัวอย่างโค้ดดังนี้:
// กำหนดค่าคงที่ที่นี่ ซึ่งแทนการลบแท็กที่ระบุ
private static final int SEQUENCE_TAG_DELETE = 2;
// ลบแท็ก: "china","guangdong","shenzhen"
MTPushPrivatesApi.deleteTag(context,SEQUENCE_TAG_DELETE,"china","guangdong","shenzhen")
// หลังจากสืบทอด MTCommonReceiver ให้เขียนทับเมธอด onTagMessage เพื่อรับการเรียกกลับการดำเนินการแท็ก
@Override
public void onTagMessage(Context context, TagMessage tagMessage){
if(tagMessage.getCode != MTPushPrivatesApi.Code.Success){
// การดำเนินการแท็กล้มเหลว สามารถดูข้อมูลข้อผิดพลาดโดยละเอียดได้ใน MTPushPrivatesApi.Code
return;
}
if(tagMessage.getSequence() == SEQUENCE_TAG_DELETE){
// ลบแท็กที่ระบุสำเร็จ ในขณะนี้ คุณสามารถดูอาร์เรย์แท็กของการดำเนินการที่สำเร็จ
String[] tags = tagMessage. getTags();
}
}
updateTag
- กรุณา init ก่อน มิฉะนั้นการเรียกจะไม่ถูกต้อง
- หากไม่มีปัญหากับสภาพแวดล้อม onTagMessage จะเรียกกลับผลลัพธ์
/**
* อัปเดตแท็กที่ระบุ, เขียนทับตรรกะ, และแท็กที่เพิ่มก่อนหน้านี้จะถูกล้าง
*
* @param context ต้องไม่เป็นค่าว่าง
* @param sequence หมายเลขลำดับการดำเนินการที่กำหนดเองของผู้ใช้ ส่งคืนพร้อมกับผลลัพธ์การดำเนินการ ใช้เพื่อระบุความเป็นเอกลักษณ์ของการดำเนินการ
* @param tags อาร์เรย์แท็ก ความยาวของชื่อแท็กแต่ละชื่อจำกัดที่ 40 ไบต์ สามารถตั้งค่าแท็กได้สูงสุด 1000 แท็ก และความยาวรวมของการดำเนินการเดียวไม่เกิน 5000 ไบต์
*/
public static void updateTag(Context context, int sequence, String... tags)
ตัวอย่างโค้ดดังนี้:
// กำหนดค่าคงที่ที่นี่ ซึ่งแทนการอัปเดตแท็กที่ระบุ
private static final int SEQUENCE_TAG_UPDATE = 3;
// อัปเดตแท็ก: "beijing","shanghai","guangzhou","shenzhen", แท็กที่ตั้งไว้ก่อนหน้านี้จะไม่ถูกต้อง
MTPushPrivatesApi.updateTag(context,SEQUENCE_TAG_UPDATE,"beijing","shanghai","guangzhou","shenzhen")
// หลังจากสืบทอด MTCommonReceiver ให้เขียนทับเมธอด onTagMessage เพื่อรับการเรียกกลับการดำเนินการแท็ก
@Override
public void onTagMessage(Context context, TagMessage tagMessage){
if(tagMessage.getCode != MTPushPrivatesApi.Code.Success){
// การดำเนินการแท็กล้มเหลว สามารถดูข้อมูลข้อผิดพลาดโดยละเอียดได้ใน MTPushPrivatesApi.Code
return;
}
if(tagMessage.getSequence() == SEQUENCE_TAG_UPDATE){
// อัปเดตแท็กที่ระบุสำเร็จ และคุณสามารถดูอาร์เรย์แท็กที่สำเร็จได้ในขณะนี้
String[] tags = tagMessage. getTags();
}
}
queryTag
- กรุณา init ก่อน มิฉะนั้นการเรียกจะไม่ถูกต้อง
- หากไม่มีปัญหากับสภาพแวดล้อม onTagMessage จะเรียกกลับผลลัพธ์
/**
* ค้นหาแท็กที่ระบุ
*
* @param context ต้องไม่เป็นค่าว่าง
* @param sequence หมายเลขลำดับการดำเนินการที่กำหนดเองของผู้ใช้ ส่งคืนพร้อมกับผลลัพธ์การดำเนินการ ใช้เพื่อระบุความเป็นเอกลักษณ์ของการดำเนินการ
* @param tag, ความยาวของชื่อแท็กแต่ละชื่อจำกัดที่ 40 ไบต์
*/
public static void queryTag(Context context, int sequence, String tag)
ตัวอย่างโค้ดดังนี้:
// กำหนดค่าคงที่ที่นี่ ซึ่งแทนการค้นหาแท็กที่ระบุ
private static final int SEQUENCE_TAG_QUERY = 4;
// ค้นหาแท็ก
MTPushPrivatesApi.queryTag(context,SEQUENCE_TAG_QUERY,"china")
// หลังจากสืบทอด MTCommonReceiver ให้เขียนทับเมธอด onTagMessage เพื่อรับการเรียกกลับการดำเนินการแท็ก
@Override
public void onTagMessage(Context context, TagMessage tagMessage){
if(tagMessage.getCode != MTPushPrivatesApi.Code.Success){
// การดำเนินการแท็กล้มเหลว สามารถดูข้อมูลข้อผิดพลาดโดยละเอียดได้ใน MTPushPrivatesApi.Code
return;
}
if(tagMessage.getSequence() == SEQUENCE_TAG_QUERY){
// ค้นหาแท็กที่ระบุสำเร็จ ในขณะนี้ คุณสามารถดูแท็กและสถานะของการดำเนินการที่สำเร็จ
String tag = tagMessage. getQueryTag();
boolean valid = tagMessage.isQueryTagValid();
}
}
### deleteAllTag
> * โปรด [init](#init) ก่อน มิฉะนั้นการเรียกใช้งานจะไม่ถูกต้อง
> * หากไม่มีปัญหาเกี่ยวกับสภาพแวดล้อม [onTagMessage](#onTagMessage) จะเรียกกลับผลลัพธ์
/**
* ลบแท็กทั้งหมด ล้างลอจิก และลบแท็กทั้งหมด
*
* @param context ไม่สามารถเป็นค่าว่างได้
* @param sequence หมายเลขลำดับการดำเนินการที่กำหนดโดยผู้ใช้ ส่งคืนพร้อมกับผลลัพธ์การดำเนินการ ใช้เพื่อระบุความเป็นเอกลักษณ์ของการดำเนินการ
*/
public static void deleteAllTag(Context context, int sequence, String... tags)
ตัวอย่างโค้ดมีดังนี้:
// กำหนดค่าคงที่ที่นี่เพื่อแสดงถึงการดำเนินการลบแท็กทั้งหมด private static final int SEQUENCE_TAG_DELETE_ALL = 5; // ลบแท็กทั้งหมด MTPushPrivatesApi.deleteTag(context,SEQUENCE_TAG_DELETE_ALL)
// หลังจากสืบทอด MTCommonReceiver ให้เขียนทับเมธอด onTagMessage เพื่อรับการเรียกกลับการดำเนินการแท็ก @Override public void onTagMessage(Context context, TagMessage tagMessage){ if(tagMessage.getCode != MTPushPrivatesApi.Code.Success){ // การดำเนินการแท็กล้มเหลว สามารถดูข้อมูลข้อผิดพลาดโดยละเอียดได้ใน MTPushPrivatesApi.Code return; } if(tagMessage.getSequence() == SEQUENCE_TAG_DELETE_ALL){ // ลบแท็กทั้งหมดสำเร็จ } }
### queryAllTag
> * โปรด [init](#init) ก่อน มิฉะนั้นการเรียกใช้งานจะไม่ถูกต้อง
> * หากไม่มีปัญหาเกี่ยวกับสภาพแวดล้อม [onTagMessage](#onTagMessage) จะเรียกกลับผลลัพธ์
/**
* ค้นหาแท็กทั้งหมด รับลอจิก และรับแท็กทั้งหมด
*
* @param context ไม่สามารถเป็นค่าว่างได้
* @param sequence หมายเลขลำดับการดำเนินการที่กำหนดโดยผู้ใช้ ส่งคืนพร้อมกับผลลัพธ์การดำเนินการ ใช้เพื่อระบุความเป็นเอกลักษณ์ของการดำเนินการ
*/
public static void queryAllTag(Context context, int sequence, String... tags)
ตัวอย่างโค้ดมีดังนี้:
// กำหนดค่าคงที่ที่นี่ซึ่งแสดงถึงการค้นหาแท็กทั้งหมด private static final int SEQUENCE_TAG_QUERY_ALL = 6; // ค้นหาแท็กทั้งหมด MTPushPrivatesApi.queryAllTag(context,SEQUENCE_TAG_QUERY_ALL)
// หลังจากสืบทอด MTCommonReceiver ให้เขียนทับเมธอด onTagMessage เพื่อรับการเรียกกลับการดำเนินการแท็ก @Override public void onTagMessage(Context context, TagMessage tagMessage){ if(tagMessage.getCode != MTPushPrivatesApi.Code.Success){ // การดำเนินการแท็กล้มเหลว สำหรับข้อมูลข้อผิดพลาดโดยละเอียด โปรดดูที่ MTPushPrivatesApi.Code return; } if(tagMessage.getSequence() == SEQUENCE_TAG_DELETE_ALL){ // ค้นหาแท็กทั้งหมดสำเร็จ ในขณะนี้ คุณสามารถดูอาร์เรย์แท็กที่ดำเนินการสำเร็จได้ String[] tags = tagMessage. getTags(); } }
### setAlias
> * โปรด [init](#init) ก่อน มิฉะนั้นการเรียกใช้งานจะไม่ถูกต้อง
> * หากไม่มีปัญหาเกี่ยวกับสภาพแวดล้อม [onAliasMessage](#onAliasMessage) จะเรียกกลับผลลัพธ์
/**
* ตั้งค่า alias
*
* ขอแนะนำให้ใช้ alias ที่แตกต่างกันสำหรับผู้ใช้ที่แตกต่างกันในแอปพลิเคชันเดียวกัน วิธีนี้จะระบุผู้ใช้โดย alias ของพวกเขาได้อย่างชัดเจนเมื่อเป็นไปได้
*
* อย่าจำกัด alias และกำหนดผู้ใช้เพียงคนเดียว
*
* @param context ไม่สามารถเป็นค่าว่างได้
* @param sequence หมายเลขลำดับการดำเนินการที่กำหนดโดยผู้ใช้ ส่งคืนพร้อมกับผลลัพธ์การดำเนินการ ใช้เพื่อระบุความเป็นเอกลักษณ์ของการดำเนินการ
* @param alias องค์ประกอบ alias ที่ถูกต้อง: ตัวอักษร (แยกตัวพิมพ์ใหญ่และเล็ก), ตัวเลข, ขีดล่าง, อักษรจีน, อักขระพิเศษ @!#$&*+=.|. ข้อจำกัด: ความยาวของชื่อ alias ถูกจำกัดไว้ที่ 40 ไบต์ (ต้องใช้การเข้ารหัส UTF-8 เพื่อกำหนดความยาว)
*
*/
public static void setAlias(Context context, int sequence, String alias)
ตัวอย่างโค้ดมีดังนี้
// กำหนดค่าคงที่ที่นี่ซึ่งแสดงถึงการตั้งค่า alias private static final int SEQUENCE_ALIAS_SET = 7; // ตั้งค่า alias: "young" MTPushPrivatesApi.setAlias(context,SEQUENCE_ALIAS_SET,"young")
// หลังจากสืบทอด MTCommonReceiver ให้เขียนทับเมธอด onAliasMessage เพื่อรับการเรียกกลับการดำเนินการ alias @Override public void onAliasMessage(Context context, AliasMessage aliasMessage){ if(aliasMessage.getCode != MTPushPrivatesApi.Code.Success){ // การดำเนินการ alias ล้มเหลว สำหรับข้อมูลข้อผิดพลาดโดยละเอียด โปรดดูที่ MTPushPrivatesApi.Code return; } if(aliasMessage.getSequence() == SEQUENCE_ALIAS_SET){ // ตั้งค่า alias สำเร็จ และคุณสามารถดู alias ที่ดำเนินการสำเร็จได้ในขณะนี้ String alias = aliasMessage. getAlias(); } }
### getAlias
> * โปรด [init](#init) ก่อน มิฉะนั้นการเรียกใช้งานจะไม่ถูกต้อง
> * หากไม่มีปัญหาเกี่ยวกับสภาพแวดล้อม [onAliasMessage](#onAliasMessage) จะเรียกกลับผลลัพธ์
/**
* รับ alias
*
* ขอแนะนำให้ใช้ alias ที่แตกต่างกันสำหรับผู้ใช้ที่แตกต่างกันในแอปพลิเคชันเดียวกัน วิธีนี้จะระบุผู้ใช้โดย alias ของพวกเขาได้อย่างชัดเจนเมื่อเป็นไปได้
*
* อย่าจำกัด alias และกำหนดผู้ใช้เพียงคนเดียว
*
* @param context ไม่สามารถเป็นค่าว่างได้
* @param sequence หมายเลขลำดับการดำเนินการที่กำหนดโดยผู้ใช้ ส่งคืนพร้อมกับผลลัพธ์การดำเนินการ ใช้เพื่อระบุความเป็นเอกลักษณ์ของการดำเนินการ
*/
public static void getAlias(Context context, int sequence)
ตัวอย่างโค้ดมีดังนี้:
// กำหนดค่าคงที่ที่นี่ซึ่งแสดงถึงการดำเนินการรับ alias private static final int SEQUENCE_ALIAS_GET = 8; // รับ alias MTPushPrivatesApi.getAlias(context,SEQUENCE_ALIAS_GET)
// หลังจากสืบทอด MTCommonReceiver ให้เขียนทับเมธอด onAliasMessage เพื่อรับการเรียกกลับการดำเนินการ alias @Override public void onAliasMessage(Context context, AliasMessage aliasMessage){ if(aliasMessage.getCode != MTPushPrivatesApi.Code.Success){ // การดำเนินการ alias ล้มเหลว สำหรับข้อมูลข้อผิดพลาดโดยละเอียด โปรดดูที่ MTPushPrivatesApi.Code return; } if(aliasMessage.getSequence() == SEQUENCE_ALIAS_GET){ // รับ alias สำเร็จ คุณสามารถดู alias ที่ดำเนินการสำเร็จได้ในขณะนี้ String alias = aliasMessage. getAlias(); } }
### clearAlias
> * โปรด [init](#init) ก่อน มิฉะนั้นการเรียกใช้งานจะไม่ถูกต้อง
> * หากไม่มีปัญหาเกี่ยวกับสภาพแวดล้อม [onAliasMessage](#onAliasMessage) จะเรียกกลับผลลัพธ์
/**
* ลบ alias
*
* ขอแนะนำให้ใช้ alias ที่แตกต่างกันสำหรับผู้ใช้ที่แตกต่างกันในแอปพลิเคชันเดียวกัน วิธีนี้จะระบุผู้ใช้โดย alias ของพวกเขาได้อย่างชัดเจนเมื่อเป็นไปได้
*
* อย่าจำกัด alias และกำหนดผู้ใช้เพียงคนเดียว
*
* @param context ไม่สามารถเป็นค่าว่างได้
* @param sequence หมายเลขลำดับการดำเนินการที่กำหนดโดยผู้ใช้ ส่งคืนพร้อมกับผลลัพธ์การดำเนินการ ใช้เพื่อระบุความเป็นเอกลักษณ์ของการดำเนินการ
*/
public static void clearAlias(Context context, int sequence)
ตัวอย่างโค้ดมีดังนี้:
// กำหนดค่าคงที่ที่นี่เพื่อแสดงถึงการดำเนินการลบ alias private static final int SEQUENCE_ALIAS_CLEAR = 7; // ลบ alias MTPushPrivatesApi.clearAlias(context,SEQUENCE_ALIAS_CLEAR)
// หลังจากสืบทอด MTCommonReceiver ให้เขียนทับเมธอด onAliasMessage เพื่อรับการเรียกกลับการดำเนินการ alias @Override public void onAliasMessage(Context context, AliasMessage aliasMessage){ if(aliasMessage.getCode != MTPushPrivatesApi.Code.Success){ // การดำเนินการ alias ล้มเหลว สำหรับข้อมูลข้อผิดพลาดโดยละเอียด โปรดดูที่ MTPushPrivatesApi.Code return; } if(aliasMessage.getSequence() == SEQUENCE_ALIAS_CLEAR){ // ลบ alias สำเร็จ } }
### setNotificationShowTime
> * โปรด [init](#init) ก่อน มิฉะนั้นการเรียกใช้งานจะไม่ถูกต้อง
> * ช่องทางที่รองรับในปัจจุบัน: ช่องทาง Engagelab/ช่องทาง Google เมื่อแอปอยู่ในโหมดเบื้องหน้า (แสดงโดย Engagelab)
/**
* ตั้งค่าเวลาการแสดงการแจ้งเตือน ซึ่งจะแสดงโดยค่าเริ่มต้นตลอดเวลา
*
* @param context ไม่สามารถเป็นค่าว่างได้
* @param beginHour เวลาเริ่มต้น (ในรูปแบบ 24 ชั่วโมง ช่วง 0 ถึง 23) เพื่ออนุญาตให้แสดงการแจ้งเตือน
* @param endHour เวลาสิ้นสุดที่อนุญาตให้แสดงการแจ้งเตือน (นาฬิกา 24 ชั่วโมง ช่วงคือ 0 ถึง 23) beginHour ไม่สามารถมากกว่าหรือเท่ากับ endHour
* @param weekDays อาร์เรย์วันในสัปดาห์ที่อนุญาตให้แสดงการแจ้งเตือน (ระบบ 7 วัน ช่วงตั้งแต่ 1 ถึง 7) อาร์เรย์ว่างหมายถึงจะไม่มีการแสดงการแจ้งเตือนในเวลาใด ๆ
*/
public static void setNotificationShowTime(Context context, int beginHour, int endHour, int... weekDays)
ตัวอย่างโค้ดมีดังนี้
// ตั้งค่าเวลาการแสดงการแจ้งเตือนตั้งแต่ 9 โมงเช้าถึง 3 ทุ่มในวัน 1/3/5/7 ของทุกสัปดาห์
MTPushPrivatesApi.setNotificationShowTime(context, 9, 21, 1,3,5,7);
### resetNotificationShowTime
> * โปรด [init](#init) ก่อน มิฉะนั้นการเรียกใช้งานจะไม่ถูกต้อง
> * ช่องทางที่รองรับในปัจจุบัน: ช่องทาง Engagelab/ช่องทาง Google เมื่อแอปอยู่ในโหมดเบื้องหน้า (แสดงโดย Engagelab)
/**
* รีเซ็ตเวลาการแสดงการแจ้งเตือน จะแสดงโดยค่าเริ่มต้นตลอดเวลา
*
* @param context ไม่สามารถเป็นค่าว่างได้
*/
public static void resetNotificationShowTime(Context context)
ตัวอย่างโค้ดมีดังนี้
// รีเซ็ตเวลาการแสดงการแจ้งเตือน ซึ่งจะแสดงโดยค่าเริ่มต้นตลอดเวลา
MTPushPrivatesApi.resetNotificationShowTime(context);
### setNotificationSilenceTime
> * โปรด [init](#init) ก่อน มิฉะนั้นการเรียกใช้งานจะไม่ถูกต้อง
> * ช่องทางที่รองรับในปัจจุบัน: ช่องทาง Engagelab/ช่องทาง Google เมื่อแอปอยู่ในโหมดเบื้องหน้า (แสดงโดย Engagelab)
/**
* ตั้งค่าเวลาการแจ้งเตือนแบบเงียบ ค่าเริ่มต้นจะไม่เงียบในเวลาใด ๆ
*
* @param context ไม่สามารถเป็นค่าว่างได้
* @param beginHour เวลาเริ่มต้นที่อนุญาตให้การแจ้งเตือนเงียบ เป็นชั่วโมง (รูปแบบ 24 ชั่วโมง ช่วง 0 ถึง 23)
* @param beginMinute เวลาเริ่มต้นที่อนุญาตให้การแจ้งเตือนเงียบ เป็นนาที (60 นาที ช่วงคือ 0 ถึง 59 )
* @param endHour เวลาสิ้นสุดที่อนุญาตให้การแจ้งเตือนเงียบ เป็นชั่วโมง (นาฬิกา 24 ชั่วโมง ช่วง 0 ถึง 23 )
* @param endMinute เวลาสิ้นสุดที่อนุญาตให้การแจ้งเตือนเงียบ เป็นนาที (60 นาที ช่วงคือ 0 ถึง 59)
*/
public static void setNotificationSilenceTime(Context context, int beginHour, int beginMinute, int endHour, int endMinute)
ตัวอย่างโค้ดมีดังนี้
// ตั้งค่าเวลาการแจ้งเตือนแบบเงียบตั้งแต่ 3 ทุ่มครึ่งถึง 9 โมงครึ่งของวันถัดไป
MTPushPrivatesApi.setNotificationSilenceTime(context, 21, 30, 9, 30);
### resetNotificationSilenceTime
> * โปรด [init](#init) ก่อน มิฉะนั้นการเรียกใช้งานจะไม่ถูกต้อง
> * ช่องทางที่รองรับในปัจจุบัน: ช่องทาง Engagelab/ช่องทาง Google เมื่อแอปอยู่ในโหมดเบื้องหน้า (แสดงโดย Engagelab)
/**
* รีเซ็ตเวลาการแจ้งเตือนแบบเงียบ ค่าเริ่มต้นจะไม่เงียบในเวลาใด ๆ
*
* @param context ไม่สามารถเป็นค่าว่างได้
*/
public static void resetNotificationSilenceTime(Context context)
ตัวอย่างโค้ดมีดังนี้
// รีเซ็ตเวลาการแจ้งเตือนแบบเงียบ ค่าเริ่มต้นจะไม่เงียบในเวลาใด ๆ
MTPushPrivatesApi.resetNotificationSilenceTime(context);
setNotificationLayout
- โปรด init ก่อน มิฉะนั้นการเรียกจะไม่ถูกต้อง
- ช่องทางที่รองรับในปัจจุบัน: ช่องทาง Engagelab
/**
* ตั้งค่าการจัดวางการแจ้งเตือนแบบกำหนดเอง โดยค่าเริ่มต้นจะใช้การจัดวางการแจ้งเตือนของระบบ
*
* @param context ต้องไม่เป็นค่าว่าง
* @param builderId รหัสการสร้าง
* @param notificationLayout วัตถุของการจัดวางการแจ้งเตือนแบบกำหนดเอง ต้องไม่เป็นค่าว่าง
*/
public static void setNotificationLayout(Context context, int builderId, NotificationLayout notificationLayout)
ตัวอย่างโค้ดดังนี้
// กำหนดค่าคงที่ที่นี่ แทนรหัสการสร้าง
private static final int BUILDER_ID = 11;
// สร้าง notificationLayout
NotificationLayout notificationLayout = new NotificationLayout()
.setLayoutId(R.layout.custom_notification_layout) // layout layout_id
.setIconViewId(R.id.iv_notification_icon) // notification icon view_id
.setIconResourceId(R.drawable.mtpush_notification_icon) // notification icon source_id
.setTitleViewId(R.id.tv_notification_title) // notification title view_id
.setContentViewId(R.id.tv_notification_content) // notification content view_id
.setTimeViewId(R.id.tv_notification_time); // notification time view_id
// ตั้งค่าการจัดวางแบบกำหนดเองด้วยรหัสการสร้างเป็น BUILDER_ID และระบุ builderId เป็น BUILDER_ID เมื่อส่งการแจ้งเตือนเพื่อเปลี่ยนการจัดวางการแจ้งเตือน
MTPushPrivatesApi.setNotificationLayout(this.getApplicationContext(), BUILDER_ID, notificationLayout);
resetNotificationLayout
- โปรด init ก่อน มิฉะนั้นการเรียกจะไม่ถูกต้อง
- ช่องทางที่รองรับในปัจจุบัน: ช่องทาง Engagelab
/**
* รีเซ็ตการจัดวางการแจ้งเตือนแบบกำหนดเอง โดยค่าเริ่มต้นจะใช้การจัดวางการแจ้งเตือนของระบบ
*
* @param context ต้องไม่เป็นค่าว่าง
* @param builderId รหัสของการจัดวางการแจ้งเตือนแบบกำหนดเอง
*/
public static void resetNotificationLayout(Context context, int builderId)
ตัวอย่างโค้ดดังนี้
// กำหนดค่าคงที่ที่นี่ แทนรหัสการสร้าง
private static final int BUILDER_ID = 11;
// รีเซ็ตการจัดวางแบบกำหนดเองด้วยรหัสการสร้างเป็น BUILDER_ID ระบุ builderId เป็น BUILDER_ID เมื่อส่งการแจ้งเตือน และใช้การจัดวางเริ่มต้นของระบบ
MTPushPrivatesApi.resetNotificationLayout(context,BUILDER_ID);
setNotificationCount
- โปรด init ก่อน มิฉะนั้นการเรียกจะไม่ถูกต้อง
- ช่องทางที่รองรับในปัจจุบัน: ช่องทาง Engagelab/ช่องทาง Google เมื่อแอปอยู่ในโหมด foreground (แสดงโดย Engagelab)
/**
* ตั้งค่าจำนวนการแจ้งเตือนในแถบการแจ้งเตือน ค่าเริ่มต้นคือ 5
*
* @param context ต้องไม่เป็นค่าว่าง
* @param count จำกัดจำนวนการแจ้งเตือนในแถบการแจ้งเตือน หากจำนวนเกินขีดจำกัด การแจ้งเตือนที่เก่าที่สุดจะถูกลบออก ไม่สามารถน้อยกว่าหรือเท่ากับ 0
*/
public static void setNotificationCount(Context context, int count)
ตัวอย่างโค้ดดังนี้
// ตั้งค่าจำนวนการแจ้งเตือนในแถบการแจ้งเตือนเป็น 50
MTPushPrivatesApi.setNotificationCount(context,50);
resetNotificationCount
- โปรด init ก่อน มิฉะนั้นการเรียกจะไม่ถูกต้อง
- ช่องทางที่รองรับในปัจจุบัน: ช่องทาง Engagelab/ช่องทาง Google เมื่อแอปอยู่ในโหมด foreground (แสดงโดย Engagelab)
/**
* รีเซ็ตจำนวนการแจ้งเตือนในแถบการแจ้งเตือน ค่าเริ่มต้นคือ 5
*
* @param context ต้องไม่เป็นค่าว่าง
*/
public static void resetNotificationCount(Context context)
ตัวอย่างโค้ดดังนี้
// รีเซ็ตจำนวนการแจ้งเตือนในแถบการแจ้งเตือน ค่าเริ่มต้นคือ 5
MTPushPrivatesApi.resetNotificationCount(context);
setNotificationBadge
- โปรด init ก่อน มิฉะนั้นการเรียกจะไม่ถูกต้อง
/**
* ตั้งค่าจำนวน badge ของแอป ค่าเริ่มต้นคือ 0 (ใช้ได้เฉพาะ Huawei/Honor)
*
* @param context ต้องไม่เป็นค่าว่าง
* @param badge จำนวน badge ของแอป
*/
public static void setNotificationBadge(Context context, int badge)
ตัวอย่างโค้ดดังนี้
// ตั้งค่าจำนวน badge ของแอปเป็น 1
MTPushPrivatesApi.setNotificationBadge(context,1);
resetNotificationBadge
- โปรด init ก่อน มิฉะนั้นการเรียกจะไม่ถูกต้อง
/**
* รีเซ็ตจำนวน badge ของแอป ค่าเริ่มต้นคือ 0 (ใช้ได้เฉพาะ Huawei/Honor)
*
* @param context ต้องไม่เป็นค่าว่าง
*/
public static void resetNotificationBadge(Context context) {
ตัวอย่างโค้ดดังนี้
// รีเซ็ตจำนวน badge ของแอป ค่าเริ่มต้นคือ 0
MTPushPrivatesApi.resetNotificationBadge(context);
showNotification
- โปรด init ก่อน มิฉะนั้นการเรียกจะไม่ถูกต้อง
/**
* แสดงการแจ้งเตือน
*
* @param context ต้องไม่เป็นค่าว่าง
* @param notificationMessage วัตถุการแจ้งเตือนที่สร้างขึ้น ต้องไม่เป็นค่าว่าง
*/
public static void showNotification(Context context, NotificationMessage notificationMessage)
ตัวอย่างโค้ดดังนี้
// สร้างการแจ้งเตือนพื้นฐาน โดย messageId และ content เป็นสิ่งจำเป็น มิฉะนั้นการแจ้งเตือนจะไม่สามารถแสดงได้
NotificationMessage notificationMessage = new NotificationMessage()
.setMessageId("12345")
.setNotificationId(12345)
.setTitle("custom_notification_title")
.setContent("custom_notification_content");
// แสดงการแจ้งเตือน
MTPushPrivatesApi. showNotification(context, notificationMessage);
clearNotification
- โปรด init ก่อน มิฉะนั้นการเรียกจะไม่ถูกต้อง
/**
* ลบการแจ้งเตือนด้วย notifyId ที่ระบุ
*
* @param context ต้องไม่เป็นค่าว่าง
* @param notifyId รหัสการแจ้งเตือน
*/
public static void clearNotification(Context context, int notifyId)
ตัวอย่างโค้ดดังนี้
// ลบการแจ้งเตือนด้วย notifyId ที่ระบุ
MTPushPrivatesApi.clearNotification(context,12345);
reportNotificationArrived
- โปรด init ก่อน มิฉะนั้นการเรียกจะไม่ถูกต้อง
- ไม่ได้รวมแพ็คเกจผู้ผลิตของ Engagelab แต่ต้องการให้ Engagelab นับอัตราการส่งการแจ้งเตือน โปรดเรียกใช้อินเทอร์เฟซนี้
/**
* รายงานการมาถึงของการแจ้งเตือนช่องทางผู้ผลิต
*
* ใช้ http/https ในการรายงาน
*
* @param context ต้องไม่เป็นค่าว่าง
* @param messageId รหัสข้อความของ Engagelab ต้องไม่เป็นค่าว่าง
* @param platform ผู้ผลิต ช่วงค่าคือ (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
* @param platformMessageId รหัสข้อความของผู้ผลิต สามารถเป็นค่าว่างได้
*/
public static void reportNotificationArrived(Context context, String messageId, byte platform, String platformMessageId)
ตัวอย่างโค้ดดังนี้
// รายงานการมาถึงของการแจ้งเตือนผู้ผลิต โดย messageId คือ "12345" ผู้ผลิตคือ Xiaomi และรหัสข้อความของผู้ผลิตคือ "MI-6476RHT25"
MTPushPrivatesApi.reportNotificationArrived(context,"12345",MTPushPrivatesApi.PLATFORM_XIAOMI,"MI-6476RHT25");
reportNotificationClicked
- โปรด init ก่อน มิฉะนั้นการเรียกจะไม่ถูกต้อง
- ไม่ได้รวมแพ็คเกจผู้ผลิตของ Engagelab แต่ต้องการให้ Engagelab นับและแจ้งอัตราการคลิก โปรดเรียกใช้อินเทอร์เฟซนี้
/**
* รายงานการคลิกการแจ้งเตือนช่องทางผู้ผลิต
*
* ใช้ http/https ในการรายงาน
*
* @param context ต้องไม่เป็นค่าว่าง
* @param messageId รหัสข้อความของ Engagelab ต้องไม่เป็นค่าว่าง
* @param platform ผู้ผลิต ช่วงค่าคือ (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
* @param platformMessageId รหัสข้อความของผู้ผลิต สามารถเป็นค่าว่างได้
*/
public static void reportNotificationClicked(Context context, String messageId, byte platform, String platformMessageId)
ตัวอย่างโค้ดดังนี้
// รายงานการคลิกการแจ้งเตือนของผู้ผลิต โดย messageId คือ "12345" ผู้ผลิตคือ Xiaomi และรหัสข้อความของผู้ผลิตคือ "MI-6476RHT25"
MTPushPrivatesApi.reportNotificationClicked(context,"12345",MTPushPrivatesApi.PLATFORM_XIAOMI,"MI-6476RHT25");
reportNotificationDeleted
- โปรด init ก่อน มิฉะนั้นการเรียกจะไม่ถูกต้อง
- ไม่ได้รวมแพ็คเกจผู้ผลิตของ Engagelab แต่ต้องการให้ Engagelab นับอัตราการลบการแจ้งเตือน โปรดเรียกใช้อินเทอร์เฟซนี้
/**
* รายงานการลบการแจ้งเตือนช่องทางผู้ผลิต
*
* ใช้ http/https ในการรายงาน
*
* @param context ต้องไม่เป็นค่าว่าง
* @param messageId รหัสข้อความของ Engagelab ต้องไม่เป็นค่าว่าง
* @param platform ผู้ผลิต ช่วงค่าคือ (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
* @param platformMessageId รหัสข้อความของผู้ผลิต สามารถเป็นค่าว่างได้
*/
public static void reportNotificationDeleted(Context context, String messageId, byte platform, String platformMessageId)
ตัวอย่างโค้ดดังนี้
// รายงานการลบการแจ้งเตือนของผู้ผลิต โดย messageId คือ "12345" ผู้ผลิตคือ mi และรหัสข้อความของผู้ผลิตคือ "MI-6476RHT25"
MTPushPrivatesApi.reportNotificationDeleted(context,"12345",MTPushPrivatesApi.PLATFORM_XIAOMI,"MI-6476RHT25");
### reportNotificationOpened
> * โปรด [init](#init) ก่อน มิฉะนั้นการเรียกใช้จะไม่ถูกต้อง
> * หากแพ็กเกจผู้จำหน่ายของ Engagelab ไม่ได้ถูกรวมเข้าด้วยกัน แต่ต้องการให้ Engagelab นับอัตราการเปิดการแจ้งเตือน โปรดเรียกใช้อินเทอร์เฟซนี้
> * ผู้ผลิตบางราย (เช่น Huawei/Oppo/Vivo) ไม่ได้ให้การเรียกกลับสำหรับการมาถึงของการแจ้งเตือนและการคลิกการแจ้งเตือน หลังจากกำหนดค่ากิจกรรมที่การคลิกการแจ้งเตือนจะกระโดดไป คุณสามารถรับพารามิเตอร์รายงานในกิจกรรมที่กระโดดได้ ขอแนะนำให้ผู้ผลิตทั้งหมดกำหนดค่ากิจกรรมที่การคลิกการแจ้งเตือนจะกระโดดไป
> * เวอร์ชัน MTPush4.0.0 และสูงกว่าไม่จำเป็นต้องใช้สิ่งนี้
/**
* รายงานไปยังช่องทางของผู้ผลิตว่าการแจ้งเตือนถูกเปิด
*
* ใช้ http/https ในการรายงาน
*
* @param context ไม่สามารถเป็น null
* @param messageId รหัสข้อความของ Engagelab ไม่สามารถเป็น null
* @param platform ผู้ผลิต ช่วงค่าคือ (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
* @param platformMessageId รหัสข้อความของผู้จำหน่าย สามารถเป็น null
*/
public static void reportNotificationOpened(Context context, String messageId, byte platform, String platformMessageId)
ตัวอย่างโค้ดดังนี้:
Bundle bundle = intent.getExtras();
String platformMessage = "";
// Huawei
if (intent.getData() != null) {
platformMessage = intent.getData().toString();
}
// ผู้ผลิตรายอื่น
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));
// การแยกวิเคราะห์
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");
// รายงานการแจ้งเตือนและคลิกเพื่อเปิดกิจกรรม ขอแนะนำให้ผู้ผลิตทั้งหมดเพิ่มการกระโดดนี้ จำเป็นเฉพาะสำหรับเวอร์ชันต่ำกว่า MTPush4.0.0
MTPushPrivatesApi.reportNotificationOpened(this, messageId, platform, "");
### uploadPlatformToken
> * โปรด [init](#init) ก่อน มิฉะนั้นการเรียกใช้จะไม่ถูกต้อง
> * เนื่องจากการอัปโหลด TCP การเชื่อมต่อระยะยาวต้องสำเร็จ กล่าวคือ [onConnectStatus](#onConnectStatus) เรียกใช้อินเทอร์เฟซนี้หลังจากผลลัพธ์การเรียกกลับเป็นจริง
> * หากแพ็กเกจผู้จำหน่ายของ Engagelab ไม่ได้ถูกรวมเข้าด้วยกัน แต่ต้องการให้ Engagelab ส่งข้อความผู้จำหน่าย โปรดเรียกใช้อินเทอร์เฟซนี้
/**
* อัปโหลดโทเค็นของผู้ผลิต
*
* ใช้การอัปโหลด TCP
*
* @param context ไม่สามารถเป็น null
* @param platform ผู้ผลิต ช่วงค่าคือ (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
* @param token โทเค็นที่ผู้ผลิตส่งกลับมา ไม่สามารถเป็น null
* @param region เวอร์ชันต่างประเทศของ Xiaomi และ Oppo ต้องตั้งค่าภูมิภาค สำหรับเวอร์ชันระหว่างประเทศให้ใส่: "GLOBAL" และสำหรับเวอร์ชันที่ไม่ใช่ต่างประเทศให้ใส่: "NULL"
*/
public static void uploadPlatformToken(Context context, byte platform, String token, String region)
ตัวอย่างโค้ดดังนี้:
// รายงานโทเค็นของผู้ผลิต ผู้ผลิตคือ mi และโทเค็นของผู้ผลิตคือ "MI-6476s-afs-afs-afaR-HT25"
MTPushPrivatesApi.uploadPlatformToken(context, MTPushPrivatesApi.PLATFORM_XIAOMI, "MI-6476s-afs-afs-afaR-HT25", "NULL");
### clearPlatformToken
> * โปรด [init](#init) ก่อน มิฉะนั้นการเรียกใช้จะไม่ถูกต้อง
> * เนื่องจากใช้ TCP ในการอัปโหลด อินเทอร์เฟซนี้ควรถูกเรียกหลังจากการเชื่อมต่อระยะยาวสำเร็จ กล่าวคือเมื่อผลลัพธ์การเรียกกลับของ [onConnectStatus](#onConnectStatus) เป็นจริง
> * หากแพ็กเกจผู้จำหน่ายของ Engagelab ไม่ได้ถูกรวมเข้าด้วยกัน แต่ต้องการให้ Engagelab ส่งข้อความผู้จำหน่าย โปรดเรียกใช้อินเทอร์เฟซนี้
/**
* ล้างโทเค็น หลังจากเรียกใช้อินเทอร์เฟซนี้ โทเค็นสามารถรายงานได้เฉพาะผ่าน uploadPlatformToken SDK จะไม่ดึงและรายงานโทเค็นโดยอัตโนมัติอีกต่อไป และจะถูกรีเซ็ตหลังจากการเริ่มต้นใหม่แบบเย็น
* ฟังผ่านการเรียกกลับ onPlatformToken เมื่อแพลตฟอร์มการเรียกกลับเป็น -128 หมายถึงการล้างสำเร็จ
*
* ต้องการการเชื่อมต่อ TCP
*
* @param context ไม่สามารถเป็น null
*/
public static void clearPlatformToken(Context context)
ตัวอย่างโค้ดดังนี้:
MTPushPrivatesApi.clearPlatformToken(context);
### onFragmentResume
> * โปรดเรียก [init](#init) ก่อน มิฉะนั้นการเรียกใช้จะไม่ถูกต้อง
```java
/**
* @param context ไม่สามารถเป็น null
* @param fragmentName ชื่อคลาสเต็มของ Fragment (this.getClass().getCanonicalName())
*/
public static void onFragmentResume(Context context, String fragmentName)
onFragmentPause
- โปรดเรียก init ก่อน มิฉะนั้นการเรียกใช้จะไม่ถูกต้อง
/**
* @param context ไม่สามารถเป็น null
* @param fragmentName ชื่อคลาสเต็มของ Fragment (this.getClass().getCanonicalName())
*/
public static void onFragmentPause(Context context, String fragmentName)
คำแนะนำการใช้งาน: เนื่องจากมีสี่วิธีในการเพิ่ม Fragment ใน Android แต่ละวิธีต้องการการจัดการ Fragment ที่แตกต่างกัน ด้านล่างเป็นคำอธิบายสำหรับการควบคุมการแสดงผลในแอปสำหรับ Fragment ที่ระบุโดยอิงจากสี่วิธีเหล่านี้
วิธีการใช้ Fragment | สามารถฟังวงจรชีวิตของ Fragment ได้หรือไม่ | วิธีการเรียกอินเทอร์เฟซการแสดงผลแบบไดนามิกของ JPush |
---|---|---|
วิธีที่ 1: add/show/hide | ไม่สามารถฟังวงจรชีวิตได้ | เรียก onFragmentResume และ onHiddenChanged ใน Fragment |
วิธีที่ 2: ViewPager | ไม่สามารถฟังวงจรชีวิตได้ | เรียก setUserVisibleHint ใน Fragment |
วิธีที่ 3: replace | สามารถฟังวงจรชีวิตได้ | เรียกวิธีวงจรชีวิต onResume และ onPause ใน Fragment |
วิธีที่ 4: attach/detach | สามารถฟังวงจรชีวิตได้ | เรียกวิธีวงจรชีวิต onResume และ onPause ใน Fragment |
วิธี add/show/hide
1) เรียกอินเทอร์เฟซควบคุมแบบไดนามิกในฟังก์ชัน callback onCreateView ของ Fragment และส่งพารามิเตอร์ที่ต้องการ @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) เรียกอินเทอร์เฟซควบคุมแบบไดนามิกใน callback onHiddenChanged ของ Fragment และส่งพารามิเตอร์ที่ต้องการ @Override public void onHiddenChanged(boolean hidden) { String classname = this.getClass().getCanonicalName(); if (!hidden) { // context ควรเป็น context ของแอปพลิเคชัน MTPushPrivatesApi.onFragmentResumed(MyApplication.gContext, classname); } else { // ซ่อน MTPushPrivatesApi.onFragmentPaused(MyApplication.gContext, classname); } super.onHiddenChanged(hidden); }1) เรียกอินเทอร์เฟซควบคุมแบบไดนามิกในฟังก์ชัน callback onCreateView ของ Fragment และส่งพารามิเตอร์ที่ต้องการ @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) เรียกอินเทอร์เฟซควบคุมแบบไดนามิกใน callback onHiddenChanged ของ Fragment และส่งพารามิเตอร์ที่ต้องการ @Override public void onHiddenChanged(boolean hidden) { String classname = this.getClass().getCanonicalName(); if (!hidden) { // context ควรเป็น context ของแอปพลิเคชัน MTPushPrivatesApi.onFragmentResumed(MyApplication.gContext, classname); } else { // ซ่อน MTPushPrivatesApi.onFragmentPaused(MyApplication.gContext, classname); } super.onHiddenChanged(hidden); }
โค้ดนี้โชว์เป็นหน้าต่างลอยวิธี ViewPager
1) เรียกอินเทอร์เฟซควบคุมแบบไดนามิกใน callback setUserVisibleHint ของ Fragment และส่งพารามิเตอร์ที่ต้องการ @Override public void setUserVisibleHint(boolean isVisibleToUser) { String classname = this.getClass().getCanonicalName(); if (isVisibleToUser) { // ส่ง context ของแอปพลิเคชัน MTPushPrivatesApi.onFragmentResumed(MyApplication.gContext, classname); } else { // ซ่อน MTPushPrivatesApi.onFragmentPause(MyApplication.gContext, classname); } super.setUserVisibleHint(isVisibleToUser); }1) เรียกอินเทอร์เฟซควบคุมแบบไดนามิกใน callback setUserVisibleHint ของ Fragment และส่งพารามิเตอร์ที่ต้องการ @Override public void setUserVisibleHint(boolean isVisibleToUser) { String classname = this.getClass().getCanonicalName(); if (isVisibleToUser) { // ส่ง context ของแอปพลิเคชัน MTPushPrivatesApi.onFragmentResumed(MyApplication.gContext, classname); } else { // ซ่อน MTPushPrivatesApi.onFragmentPause(MyApplication.gContext, classname); } super.setUserVisibleHint(isVisibleToUser); }
โค้ดนี้โชว์เป็นหน้าต่างลอยวิธี replace หรือ attach/detach
เรียกอินเทอร์เฟซการกำหนดค่าหน้าแบบไดนามิกใน callback วงจรชีวิตของ Fragment ที่เพิ่มเข้ามา @Override public void onResume() { // ส่ง context ของแอปพลิเคชัน 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(); }เรียกอินเทอร์เฟซการกำหนดค่าหน้าแบบไดนามิกใน callback วงจรชีวิตของ Fragment ที่เพิ่มเข้ามา @Override public void onResume() { // ส่ง context ของแอปพลิเคชัน 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(); }
โค้ดนี้โชว์เป็นหน้าต่างลอย
MTCommonReceiver
- ใช้สำหรับการเรียกกลับของเมธอดเป็นหลัก
- การเรียกกลับของเมธอดทั้งหมดในคลาสนี้อยู่ในกระบวนการหลัก
onNotificationStatus
- ทุกครั้งที่ SDK เริ่มต้น สถานะสวิตช์การแจ้งเตือนปัจจุบันจะถูกเรียกกลับ
- การเรียกกลับจะเกิดขึ้นเฉพาะเมื่อมีการเปลี่ยนแปลงในสวิตช์การแจ้งเตือนในภายหลัง
/**
* การเรียกกลับสถานะสวิตช์การแจ้งเตือนของแอปพลิเคชัน
*
* @param context ไม่สามารถเป็น null
* @param enable สวิตช์การแจ้งเตือนเปิดอยู่หรือไม่ true คือเปิด false คือปิด
*/
@Override
public void onNotificationStatus(Context context, boolean enable)
onConnectStatus
/**
* การเชื่อมต่อระยะยาวสำเร็จหรือไม่
*
* หลังจากการเริ่มต้น จะมีการเชื่อมต่อระยะยาว และเมธอดนี้จะถูกเรียกกลับเมื่อการเชื่อมต่อสำเร็จหรือไม่สำเร็จ
*
* @param context ไม่สามารถเป็น null
* @param enable การเชื่อมต่อระยะยาวสำเร็จหรือไม่ true หมายถึงสำเร็จ false หมายถึงไม่สำเร็จ
*/
public void onConnectStatus(Context context, boolean enable)
onNotificationArrived
- ช่องทาง Engagelab/Xiaomi/Meizu จะมีการเรียกกลับเมธอดนี้ (ช่องทาง Google ต้องอยู่ในโหมด foreground เพื่อให้มีการเรียกกลับ)
- notificationMessage ดูรายละเอียดได้ที่ NotificationMessage
/**
* การส่งข้อความการแจ้งเตือน
*
* เมธอดนี้จะถูกเรียกกลับเมื่อข้อความการแจ้งเตือนถูกส่ง
*
* @param context ไม่สามารถเป็น null
* @param notificationMessage ข้อความการแจ้งเตือน
*/
public void onNotificationArrived(Context context, NotificationMessage notificationMessage)
### onNotificationUnShow
> * การแจ้งเตือนที่ส่งในพื้นหลังจะไม่แสดงในส่วนหน้า แอปพลิเคชันมือถือจะเรียกใช้วิธีนี้เมื่ออยู่ในส่วนหน้า
/**
* การแจ้งเตือนไม่แสดงในส่วนหน้า
*
* @param context ไม่เป็น null
* @param notificationMessage ข้อความการแจ้งเตือน
*/
@Override
public void onNotificationUnShow(Context context, NotificationMessage notificationMessage)
### onNotificationClicked
> * รายละเอียด notificationMessage ดูได้ที่ [NotificationMessage](#NotificationMessage)
/**
* คลิกข้อความการแจ้งเตือน
*
- การคลิกข้อความการแจ้งเตือนจะเรียกใช้วิธีนี้
- * @param context ไม่เป็น null * @param notificationMessage ข้อความการแจ้งเตือน */ public void onNotificationClicked(Context context, NotificationMessage notificationMessage)
* @param context ไม่เป็น null * @param notificationMessage ข้อความการแจ้งเตือน */ public void onNotificationClicked(Context context, NotificationMessage notificationMessage)
โค้ดนี้โชว์เป็นหน้าต่างลอย
### onNotificationDeleted
> * การลบข้อความการแจ้งเตือนของช่องทาง Engagelab เท่านั้นที่จะถูกเรียกใช้
> * รายละเอียด notificationMessage ดูได้ที่ [NotificationMessage](#NotificationMessage)
> * ไม่สามารถเรียกกลับได้เมื่อแอปพลิเคชันอยู่ในสถานะปิด
/**
* ลบข้อความการแจ้งเตือน
*
- การลบข้อความการแจ้งเตือนจะเรียกใช้วิธีนี้
- * @param context ไม่เป็น null * @param notificationMessage ข้อความการแจ้งเตือน */ public void onNotificationDeleted(Context context, NotificationMessage notificationMessage)
* @param context ไม่เป็น null * @param notificationMessage ข้อความการแจ้งเตือน */ public void onNotificationDeleted(Context context, NotificationMessage notificationMessage)
โค้ดนี้โชว์เป็นหน้าต่างลอย
### onCustomMessage
> * ข้อความที่กำหนดเองจะไม่แสดงในแถบการแจ้งเตือน
> * การลบข้อความการแจ้งเตือนของช่องทาง Engagelab เท่านั้นที่จะถูกเรียกใช้
> * รายละเอียด customMessage ดูได้ที่ [CustomMessage](#CustomMessage)
/**
* ส่งข้อความที่กำหนดเอง
*
* จะเรียกใช้วิธีนี้เมื่อข้อความที่กำหนดเองถูกส่งถึง
*
* @param context ไม่เป็น null
* @param customMessage ข้อความที่กำหนดเอง
*/
public void onCustomMessage(Context context, CustomMessage customMessage)
### onTagMessage
> * รายละเอียด tagMessage ดูได้ที่ [TagMessage](#TagMessage)
/**
* ข้อความการดำเนินการ tag
*
* @param context ไม่เป็น null
* @param tagMessage ข้อมูล tag
*/
public void onTagMessage(Context context, TagMessage tagMessage)
### onAliasMessage
> * รายละเอียด aliasMessage ดูได้ที่ [AliasMessage](#AliasMessage)
/**
* ข้อความการดำเนินการ alias
*
* @param context ApplicationContext วัตถุ
* @param aliasMessage ข้อความ alias
*/
public void onAliasMessage(Context context, AliasMessage aliasMessage)
### onPlatformToken
> * การเรียกกลับข้อความ token ของผู้ผลิต
/**
* ข้อความการดำเนินการของผู้ผลิต
*
* @param context ApplicationContext วัตถุ
* @param platformMessage ข้อความ token ของผู้ผลิต
*/
public void onPlatformToken(Context context, PlatformTokenMessage platformMessage)
### onInAppMessageShow
> * การเรียกกลับการแสดงข้อความในแอปพลิเคชัน
```java
/**
*
*
* @param context ApplicationContext วัตถุ
* @param inAppMessage ข้อความในแอปพลิเคชัน
*/
public void onInAppMessageShow(Context context, InAppMessage inAppMessage)
onInAppMessageClick
- การเรียกกลับการคลิกข้อความในแอปพลิเคชัน
/**
*
*
* @param context ApplicationContext วัตถุ
* @param inAppMessage ข้อความในแอปพลิเคชัน
*/
public void onInAppMessageClick(Context context, InAppMessage inAppMessage)
การตั้งค่า NotificationChannel
เวอร์ชันที่รองรับ
รองรับตั้งแต่เวอร์ชัน: MTPush SDK v3.3.0
คำอธิบายฟังก์ชัน
ตั้งแต่ Android 8.0 เป็นต้นไป การแจ้งเตือนจะถูกจัดการผ่าน NotificationChannels นักพัฒนาสามารถกำหนด NotificationChannels เอง และระบุ channelId ในการส่งการแจ้งเตือนผ่าน API; บนอุปกรณ์ที่รัน Android 8.0 หรือสูงกว่า การแจ้งเตือนจะค้นหา channelId ที่กำหนดไว้ก่อน และระดับความสำคัญของการแจ้งเตือน, เสียง, การสั่น และ LED จะถูกกำหนดโดยช่อง; หากไม่พบ channelId หรืออยู่ในช่วงเงียบ จะใช้ช่องทาง engagelab โดยค่าเริ่มต้น
ตัวอย่างการกำหนด NotificationChannel
private void initChannel(){ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
if (nm != null){ NotificationChannelGroup notificationChannelGroup = new NotificationChannelGroup("MyGroupId", "กลุ่มการแจ้งเตือนที่กำหนดเอง");
nm.createNotificationChannelGroup(notificationChannelGroup);
NotificationChannel notificationChannel = new NotificationChannel("MyChannelId", "การแจ้งเตือนที่กำหนดเอง", NotificationManager.IMPORTANCE_HIGH);
notificationChannel.setGroup("MyGroupId");
notificationChannel.enableLights(true);
notificationChannel.enableVibration(true);
notificationChannel.setSound("android.resource:// package_name /raw/ ringtone_file", null); // ตั้งค่าเสียงที่กำหนดเอง
nm.createNotificationChannel(notificationChannel);
}
}
}
NotificationMessage
- ข้อความการแจ้งเตือน
คุณสมบัติ | ประเภท | คำอธิบาย |
---|---|---|
messageId | String | จำเป็นต้องกรอก Engagelab message ID ใช้สำหรับการติดตามและสถิติข้อความ ห้ามว่าง หากว่างการแจ้งเตือนจะไม่แสดง |
overrideMessageId | String | Engagelab override message ID ใช้สำหรับการติดตามและสถิติข้อความ |
platform | byte | ประเภทผู้ผลิต ค่าเริ่มต้นคือ Engagelab MTPushPrivatesApi.PLATFORM_DEFAULT : 0 Xiaomi: MTPushPrivatesApi.PLATFORM_XIAOMI : 1 Huawei: MTPushPrivatesApi.PLATFORM_HUAWEI : 2 Meizu: MTPushPrivatesApi.PLATFORM_MEIZU : 3 Oppo: MTPushPrivatesApi.PLATFORM_OPPO : 4 Vivo: MTPushPrivatesApi.PLATFORM_VIVO : 5 Honor: MTPushPrivatesApi.PLATFORM_HONOR : 7 Google: MTPushPrivatesApi.PLATFORM_GOOGLE : 8 |
platformMessageId | String | ID ข้อความของผู้ผลิต ใช้สำหรับการติดตามและสถิติข้อความของผู้ผลิต |
notificationId | int | ID การแจ้งเตือน สามารถยกเลิกการแจ้งเตือนได้โดยเรียก clearNotification |
smallIcon | String | ไอคอนเล็ก ค่าเริ่มต้น: drawable/mtpush_notification_icon.png |
largeIcon | String | ไอคอนใหญ่ มักจะแสดงทางด้านขวาของการแจ้งเตือน |
title | String | หัวข้อการแจ้งเตือน หากว่างจะใช้ชื่อแอปพลิเคชันแทน |
content | String | จำเป็นต้องกรอก เนื้อหาการแจ้งเตือน ห้ามว่าง หากว่างการแจ้งเตือนจะไม่แสดง |
extras | Bundle | ฟิลด์เพิ่มเติมในรูปแบบ key/value ทั้งหมดเป็น String |
builderId | int | ID รูปแบบการแจ้งเตือน สามารถตั้งค่าได้โดย setNotificationLayout ค่าเริ่มต้นคือรูปแบบระบบ |
style | int | รูปแบบการแจ้งเตือน ค่าเริ่มต้นคือ 0 รูปแบบข้อความใหญ่ (NOTIFICATION_STYLE_BIG_TEXT): 1 รูปแบบกล่องจดหมาย (NOTIFICATION_STYLE_INBOX): 2 รูปแบบรูปภาพใหญ่ (NOTIFICATION_STYLE_BIG_PICTURE): 3 |
bigText | String | ข้อความใหญ่ เมื่อรูปแบบเป็น NOTIFICATION_STYLE_BIG_TEXT จะมีผล |
inbox | String[] | กล่องจดหมาย เมื่อรูปแบบเป็น NOTIFICATION_STYLE_INBOX จะมีผล |
bigPicture | String | รูปภาพใหญ่ เมื่อรูปแบบเป็น NOTIFICATION_STYLE_BIG_PICTURE จะมีผล |
priority | int | ลำดับความสำคัญของการแจ้งเตือน ค่าเริ่มต้นคือ 0 ลำดับความสำคัญต่ำ การแจ้งเตือนไม่มี LED, การสั่น และเสียง (Notification.PRIORITY_LOW: -1) ลำดับความสำคัญปกติ การแจ้งเตือนสามารถมี LED, การสั่น และเสียง (Notification.PRIORITY_DEFAULT: 0) ลำดับความสำคัญสูง การแจ้งเตือนสามารถมี LED, การสั่น, เสียง และสามารถแสดงหน้าต่างลอย (Notification.PRIORITY_HIGH: 1) |
defaults | int | ค่าเริ่มต้นของเสียง, การสั่น และ LED ค่าเริ่มต้น: Notification.DEFAULT_ALL: -1 เสียง: Notification.DEFAULT_SOUND: 1 การสั่น: Notification.DEFAULT_VIBRATE: 2 LED: Notification.DEFAULT_LIGHTS: 4 ค่าพวกนี้สามารถรวมกันได้ เช่น 7 หมายถึงเสียง, การสั่น และ LED ตั้งแต่ Android 8.0 เป็นต้นไป คุณสมบัตินี้จะปฏิบัติตามการตั้งค่าช่อง |
category | String | หมวดหมู่การแจ้งเตือน ใช้สำหรับการจัดเรียงหรือกรองในแถบการแจ้งเตือน หมวดหมู่มีหลากหลาย เช่น Notification.CATEGORY_ALARM, Notification#CATEGORY_CALL เป็นต้น |
sound | String | ไฟล์เสียงที่แนบมากับการแจ้งเตือน ไฟล์เสียงต้องมีอยู่ล่วงหน้าในไดเรกทอรี res/raw ตั้งแต่ Android 8.0 เป็นต้นไป เสียงจะปฏิบัติตามการตั้งค่าช่อง หากช่องที่ใช้ในการแจ้งเตือนไม่ได้ตั้งค่าเสียง เสียงที่กำหนดเองจะไม่มีผล แนะนำให้ตั้งค่าเสียงในช่องล่วงหน้า และตรวจสอบให้แน่ใจว่าเสียงของการแจ้งเตือนในภายหลังสอดคล้องกับเสียงใน channelId เพื่อรักษาผลลัพธ์เสียงของการแจ้งเตือนให้สม่ำเสมอ |
channelId | String | จำเป็นต้องกรอกตั้งแต่ Android 8.0 หากไม่ได้ตั้งค่าล่วงหน้า SDK จะช่วยตั้งค่า (ใช้ได้เฉพาะกับช่องทาง Engagelab และช่องทาง Google เมื่อแอปพลิเคชันอยู่ในส่วนหน้า) |
intentUri | String | การดำเนินการ Intent URI หลังจากคลิกการแจ้งเตือน ปัจจุบันรองรับเฉพาะ activity ผ่าน Intent.toURI() เพื่อแปลงการกระโดด activity |
badge | int | จำนวนมุมที่เพิ่มขึ้นของการแจ้งเตือนนี้ สะสม ค่า > 0 แนะนำให้ตั้งค่าเป็น 1 ใช้ได้เฉพาะกับ Huawei และ Xiaomi สำหรับ Xiaomi หลังจากคลิกการแจ้งเตือน จำนวนมุมจะลดลงโดยอัตโนมัติ 1 สำหรับ Huawei หลังจากคลิกการแจ้งเตือน จำนวนมุมจะไม่ลดลงโดยอัตโนมัติ 1 แนะนำให้ใช้ setNotificationBadge ตั้งค่า |
CustomMessage
- ข้อความที่กำหนดเอง
คุณสมบัติ | ประเภท | คำอธิบาย |
---|---|---|
messageId | String | จำเป็นต้องกรอก ID ข้อความของ Engagelab ใช้สำหรับการติดตามและสถิติข้อความ ห้ามปล่อยว่าง |
platform | byte | ประเภทผู้ผลิต ค่าเริ่มต้นคือ Engagelab MTPushPrivatesApi.PLATFORM_DEFAULT : 0 Xiaomi: MTPushPrivatesApi.PLATFORM_XIAOMI : 1 Huawei: MTPushPrivatesApi.PLATFORM_HUAWEI : 2 Meizu: MTPushPrivatesApi.PLATFORM_MEIZU : 3 Oppo: MTPushPrivatesApi.PLATFORM_OPPO : 4 Vivo: MTPushPrivatesApi.PLATFORM_VIVO : 5 Honor: MTPushPrivatesApi.PLATFORM_HONOR : 7 Google: MTPushPrivatesApi.PLATFORM_GOOGLE : 8 |
platformMessageId | String | ID ข้อความของผู้ผลิต ใช้สำหรับการติดตามและสถิติข้อความของผู้ผลิต |
title | String | หัวข้อข้อความ |
content | String | เนื้อหาข้อความ |
contentType | String | ประเภทข้อความ |
extras | Bundle | ฟิลด์เพิ่มเติมในรูปแบบคีย์/ค่า ทั้งหมดเป็นประเภท String |
TagMessage
- ข้อความแท็ก
คุณสมบัติ | ประเภท | คำอธิบาย |
---|---|---|
sequence | int | หมายเลขลำดับการดำเนินการที่ผู้ใช้กำหนด ส่งกลับพร้อมผลการดำเนินการ ใช้ระบุความเป็นเอกลักษณ์ของการดำเนินการ |
code | int | ผลการดำเนินการ รายละเอียดดูที่ code |
tags | String[] | อาร์เรย์แท็ก การดำเนินการต่อไปนี้จะส่งกลับ: addTag deleteTag updateTag queryAllTag |
queryTag | String | แท็ก การดำเนินการต่อไปนี้จะส่งกลับ: queryTag |
queryTagValid | boolean | สถานะแท็ก การดำเนินการต่อไปนี้จะส่งกลับ: queryTag |
AliasMessage
- ข้อความนามแฝง
คุณสมบัติ | ประเภท | คำอธิบาย |
---|---|---|
sequence | int | หมายเลขลำดับการดำเนินการที่ผู้ใช้กำหนด ส่งกลับพร้อมผลการดำเนินการ ใช้ระบุความเป็นเอกลักษณ์ของการดำเนินการ |
code | int | ผลการดำเนินการ รายละเอียดดูที่ code |
alias | String | นามแฝง การดำเนินการต่อไปนี้จะส่งกลับ: setAlias getAlias |
PlatformTokenMessage
- ข้อความโทเค็นแพลตฟอร์ม
คุณสมบัติ | ประเภท | คำอธิบาย |
---|---|---|
platform | byte | ประเภทผู้ผลิต ค่าเริ่มต้นคือ Engagelab MTPushPrivatesApi.PLATFORM_DEFAULT : 0 Xiaomi: MTPushPrivatesApi.PLATFORM_XIAOMI : 1 Huawei: MTPushPrivatesApi.PLATFORM_HUAWEI : 2 Meizu: MTPushPrivatesApi.PLATFORM_MEIZU : 3 Oppo: MTPushPrivatesApi.PLATFORM_OPPO : 4 Vivo: MTPushPrivatesApi.PLATFORM_VIVO : 5 Honor: MTPushPrivatesApi.PLATFORM_HONOR : 7 Google: MTPushPrivatesApi.PLATFORM_GOOGLE : 8 |
token | String | โทเค็นที่ผู้ผลิตส่งกลับ |
InAppMessage
- ข้อความในแอป
คุณสมบัติ | ประเภท | คำอธิบาย |
---|---|---|
messageId | String | จำเป็นต้องกรอก ID ข้อความของ Engagelab ใช้สำหรับการติดตามและสถิติข้อความ ห้ามปล่อยว่าง มิฉะนั้นข้อความจะไม่แสดง |
overrideMessageId | String | ID ข้อความที่ถูกแทนที่ของ Engagelab ใช้สำหรับการติดตามและสถิติข้อความ |
target | String | เส้นทางหน้าที่เป้าหมายสำหรับการแสดงข้อความในแอป |
imageUrl | String | URL ของภาพในข้อความในแอป |
extras | String | ข้อมูลเพิ่มเติมที่ส่งผ่าน |
content | String | เนื้อหาของข้อความในแอป |
expired | long | เวลาหมดอายุ |
delay | long | เวลาหน่วงสำหรับการแสดงข้อความ |
interval | long | ช่วงเวลาสำหรับการแสดงข้อความในแอป |
duration | long | ระยะเวลาการแสดงข้อความในแอป |
msgTime | long | เวลาที่ SDK รับข้อความในแอป |
コード
コード | 整数値 | 説明 |
---|---|---|
SUCCESS | 0 | 成功 |
NULL_TAG_AND_ALIAS | 6001 | 無効な設定 |
TIMEOUT | 6002 | タイムアウト、再試行を推奨。通常、ネットワークが不安定または初期化が完了していない場合に発生 |
INVALID_ALIAS | 6003 | エイリアス文字列が無効です。有効なエイリアスおよびタグは以下で構成されます:英字(大文字小文字区別)、数字、アンダースコア、中国語文字、特殊文字(2.1.6でサポート)@!#$&*+=.| |
TOO_LONG_ALIAS | 6004 | エイリアスが長すぎます。最大40バイト、中国語UTF-8は3バイトです |
INVALID_TAGS | 6005 | タグ文字列が無効です。有効なエイリアスおよびタグは以下で構成されます:英字(大文字小文字区別)、数字、アンダースコア、中国語文字、特殊文字(2.1.6でサポート)@!#$&*+=.| |
TOO_LONG_TAG | 6006 | タグが長すぎます。単一のタグは最大40バイト、中国語UTF-8は3バイトです |
TOO_MANY_TAGS | 6007 | 単一の操作でデバイスにバインドされるタグの数が制限を超えました。1回の操作で最大1000個までです。 |
TOO_LONG_TAGS | 6008 | 単一リクエスト内のタグ操作の長さが5000を超えました |
UNKNOWN_ERROR | 6009 | 不明なエラー |
INVALID_JSON | 6010 | 無効なJSON |
INVOKE_TOO_SOON | 6012 | タグ/エイリアス操作が頻繁すぎます |
CONNECT_NOT_ENABLE | 6013 | CONNECT_NOT_ENABLE |
INVALID_MOBILE_NUMBER | 6023 | 無効な携帯電話番号 |