Manufacturer Channel Integration Guide

Last updated:2022-12-13

The premise is that the Engagelab channel has been integrated.

sdb libs import package and resource file

  • Import mt sdk platform x.x.x.aar into the libs directory
  • Make sure notification small icon name is mtpush_notification_icon.png. And then put it into 'res/drawable/' directory. If the icon file does not exists, the sdk will not read the application icon file, and the higher version of android will display abnormally.
  • For more information about how to apply for manufacturer channel parameter infomations and how to obtain manufacturer files, see Application Guide for Manufacturer Channel Parameters.
    • huawei Channel requirements agconnect-services.json file, which is configured in the module directory of the application.
    • google Channel requirements google-services.json file, which is configured in the module directory of the application.
  • If can not get the meizu channel token, try to add 'android EnableR8=false' to close R8 in the gradle.properties.

Configuration of 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,if the huawei channel is not required, delete it maven { url 'https://developer.huawei.com/repo/' } // oppo push need,huawei push need,if the oppo channel is not required, delete it maven { url 'https://maven.columbus.heytapmobi.com/repository/releases/' credentials { username 'nexus' password 'c0b08da17e3ec36c3870fed674a0bcb36abc2e23' } } maven {url 'http://nexus.os.adc.com/nexus/content/groups/public'} } dependencies { classpath 'com.android.tools.build:gradle:4.1.0' // google push need,if the google channel is not required, delete it // Please add android.useAndroidX=true to gradle.properties classpath 'com.google.gms:google-services:4.3.8' // huawei push need,if the huawei channel is not required, delete it classpath 'com.huawei.agconnect:agcp:1.6.0.300' } } allprojects { repositories { google() mavenCentral() // huawei push need,if the huawei channel is not required, delete it maven { url 'https://developer.huawei.com/repo/' } // oppo push need,huawei push need,if the oppo channel is not required, delete it maven { url 'https://maven.columbus.heytapmobi.com/repository/releases/' credentials { username 'nexus' password 'c0b08da17e3ec36c3870fed674a0bcb36abc2e23' } } maven {url 'http://nexus.os.adc.com/nexus/content/groups/public'} } }
          // Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
  repositories {
    google()
    mavenCentral()
    // huawei push need,if the huawei channel is not required, delete it
    maven { url 'https://developer.huawei.com/repo/' }
    // oppo push need,huawei push need,if the oppo channel is not required, delete it
    maven {
        url 'https://maven.columbus.heytapmobi.com/repository/releases/'
        credentials {
            username 'nexus'
            password 'c0b08da17e3ec36c3870fed674a0bcb36abc2e23'
        }
    }
      maven {url 'http://nexus.os.adc.com/nexus/content/groups/public'}
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:4.1.0'
    // google push need,if the google channel is not required, delete it
    // Please add android.useAndroidX=true to gradle.properties
    classpath 'com.google.gms:google-services:4.3.8'
    // huawei push need,if the huawei channel is not required, delete it
    classpath 'com.huawei.agconnect:agcp:1.6.0.300'
  }
}

