厂商通道集成文档
小米通道集成
创建应用
登录小米开放平台,注册您的App,在应用信息中获取AppID、AppKey、AppSecret。

控制台配置密钥
在友盟+U-Push管理平台【设置】->【应用配置】填写AppSecret。
集成SDK
添加依赖
在app/build.gradle中添加依赖:
dependencies {
api 'com.umeng.umsdk:xiaomi-umengaccs:2.3.0'
api 'com.umeng.umsdk:xiaomi-push:7.9.2'
}混淆配置
-keep class org.android.agoo.xiaomi.MiPushBroadcastReceiver {*;}初始化
在Application的onCreate()方法中初始化:
MiPushRegistar.register(context, XIAOMI_ID, XIAOMI_KEY, false);初始化成功验证
日志过滤 tag:MiPushBroadcastReceiver
注册成功后打印日志:onCommandResult is called. regid=xxx
接收到小米消息则打印日志:onReceiveMessage, msg=xxx
仅在小米MIUI设备上生效。
辅助弹窗
App进程退出后,可通过辅助弹窗(Activity)接收推送消息:
public class MfrMessageActivity extends Activity {
private static final String TAG = "MfrMessageActivity";
private final UmengNotifyClick mNotificationClick = new UmengNotifyClick() {
@Override
public void onMessage(UMessage msg) {
final String body = msg.getRaw().toString();
Log.d(TAG, "body: " + body);
if (!TextUtils.isEmpty(body)) {
runOnUiThread(new Runnable() {
@Override
public void run() {
((TextView) findViewById(R.id.tv)).setText(body);
}
});
}
}
};
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.mfr_message_layout);
mNotificationClick.onCreate(this, getIntent());
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
mNotificationClick.onNewIntent(intent);
}
}在AndroidManifest.xml中注册Activity:
<activity
android:name="com.umeng.message.demo.mfr.MfrMessageActivity"
android:exported="true"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="${applicationId}"
android:path="/thirdpush"
android:scheme="agoo" />
</intent-filter>
</activity>消息发送
在友盟+U-Push管理平台发送通知时,勾选厂商通道,并填写Activity类的完整路径(如:com.umeng.message.demo.mfr.MfrMessageActivity)。
消息发送需服务端开发,也可通过友盟推送平台配置下发。
小米平台FAQ
小米平台的具体使用问题,可参考小米平台FAQ,点击了解
华为通道集成
创建应用
登录华为开发者联盟,注册您的应用,在应用信息中获取APP ID和Client Secret。

配置SHA256证书指纹
在华为开发者联盟配置SHA256证书指纹。获取及配置请参见华为官方文档配置AppGallery Connect。
设置消息回执
集成华为厂商通道SDK后,需要在华为后台配置消息回执才可以正常取到通过华为通道下发消息的收到数等数据。

开通回执需配置回调地址,如下:
https://ack.upush.umeng.com/hw/控制台配置密钥
在友盟+U-Push管理平台【设置】->【应用配置】填写AppID和Secret。
集成SDK
添加依赖
根目录build.gradle中添加Maven仓库地址:
buildscript {
repositories {
...
mavenCentral()
}
}
allprojects {
repositories {
...
mavenCentral()
maven { url 'https://developer.huawei.com/repo/'}
}
}在app/build.gradle文件中添加依赖:
dependencies {
api 'com.umeng.umsdk:huawei-umengaccs:2.3.0'
api 'com.huawei.hms:push:6.13.0.301'
}该版本对华为手机的内置应用华为移动框架有要求,必须大于3.0版本,否则会无法接收消息。
配置混淆
-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.huawei.hianalytics.**{*;}
-keep class com.huawei.updatesdk.**{*;}
-keep class com.huawei.hms.**{*;}初始化
在AndroidManifest.xml中配置AppID,其中xxx为华为应用的AppID:
<meta-data android:name="com.huawei.hms.client.appid" android:value="appid=xxx"/>在Application的onCreate()方法中初始化:
HuaWeiRegister.register(context);初始化成功验证
日志过滤:HuaWeiRegister
注册成功后打印日志:HuaWeiRegister: onToken token:xxx
仅在华为EMUI设备上生效。集成华为通道的版本不支持多包名。
辅助弹窗
App进程退出后,可通过辅助弹窗(Activity)接收推送消息:
public class MfrMessageActivity extends Activity {
private static final String TAG = "MfrMessageActivity";
private final UmengNotifyClick mNotificationClick = new UmengNotifyClick() {
@Override
public void onMessage(UMessage msg) {
final String body = msg.getRaw().toString();
Log.d(TAG, "body: " + body);
if (!TextUtils.isEmpty(body)) {
runOnUiThread(new Runnable() {
@Override
public void run() {
((TextView) findViewById(R.id.tv)).setText(body);
}
});
}
}
};
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.mfr_message_layout);
mNotificationClick.onCreate(this, getIntent());
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
mNotificationClick.onNewIntent(intent);
}
}在AndroidManifest.xml中注册Activity:
<activity
android:name="com.umeng.message.demo.mfr.MfrMessageActivity"
android:exported="true"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="${applicationId}"
android:path="/thirdpush"
android:scheme="agoo" />
</intent-filter>
</activity>消息发送
在友盟+U-Push管理平台发送通知时,勾选厂商通道,并填写Activity类的完整路径(如:com.umeng.message.demo.mfr.MfrMessageActivity)。
消息发送需服务端开发,也可通过友盟推送平台配置下发。
华为平台FAQ
华为平台的具体使用问题,可参考华为帮助中心,点击了解
华为平台集成错误及错误码,请参考问题FAQ,点击了解
魅族通道集成
创建应用
登录魅族开放平台,在魅族消息推送服务中注册您的应用,在应用信息中获取AppID和AppSecret。
设置消息回执
在魅族推送平台的应用列表,单击打开应用,进入【配置管理】->【回执管理】

