跳转到主要内容
PRODUCT DOCUMENTS

快速找到所需文档,高效完成接入与排障

浏览产品文档与友盟 Skill,展开目录并阅读正文。

厂商通道集成文档

小米通道集成

创建应用

登录小米开放平台,注册您的App,在应用信息中获取AppID、AppKey、AppSecret。

小米后台

控制台配置密钥

在友盟+U-Push管理平台【设置】->【应用配置】填写AppSecret。713-厂商配置

集成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。

​BBB3D3E4-C873-4204-9B08-8C1CC31693FD

配置SHA256证书指纹

在华为开发者联盟配置SHA256证书指纹。获取及配置请参见华为官方文档配置AppGallery Connect。

设置消息回执

集成华为厂商通道SDK后,需要在华为后台配置消息回执才可以正常取到通过华为通道下发消息的收到数等数据。

​华为2

开通回执需配置回调地址,如下:

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。

设置消息回执

在魅族推送平台的应用列表,单击打开应用,进入【配置管理】->【回执管理】

image

设置回执地址:

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。

oppo2

说明

开发者需在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。

image.png

说明

开发者需在vivo推送服务后台获取应用正式权限;受限权限或无权限无法推送正式消息

设置消息回执

集成vivo厂商SDK后,如果不单独配置友盟的回执地址,客户只能收到“送达”回执,无法收到其他类型的回执,例如超额等错误。为了可以收到更多的回执类型,实现vivo超额发送失败时转友盟通道补发功能,我们建议在vivo后台配置下新回执,配置步骤为:

image.png

点击“修改”

image.png

点击“新增回执”,回执地址填: https://ack.upush.umeng.com/vivo/

保存后,能看到回执列表,如下图所示:

image.png

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

image.png

控制台配置密钥

在友盟+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,点击了解

荣耀通道集成

创建应用

  1. 登录荣耀开发者服务平台,如果还未注册,可参考:账号注册

  2. 创建应用并申请开通推送服务,可参考:申请开通推送服务

  3. 获取应用的APP ID、Client ID、Client Secret

说明

目前荣耀仅支持Magic UI 4.0+,请参考:荣耀推送业务介绍

设置消息回执

  1. 登录荣耀开发者服务平台

  2. 在 管理中心 > 生态服务 > 开发服务 > 推送服务,进入推送服务页面。

  3. 选择需要配置回执的应用,点击应用回执,进入应用回执页面。

image.png

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

image.png

image.png

  1. 回执参数按照以下内容填写即可。

回调地址: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

荣耀推送服务FAQ

隐私政策相关的说明

FCM通道集成

创建应用

在Firebase平台创建项目,并将Firebase添加到您的Android应用

生成FCM新版HTTP V1密钥文件

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

image

控制台上传密钥JSON文件

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

截屏2024-05-31 18.13.56.png

image

警告

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通道勾选使用