allprojects {
  repositories {
    google()
    mavenCentral()
    // huawei push need,if the huawei channel is not required, delete it
    maven { url 'https://developer.huawei.com/repo/' }
    // oppo push need,huawei push need,if the oppo channel is not required, delete it
    maven {
        url 'https://maven.columbus.heytapmobi.com/repository/releases/'
        credentials {
            username 'nexus'
            password 'c0b08da17e3ec36c3870fed674a0bcb36abc2e23'
        }
    }
    maven {url 'http://nexus.os.adc.com/nexus/content/groups/public'}
  }
}

        
This code block in the floating window
plugins { id 'com.android.application' // google push need,If the google channel is not required, delete it id 'com.google.gms.google-services' // huawei push need,If the huawei channel is not required, delete it 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,It needs to be the same as that on the Engagelab console applicationId "com.engagelab.app" ...... manifestPlaceholders = [ // Engagelab appKey,It needs to be the same as that on the Engagelab console, and has a one-to-one relationship with packageName ENGAGELAB_PRIVATES_APPKEY : "1c4b749a17f6aca33960a560", // Engagelab appChannel,Used for channel statistics ENGAGELAB_PRIVATES_CHANNEL: "developer", // Engagelab process,The process where Engagelab sdk works. Note:the head ENGAGELAB_PRIVATES_PROCESS: ":remote", // The mi client configuration needs to be the same as that on the Xiaomi console, and the server configuration needs to be configured on the Engagelab console XIAOMI_APPID : "MI-2882303761519903247", XIAOMI_APPKEY : "MI-5511990317247", // The mi global client configuration needs to be the same as that on the Xiaomi console, and the server configuration needs to be configured on the Engagelab console XIAOMI_GLOBAL_APPID : "MI-2882303761520426107", XIAOMI_GLOBAL_APPKEY : "MI-5152042627107", // The configuration of the mz client needs to be the same as that on the Meizu console, and the server configuration needs to be configured on the Engagelab console. MEIZU_APPID : "MZ-141044", MEIZU_APPKEY : "MZ-db66ddbf3caa49f5a3d61281b62f9172", // The oppo client configuration needs to be the same as that on the oppo console, and the server configuration needs to be configured on the Engagelab console. OPPO_APPID : "OP-30527975", OPPO_APPKEY : "OP-ccaa93f426af4b05b529bb4e2a3b368b", OPPO_APPSECRET : "OP-6da40dca7fd64279a6837ec899f2151d", //The vivo client configuration needs to be the same as that on the vivo console, and the server configuration needs to be configured on the Engagelab console. VIVO_APPID : "105481245", VIVO_APPKEY : "8ce86005c2bc8a4db5178210b51eeb8a" ] } // google push need java 1.8,If the Google channel is not required, delete it compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } dependencies { // import libs/aar packages implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs') // google push need,If the Google channel is not required, delete it // implementation 'com.google.firebase:firebase-messaging:23.0.8' // huawei push need,If the huawei channel is not required, delete it //implementation 'com.huawei.hms:push:6.5.0.300' //The following Oppo dependencies need to be added. If the Oppo channel is not needed, delete it // implementation 'com.google.code.gson:gson:2.6.2' // implementation 'commons-codec:commons-codec:1.6' // implementation 'androidx.annotation:annotation:1.1.0' }
          plugins {
    id 'com.android.application'
    // google push need,If the google channel is not required, delete it
    id 'com.google.gms.google-services'
    // huawei push need,If the huawei channel is not required, delete it
    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,It needs to be the same as that on the Engagelab console
        applicationId "com.engagelab.app"
                ......

        manifestPlaceholders = [
                // Engagelab appKey,It needs to be the same as that on the Engagelab console, and has a one-to-one relationship with packageName
                ENGAGELAB_PRIVATES_APPKEY : "1c4b749a17f6aca33960a560",
                // Engagelab appChannel,Used for channel statistics
                ENGAGELAB_PRIVATES_CHANNEL: "developer",
                // Engagelab process,The process where Engagelab sdk works. Note:the head
                ENGAGELAB_PRIVATES_PROCESS: ":remote",
                // The mi client configuration needs to be the same as that on the Xiaomi console, and the server configuration needs to be configured on the Engagelab console
                XIAOMI_APPID            : "MI-2882303761519903247",
                XIAOMI_APPKEY           : "MI-5511990317247",
                // The mi global client configuration needs to be the same as that on the Xiaomi console, and the server configuration needs to be configured on the Engagelab console
                XIAOMI_GLOBAL_APPID            : "MI-2882303761520426107",
                XIAOMI_GLOBAL_APPKEY           : "MI-5152042627107",
                // The configuration of the mz client needs to be the same as that on the Meizu console, and the server configuration needs to be configured on the Engagelab console.
                MEIZU_APPID             : "MZ-141044",
                MEIZU_APPKEY            : "MZ-db66ddbf3caa49f5a3d61281b62f9172",
                // The oppo client configuration needs to be the same as that on the oppo console, and the server configuration needs to be configured on the Engagelab console.
                OPPO_APPID              : "OP-30527975",
                OPPO_APPKEY             : "OP-ccaa93f426af4b05b529bb4e2a3b368b",
                OPPO_APPSECRET          : "OP-6da40dca7fd64279a6837ec899f2151d",
                //The vivo client configuration needs to be the same as that on the vivo console, and the server configuration needs to be configured on the Engagelab console.
                VIVO_APPID              : "105481245",
                VIVO_APPKEY             : "8ce86005c2bc8a4db5178210b51eeb8a"
        ]
    }
        
    // google push need java 1.8,If the Google channel is not required, delete it
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

}

dependencies {
    // import libs/aar packages
    implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')

    // google push need,If the Google channel is not required, delete it
    // implementation 'com.google.firebase:firebase-messaging:23.0.8'

    // huawei push need,If the huawei channel is not required, delete it
    //implementation 'com.huawei.hms:push:6.5.0.300'
    
    
    //The following Oppo dependencies need to be added. If the Oppo channel is not needed, delete it
    //    implementation 'com.google.code.gson:gson:2.6.2'
    //    implementation 'commons-codec:commons-codec:1.6'
    //    implementation 'androidx.annotation:annotation:1.1.0'

}

        
This code block in the floating window

Do not import Engagelab SDK