设置回执地址:
https://ack.upush.umeng.com/mz/控制台配置密钥
在友盟+U-Push管理平台【设置】->【应用配置】填写AppID和Secret。
集成SDK
添加依赖
在app/build.gradle中添加依赖:
dependencies {
api 'com.umeng.umsdk:meizu-umengaccs:2.3.0'
api 'com.umeng.umsdk:meizu-push:5.0.5'
}旧版本插件(v2.1.0及之前)需注意:因新版本已移除MeizuPushReceiver类,不需要再继承该类并在AndroidManifest.xml中配置该派生类的组件,旧版本升级后项目工程会报错,手动删除相关组件即可。
混淆配置
-keep class com.meizu.cloud.** {*;}
-dontwarn com.meizu.cloud.**初始化
在Application类的onCreate()方法中初始化:
MeizuRegister.register(context, meizuAppId, meizuAppKey);初始化成功验证
日志过滤 tag:MeizuPushReceiver
注册成功后打印日志:onRegister, pushId=xxx
辅助弹窗
App进程退出后,可通过辅助弹窗(Activity)接收推送消息:
public class MfrMessageActivity extends Activity {
private static final String TAG = "MfrMessageActivity";
private final UmengNotifyClick mNotificationClick = new UmengNotifyClick() {
@Override
public void onMessage(UMessage msg) {
final String body = msg.getRaw().toString();
Log.d(TAG, "body: " + body);
if (!TextUtils.isEmpty(body)) {
runOnUiThread(new Runnable() {
@Override
public void run() {
((TextView) findViewById(R.id.tv)).setText(body);
}
});
}
}
};
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.mfr_message_layout);
mNotificationClick.onCreate(this, getIntent());
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
mNotificationClick.onNewIntent(intent);
}
}在AndroidManifest.xml中注册Activity:
<activity
android:name="com.umeng.message.demo.mfr.MfrMessageActivity"
android:exported="true"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="${applicationId}"
android:path="/thirdpush"
android:scheme="agoo" />
</intent-filter>
</activity>消息发送
在友盟+U-Push管理平台发送通知时,勾选厂商通道,并填写Activity类的完整路径(如:com.umeng.message.demo.mfr.MfrMessageActivity)。
消息发送需服务端开发,也可通过友盟推送平台配置下发。
OPPO通道集成
创建应用
登录OPPO开放平台,选择推送服务,在推送服务中注册您的应用,在应用信息中获取AppKey和MasterSecret。

