厂商通道集成文档
最新更新:2023-03-02
前提是已经集成Engagelab通道
1.libs导包和资源文件
- 将mt-sdk-platform-x.x.x.aar导入libs目录
- 将th-sdk-platform-x.x.x.aar导入libs目录
- 在res/drawable/下放好命名为
mtpush_notification_icon.png
的通知小图标。如果没配置,sdk会取应用图标,android高版本会出现显示异常问题 - huawei通道需要
agconnect-services.json
文件,配置在应用的 module 目录下,请在huawei通道控制台获取 - google通道需要
google-services.json
文件,配置在应用的 module 目录下,请在google通道控制台 获取 - meizu通道获取不到token,尝试在 gradle.properties 中添加 android.enableR8 = false 进行关闭 R8
2.build.gradle配置
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
mavenCentral()
// huawei push need,不需要 huawei 通道,则删除
maven { url 'https://developer.huawei.com/repo/' }
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0'
// google push need,and google push need AndroidX,不需要 google 通道,则删除
// 请在gradle.properties中加入android.useAndroidX=true
classpath 'com.google.gms:google-services:4.3.15'
// huawei push need,不需要 huawei 通道,则删除
classpath 'com.huawei.agconnect:agcp:1.6.0.300'
}
}
allprojects {
repositories {
google()
mavenCentral()
// huawei push need,不需要 huawei 通道,则删除
maven { url 'https://developer.huawei.com/repo/' }
}
}
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
mavenCentral()
// huawei push need,不需要 huawei 通道,则删除
maven { url 'https://developer.huawei.com/repo/' }
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0'
// google push need,and google push need AndroidX,不需要 google 通道,则删除
// 请在gradle.properties中加入android.useAndroidX=true
classpath 'com.google.gms:google-services:4.3.15'
// huawei push need,不需要 huawei 通道,则删除
classpath 'com.huawei.agconnect:agcp:1.6.0.300'
}
}
allprojects {
repositories {
google()
mavenCentral()
// huawei push need,不需要 huawei 通道,则删除
maven { url 'https://developer.huawei.com/repo/' }
}
}
此代码块在浮窗中显示
plugins {
id 'com.android.application'
// google push need,不需要 google 通道,则删除
id 'com.google.gms.google-services'
// huawei push need,不需要 huawei 通道,则删除
id 'com.huawei.agconnect'
}
android {
......
// google/huawei push need,it needs to be the same as the one on google/huawei console.
signingConfigs {
debug {
storeFile file("android.keystore")
storePassword "123456"
keyAlias "keyAlias"
keyPassword "123456"
}
release {
storeFile file("android.keystore")
storePassword "123456"
keyAlias "keyAlias"
keyPassword "123456"
}
}
defaultConfig {
// app packageName,需要与控制台上的一样
applicationId "com.engagelab.app"
......
manifestPlaceholders = [
//appKey,需要与控制台上的一样,与packageName是一对一关系
ENGAGELAB_PRIVATES_APPKEY : "您的appkey",
// Engagelab appChannel,用于渠道统计
ENGAGELAB_PRIVATES_CHANNEL: "developer",
// Engagelab process,Engagelabsdk工作所在的进程,注意:开头
ENGAGELAB_PRIVATES_PROCESS: ":remote",
// mi client 配置,需要与小米控制台上的一样,还需要在Portal控制台配置 server 配置
XIAOMI_APPID : "MI-您的,对应平台信息",
XIAOMI_APPKEY : "MI-您的,对应平台信息",
// mz client 配置,需要与魅族控制台上的一样,还需要在Portal控制台配置 server 配置
MEIZU_APPID : "MZ-您的,对应平台信息",
MEIZU_APPKEY : "MZ-您的,对应平台信息",
// oppo client 配置,需要与oppo控制台上的一样,还需要在Portal控制台配置 server 配置
OPPO_APPID : "OP-您的,对应平台信息",
OPPO_APPKEY : "OP-您的,对应平台信息",
OPPO_APPSECRET : "OP-您的,对应平台信息",
// vivo client 配置,需要与vivo控制台上的一样,还需要在Portal控制台配置 server 配置
VIVO_APPID : "您的,对应平台信息",
VIVO_APPKEY : "您的,对应平台信息",
HONOR_APPID : "您的,对应平台信息",
]
}
// google push need java 1.8,不需要 google 通道,则删除
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
// 引用libs/aar包
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
// google push need,不需要 google 通道,则删除
// implementation 'com.google.firebase:firebase-messaging:23.2.0'
// huawei push need,不需要 huawei 通道,则删除
//implementation 'com.huawei.hms:push:6.11.0.300'
//oppo以下依赖都需要添加,不需要 oppo 通道,则删除
// implementation 'com.google.code.gson:gson:2.8.9'
// implementation 'commons-codec:commons-codec:1.13'
// implementation 'androidx.annotation:annotation:1.1.0'
}
plugins {
id 'com.android.application'
// google push need,不需要 google 通道,则删除
id 'com.google.gms.google-services'
// huawei push need,不需要 huawei 通道,则删除
id 'com.huawei.agconnect'
}
android {
......
// google/huawei push need,it needs to be the same as the one on google/huawei console.
signingConfigs {
debug {
storeFile file("android.keystore")
storePassword "123456"
keyAlias "keyAlias"
keyPassword "123456"
}
release {
storeFile file("android.keystore")
storePassword "123456"
keyAlias "keyAlias"
keyPassword "123456"
}
}
defaultConfig {
// app packageName,需要与控制台上的一样
applicationId "com.engagelab.app"
......
manifestPlaceholders = [
//appKey,需要与控制台上的一样,与packageName是一对一关系
ENGAGELAB_PRIVATES_APPKEY : "您的appkey",
// Engagelab appChannel,用于渠道统计
ENGAGELAB_PRIVATES_CHANNEL: "developer",
// Engagelab process,Engagelabsdk工作所在的进程,注意:开头
ENGAGELAB_PRIVATES_PROCESS: ":remote",
// mi client 配置,需要与小米控制台上的一样,还需要在Portal控制台配置 server 配置
XIAOMI_APPID : "MI-您的,对应平台信息",
XIAOMI_APPKEY : "MI-您的,对应平台信息",
// mz client 配置,需要与魅族控制台上的一样,还需要在Portal控制台配置 server 配置
MEIZU_APPID : "MZ-您的,对应平台信息",
MEIZU_APPKEY : "MZ-您的,对应平台信息",
// oppo client 配置,需要与oppo控制台上的一样,还需要在Portal控制台配置 server 配置
OPPO_APPID : "OP-您的,对应平台信息",
OPPO_APPKEY : "OP-您的,对应平台信息",
OPPO_APPSECRET : "OP-您的,对应平台信息",
// vivo client 配置,需要与vivo控制台上的一样,还需要在Portal控制台配置 server 配置
VIVO_APPID : "您的,对应平台信息",
VIVO_APPKEY : "您的,对应平台信息",
HONOR_APPID : "您的,对应平台信息",
]
}
// google push need java 1.8,不需要 google 通道,则删除
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
// 引用libs/aar包
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
// google push need,不需要 google 通道,则删除
// implementation 'com.google.firebase:firebase-messaging:23.2.0'
// huawei push need,不需要 huawei 通道,则删除
//implementation 'com.huawei.hms:push:6.11.0.300'
//oppo以下依赖都需要添加,不需要 oppo 通道,则删除
// implementation 'com.google.code.gson:gson:2.8.9'
// implementation 'commons-codec:commons-codec:1.13'
// implementation 'androidx.annotation:annotation:1.1.0'
}
此代码块在浮窗中显示
3.不导入mt-sdk-platform-x.x.x.aar,仍使用Engagelab推送厂商消息
/**
* 上报厂商通道通知到达
*
* 走http/https上报
*
* @param context 不为空
* @param messageId Engagelab消息id,不为空
* @param platform 厂商,取值范围(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、8:google)
* @param platformMessageId 厂商消息id,可为空
*/
public static void reportNotificationArrived(Context context, String messageId, byte platform, String platformMessageId)
/**
* 上报厂商通道通知到达
*
* 走http/https上报
*
* @param context 不为空
* @param messageId Engagelab消息id,不为空
* @param platform 厂商,取值范围(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、8:google)
* @param platformMessageId 厂商消息id,可为空
*/
public static void reportNotificationArrived(Context context, String messageId, byte platform, String platformMessageId)
此代码块在浮窗中显示
/**
* 上报厂商通道通知点击
*
* 走http/https上报
*
* @param context 不为空
* @param messageId Engagelab消息id,不为空
* @param platform 厂商,取值范围(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、7:honor、8:google)
* @param platformMessageId 厂商消息id,可为空
*/
public static void reportNotificationClicked(Context context, String messageId, byte platform, String platformMessageId)
/**
* 上报厂商通道通知点击
*
* 走http/https上报
*
* @param context 不为空
* @param messageId Engagelab消息id,不为空
* @param platform 厂商,取值范围(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、7:honor、8:google)
* @param platformMessageId 厂商消息id,可为空
*/
public static void reportNotificationClicked(Context context, String messageId, byte platform, String platformMessageId)
此代码块在浮窗中显示
/**
* 上报厂商通道通知删除
*
* 走http/https上报
*
* @param context 不为空
* @param messageId Engagelab消息id,不为空
* @param platform 厂商,取值范围(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、7:honor、8:google)
* @param platformMessageId 厂商消息id,可为空
*/
public static void reportNotificationDeleted(Context context, String messageId, byte platform, String platformMessageId)
/**
* 上报厂商通道通知删除
*
* 走http/https上报
*
* @param context 不为空
* @param messageId Engagelab消息id,不为空
* @param platform 厂商,取值范围(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、7:honor、8:google)
* @param platformMessageId 厂商消息id,可为空
*/
public static void reportNotificationDeleted(Context context, String messageId, byte platform, String platformMessageId)
此代码块在浮窗中显示
/**
* 上报厂商通道通知打开
*
* 走http/https上报
*
* @param context 不为空
* @param messageId Engagelab消息id,不为空
* @param platform 厂商,取值范围(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、7:honor、8:google)
* @param platformMessageId 厂商消息id,可为空
*/
public static void reportNotificationOpened(Context context, String messageId, byte platform, String platformMessageId)
/**
* 上报厂商通道通知打开
*
* 走http/https上报
*
* @param context 不为空
* @param messageId Engagelab消息id,不为空
* @param platform 厂商,取值范围(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、7:honor、8:google)
* @param platformMessageId 厂商消息id,可为空
*/
public static void reportNotificationOpened(Context context, String messageId, byte platform, String platformMessageId)
此代码块在浮窗中显示
/**
* 上传厂商token
*
* 需要在Engagelab长连接建立成功后再调用,否则无效。MTCommonReceiver.onConnectStatus回调结果为true时为长连接建立成功。
*
* 走tcp上传
*
* @param context 不为空
* @param platform 厂商,取值范围(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、7:honor、8:google)
* @param token 厂商返回的token,不为空
*/
public static void uploadPlatformToken(Context context, byte platform, String token)
/**
* 上传厂商token
*
* 需要在Engagelab长连接建立成功后再调用,否则无效。MTCommonReceiver.onConnectStatus回调结果为true时为长连接建立成功。
*
* 走tcp上传
*
* @param context 不为空
* @param platform 厂商,取值范围(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、7:honor、8:google)
* @param token 厂商返回的token,不为空
*/
public static void uploadPlatformToken(Context context, byte platform, String token)
此代码块在浮窗中显示