If the application has been connected to the official SDK of the manufacturer before, and do not need to import mt-sdk-platform-x.x.aar. When calling the below report methods success, you can still use the Engagelab platform to push messages from the manufacturer.

Report the arrival of manufacturer channel notification

/** * Report the arrival of manufacturer channel notification * * Report via http/https * * @param context Not empty * @param messageId Engagelab message id, not empty * @param platform Manufacturer, value range(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、8:google) * @param platformMessageId Manufacturer message ID, can be blank */ public static void reportNotificationArrived(Context context, String messageId, byte platform, String platformMessageId)
              /**
     * Report the arrival of manufacturer channel notification
     * 
     * Report via http/https
     *
     * @param context           Not empty
     * @param messageId         Engagelab message id, not empty
     * @param platform          Manufacturer, value range(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、8:google)
     * @param platformMessageId Manufacturer message ID, can be blank
     */
    public static void reportNotificationArrived(Context context, String messageId, byte platform, String platformMessageId)

        
This code block in the floating window

Report notification of clicking manufacturer channel

/** * Report notification of clicking manufacturer channel * * Report via http/https * * @param context Not empty * @param messageId Engagelab message id, not empty * @param platform Manufacturer, value range(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、8:google) * @param platformMessageId Manufacturer message ID, can be blank */ public static void reportNotificationClicked(Context context, String messageId, byte platform, String platformMessageId)
              /**
     * Report notification of clicking manufacturer channel
     * 
     * Report via http/https
     *
     * @param context           Not empty
     * @param messageId         Engagelab message id, not empty
     * @param platform          Manufacturer, value range(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、8:google)
     * @param platformMessageId Manufacturer message ID, can be blank
     */
    public static void reportNotificationClicked(Context context, String messageId, byte platform, String platformMessageId)

        
This code block in the floating window

Report to delete the manufacturer channel notification

/** * Report to delete the manufacturer channel notification * * Report via http/https * * @param context Not empty * @param messageId Engagelab message id, not empty * @param platform Manufacturer, value range(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、8:google) * @param platformMessageId Manufacturer message ID, can be blank */ public static void reportNotificationDeleted(Context context, String messageId, byte platform, String platformMessageId)
              /**
     * Report to delete the manufacturer channel notification
     * 
     * Report via http/https
     *
     * @param context           Not empty
     * @param messageId         Engagelab message id, not empty
     * @param platform          Manufacturer, value range(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、8:google)
     * @param platformMessageId Manufacturer message ID, can be blank
     */
    public static void reportNotificationDeleted(Context context, String messageId, byte platform, String platformMessageId)

        
This code block in the floating window

Report to open the manufacturer channel notification

/** * Report to open the manufacturer channel notification * * Report via http/https * * @param context Not empty * @param messageId Engagelab message id, not empty * @param platform Manufacturer, value range(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、8:google) * @param platformMessageId Manufacturer message ID, can be blank */ public static void reportNotificationOpened(Context context, String messageId, byte platform, String platformMessageId)
              /**
     * Report to open the manufacturer channel notification
     * 
     * Report via http/https
     *
     * @param context           Not empty
     * @param messageId         Engagelab message id, not empty
     * @param platform          Manufacturer, value range(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、8:google)
     * @param platformMessageId Manufacturer message ID, can be blank
     */
    public static void reportNotificationOpened(Context context, String messageId, byte platform, String platformMessageId)

        
This code block in the floating window

Upload manufacturer token

/** * Upload vendor token * * It needs to be called after the Engagelab long connection is established successfully, otherwise it is invalid.MTCommonReceiver.onConnectStatus回调结果为true时为长连接建立成功。 * * Upload via tcp * * @param context Not empty * @param platform Manufacturer, value range(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、8:google) * @param token Manufacturer message ID, can be blank * @param region Overseas versions of Xiaomi and oppo need to set the region, fill in such as "US" according to the region of use, etc., fill in null for non-overseas versions */ public static void uploadPlatformToken(Context context, byte platform, String token, String region)
              /**
     * Upload vendor token
     *
     * It needs to be called after the Engagelab long connection is established successfully, otherwise it is invalid.MTCommonReceiver.onConnectStatus回调结果为true时为长连接建立成功。
     * 
     * Upload via tcp
     *
     * @param context  Not empty
     * @param platform Manufacturer, value range(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、8:google)
     * @param token    Manufacturer message ID, can be blank
     * @param region Overseas versions of Xiaomi and oppo need to set the region, fill in such as "US" according to the region of use, etc., fill in null for non-overseas versions
     */
    public static void uploadPlatformToken(Context context, byte platform, String token, String region)

        
This code block in the floating window
在文档中心打开