开发者需在OPPO开放平台获取应用通知栏推送正式权限;测试权限无法推送正式消息
控制台配置密钥
在友盟+U-Push管理平台【设置】->【应用配置】填写Appkey和MasterSecret。
MasterSecret字段很容易填写错误,需填写OPPO平台的MasterSecret
集成SDK
添加依赖
在app/build.gradle中添加依赖:
dependencies {
api 'com.umeng.umsdk:oppo-umengaccs:2.3.0'
api 'com.umeng.umsdk:oppo-push:3.7.1'
//如果编译过程中出现冲突,可通过exclude移除冲突的module
// api('com.umeng.umsdk:oppo-push:3.7.1') {
// exclude group: 'androidx.annotation', module: 'annotation'
// exclude group: 'com.google.code.gson', module: 'gson'
// }
}混淆配置
-keep public class * extends android.app.Service初始化
在Application类的onCreate()方法中初始化:
OppoRegister.register(this, appkey, appsecret);初始化成功验证
日志过滤 tag:OppoPush
注册成功后打印日志:onRegister regid=xxx
辅助弹窗
App进程退出后,可通过辅助弹窗(Activity)接收推送消息:
public class MfrMessageActivity extends Activity {
private static final String TAG = "MfrMessageActivity";
private final UmengNotifyClick mNotificationClick = new UmengNotifyClick() {
@Override
public void onMessage(UMessage msg) {
final String body = msg.getRaw().toString();
Log.d(TAG, "body: " + body);
if (!TextUtils.isEmpty(body)) {
runOnUiThread(new Runnable() {
@Override
public void run() {
((TextView) findViewById(R.id.tv)).setText(body);
}
});
}
}
};
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.mfr_message_layout);
mNotificationClick.onCreate(this, getIntent());
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
mNotificationClick.onNewIntent(intent);
}
}在AndroidManifest.xml中注册Activity:
<activity
android:name="com.umeng.message.demo.mfr.MfrMessageActivity"
android:exported="true"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="${applicationId}"
android:path="/thirdpush"
android:scheme="agoo" />
</intent-filter>
</activity>消息发送
在友盟+U-Push管理平台发送通知时,勾选厂商通道,并填写Activity类的完整路径(如:com.umeng.message.demo.mfr.MfrMessageActivity)。
消息发送需服务端开发,也可通过友盟推送平台配置下发。
OPPO平台FAQ
OPPO平台的具体使用问题,可参考OPPO平台FAQ,点击了解
vivo通道集成
创建应用
登录vivo推送服务后台,注册您的应用,在应用信息中获取AppID、AppKey、AppSecret。

开发者需在vivo推送服务后台获取应用正式权限;受限权限或无权限无法推送正式消息
设置消息回执
集成vivo厂商SDK后,如果不单独配置友盟的回执地址,客户只能收到“送达”回执,无法收到其他类型的回执,例如超额等错误。为了可以收到更多的回执类型,实现vivo超额发送失败时转友盟通道补发功能,我们建议在vivo后台配置下新回执,配置步骤为:

点击“修改”

点击“新增回执”,回执地址填: https://ack.upush.umeng.com/vivo/
保存后,能看到回执列表,如下图所示:

将回执id填到友盟后台的厂商配置页面:

控制台配置密钥
在友盟+U-Push管理平台【设置】->【应用配置】填写AppID、Appkey和AppSecret。
集成SDK
添加依赖
在app/build.gradle中添加依赖:
dependencies {
api 'com.umeng.umsdk:vivo-umengaccs:2.3.0'
api 'com.umeng.umsdk:vivo-push:4.1.3.0'
}混淆配置
-dontwarn com.vivo.push.**
-keep class com.vivo.push.** {*;}
-keep class com.vivo.vms.** {*;}初始化
在AndroidManifest.xml中配置app_key和app_id:
<meta-data android:name="com.vivo.push.api_key" android:value="xxx"/>
<meta-data android:name="com.vivo.push.app_id" android:value="xxx"/>在Application的onCreate()方法中初始化:
VivoRegister.register(context);初始化成功验证
日志过滤 tag:PushMessageReceiver
注册成功后打印日志:getRegId regid:xxx
辅助弹窗
App进程退出后,可通过辅助弹窗(Activity)接收推送消息:
public class MfrMessageActivity extends Activity {
private static final String TAG = "MfrMessageActivity";
private final UmengNotifyClick mNotificationClick = new UmengNotifyClick() {
@Override
public void onMessage(UMessage msg) {
final String body = msg.getRaw().toString();
Log.d(TAG, "body: " + body);
if (!TextUtils.isEmpty(body)) {
runOnUiThread(new Runnable() {
@Override
public void run() {
((TextView) findViewById(R.id.tv)).setText(body);
}
});
}
}
};
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.mfr_message_layout);
mNotificationClick.onCreate(this, getIntent());
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
mNotificationClick.onNewIntent(intent);
}
}在AndroidManifest.xml中注册Activity:
<activity
android:name="com.umeng.message.demo.mfr.MfrMessageActivity"
android:exported="true"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="${applicationId}"
android:path="/thirdpush"
android:scheme="agoo" />
</intent-filter>
</activity>消息发送
在友盟+U-Push管理平台发送通知时,勾选厂商通道,并填写Activity类的完整路径(Activity需继承UmengNotifyClickActivity,例如:com.umeng.message.demo.mfr.MfrMessageActivity)。
消息发送需服务端开发,也可通过友盟推送平台配置下发。
vivo平台FAQ
vivo平台的其他使用问题,可参考vivo平台FAQ,点击了解
荣耀通道集成
创建应用

