跳转到主要内容
PRODUCT DOCUMENTS

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

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

手动集成文档

开发环境

  • Android Studio 3.0以上

  • Android minSdkVersion: 14

  • Gradle: 4.4以上

快速集成

1-1

1. 申请Appkey

参考:新手指引

2. 接入Push SDK

  1. 访问【友盟+】官网SDK下载地址,选择Android平台SDK下载页面,选择对应业务SDK进行下载,并把下载的zip文件解压

  2. 把解压后push目录下的所有文件拷贝到项目工程app/libs目录

  3. app/build.gradle文件中添加sdk组件依赖

dependencies {
    api fileTree(dir: 'libs', include: ['*.jar'])
    api fileTree(dir: 'libs', include: ['*.aar'])
}

3. 基础接口引入

  1. 在自定义Application类的onCreate()中初始化SDK,3分钟示例中已提供了延迟初始化实现

public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        initUmengSDK();
    }

    /**
     * 初始化友盟SDK
     */
    private void initUmengSDK() {
        //日志开关
        UMConfigure.setLogEnabled(true);
        //预初始化
        PushHelper.preInit(this);
        //是否同意隐私政策
        boolean agreed = ...;
        if (!agreed) {
            return;
        }
        boolean isMainProcess = UMUtils.isMainProgress(this);
        if (isMainProcess) {
            //启动优化:建议在子线程中执行初始化
            new Thread(new Runnable() {
                @Override
                public void run() {
                    PushHelper.init(getApplicationContext());
                }
            }).start();
        } else {
            //若不是主进程(":channel"结尾的进程),直接初始化sdk,不可在子线程中执行
            PushHelper.init(getApplicationContext());
        }
    }
}
警告

主进程和子进程(:channel)均需要调用推送注册接口,否则退到后台会有收不到消息的问题。

2. 在UMConfigure.init方法后调用注册接口,注册成功后可获取deviceToken

public class PushHelper {
    public static void init(Context context) {
        ...
         //获取消息推送实例
        PushAgent pushAgent = PushAgent.getInstance(context);
        //注册推送服务,每次调用register方法都会回调该接口
        pushAgent.register(new UPushRegisterCallback() {

            @Override
            public void onSuccess(String deviceToken) {
                //注册成功会返回deviceToken deviceToken是推送消息的唯一标志
                Log.i(TAG, "注册成功:deviceToken:--> " + deviceToken);
            }

            @Override
            public void onFailure(String errCode, String errDesc) {
                Log.e(TAG, "注册失败:--> " + "code:" + errCode + ", desc:" + errDesc);
            }
        });
        ...
    }
}
说明

  • deviceToken是推送平台生成的用于标识设备的id,长度为44位

  • 同一台设备上不同应用对应的deviceToken不一样

  • 获取deviceToken的值后,才可以进行消息推送测试

3. 应用活跃统计

在App的SplashActivity或MainActivity中onCreate()方法添加

if (hasAgreementAgreed) {
    PushAgent.getInstance(this).onAppStart();
}
警告

  • 该方法是推送平台多维度推送决策必调用的方法,请务必调用

  • 需在用户同意隐私政策协议之后调用,否则会出现合规问题

4. 消息推送测试

恭喜您已经顺利获取deviceToken,可以通过推送消息平台向这台设备推送消息了~

5. 接入完成

此时在您的测试手机上可以验证和处理推送消息了!

至此您已完整集成了【友盟+】消息推送SDK,更多高级功能请参考高级功能集成文档

注意

有关集成问题的Toast提示说明:如果您的app测试完毕,需要正式上线时,可以通过UMConfigure.setLogEnabled(false)方法关闭sdk的相关提示,关闭后就不会有Toast提示了