目前荣耀仅支持Magic UI 4.0+,请参考:荣耀推送业务介绍
设置消息回执
在 管理中心 > 生态服务 > 开发服务 > 推送服务,进入推送服务页面。
选择需要配置回执的应用,点击应用回执,进入应用回执页面。

点击新增回执,进入回执配置页面。


回执参数按照以下内容填写即可。
回调地址:https://ack.upush.umeng.com/honor/
回执用户名:agoo_push
回执密钥:agoo_push_c6938a控制台配置密钥
在友盟+U-Push管理平台【设置】->【应用配置】填写APP ID、Client ID、Client Secret等
集成SDK
添加依赖
在app/build.gradle文件中添加依赖:
dependencies {
api 'com.umeng.umsdk:honor-umengaccs:2.3.0'
api 'com.umeng.umsdk:honor-push:10.0.13.305'
}配置混淆
-keep class com.hihonor.android.push.** {*;}
-keep class com.hihonor.push.** {*;}
-keep class org.android.agoo.honor.* {*;}初始化
在AndroidManifest.xml中配置AppId
<meta-data android:name="com.hihonor.push.app_id" android:value="xxx"/>U-Push注册成功后,调用荣耀注册接口
HonorRegister.register(context);初始化成功验证
日志过滤:HonorRegister
注册成功后打印日志:onToken token:xxx
辅助弹窗
App进程退出后,可通过辅助弹窗(Activity)接收推送消息:
public class MfrMessageActivity extends Activity {
private static final String TAG = "MfrMessageActivity";
private final UmengNotifyClick mNotificationClick = new UmengNotifyClick() {
@Override
public void onMessage(UMessage msg) {
final String body = msg.getRaw().toString();
Log.d(TAG, "body: " + body);
if (!TextUtils.isEmpty(body)) {
runOnUiThread(new Runnable() {
@Override
public void run() {
((TextView) findViewById(R.id.tv)).setText(body);
}
});
}
}
};
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.mfr_message_layout);
mNotificationClick.onCreate(this, getIntent());
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
mNotificationClick.onNewIntent(intent);
}
}在AndroidManifest.xml中注册Activity:
<activity
android:name="com.umeng.message.demo.mfr.MfrMessageActivity"
android:exported="true"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="${applicationId}"
android:path="/thirdpush"
android:scheme="agoo" />
</intent-filter>
</activity>消息发送
在友盟+U-Push管理平台发送通知时,勾选厂商通道,并填写Activity类的完整路径(如:com.umeng.message.demo.mfr.MfrMessageActivity)。
荣耀平台FAQ
FCM通道集成
创建应用
在Firebase平台创建项目,并将Firebase添加到您的Android应用

生成FCM新版HTTP V1密钥文件
在Firebase后台,服务账号下点击生成新的私钥,下载对应的JSON文件

控制台上传密钥JSON文件
在友盟+U-Push管理平台【设置】-应用配置】-【FCM通道】模块,上传JSON文件即可


FCM通道旧版HTTP会在2024在6月20日废弃,如果您之前配置过旧版HTTP参数,请尽快迁移至新版HTTP V1,上传JSON密钥文件
集成SDK
添加依赖
在项目根目录build.gralde中添加依赖
buildscript {
repositories {
google()
}
dependencies {
classpath 'com.google.gms:google-services:4.4.4'
}
}
allprojects {
repositories {
google()
}
}在app/build.gradle中添加依赖
apply plugin: 'com.google.gms.google-services'
dependencies {
api 'com.umeng.umsdk:fcm-umengaccs:2.3.0'
api platform('com.google.firebase:firebase-bom:34.11.0')
api 'com.google.firebase:firebase-analytics'
api 'com.google.firebase:firebase-messaging'
}添加google-services.json文件
在app目录中添加google-services.json文件

配置混淆
-keep class org.android.agoo.fcm.* {*;}初始化
在UPush注册成功后,调用FCM注册接口
FCMRegister.register(context);初始化成功验证
日志过滤:FCM
注册成功后打印日志:token:xxx
消息发送
友盟+U-Push管理平台发送通知时,FCM通道勾选使用
