开发者文档 开发者文档
帮助中心 (opens new window)
帮助中心 (opens new window)
  • WhatsApp

  • 国际短信

  • App 消息推送

    • Android 推送SDK集成文档
      • iOS SDK 推送SDK集成文档
    • Messenger

    • LINE API

    • 运营支持

    • 消息类产品API
    • App 消息推送
    智齿科技
    2024-03-18
    目录

    Android 推送SDK集成文档

    # Android 推送 SDK

    # 相关限制及注意事项

    1、开启网络请求权限

    2、appkey、包名配置正确

    3、离线推送需注册华为、小米、oppo、vivo、魅族、荣耀厂商推送,需在app中添加MfrMessageActivity文件并配置到AndroidManifest中

    4、隐私协议中添加友盟推送的隐私协议

    # 文档介绍

    # ● 文件说明

    推送SDK相关说明文档包含初始化、配置参数、设置别名、接收推送,点击推送消息等功能。

    文件名 说明 备注
    SobotPushConstants 推送参数配置
    SobotPushHelper 推送预初始化、初始化、绑定别名、移除别名

    # 集成方式

    # ● 手动集成

    下载链接:Sobot_Push_SDK (opens new window)

    ​ 导入 Module :

    解压下载的智齿 Sobot_Push_SDK.zip 文件,将 sobot_push复制到您的项目中,并在 build.gradle 中添加项目依赖,或者File-->New-->Import Module from Source 选择解压后的sobot_push,然后 Build --> Clean Project 一下。

    完成上述步骤之后 app build.gradle 中如下所示:

    dependencies {
          implementation project(':sobot_push')
    }
    
    1
    2
    3
    # ● 设置参数

    需在Application中onCreate中设置appkey等参数

    //设置友盟的appkey
    SobotPushConstants.APP_KEY="填写友盟上申请的Appkey";
    SobotPushConstants.MESSAGE_SECRET="填写友盟申请的UmengMessageSecret";
    SobotPushConstants.CHANNEL="渠道名称,修改为您App的发布渠道名称";
    SobotPushConstants.OPPO_KEY="填写您在OPPO后台APP对应的app key";
    SobotPushConstants.OPPO_SECRET="填写您在OPPO后台APP对应的app secret";
    SobotPushConstants.MI_ID="填写您在小米后台APP对应的xiaomi id";
    SobotPushConstants.MI_KEY="填写您在小米后台APP对应的xiaomi key";
    SobotPushConstants.MEI_ZU_ID="填写您在魅族后台APP对应的app id";
    SobotPushConstants.MEI_ZU_KEY="填写您在魅族后台APP对应的app key";
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # ● 隐私协议

    需在app隐私协议中添加友盟的隐私协议,隐私权政策链接:https://www.umeng.com/page/policy ,也可参考友盟合规指南 (opens new window)

    # ● 初始化

    初始化推送方法,在 Application 中的 onCreate 方法中添加 initUmeng 代码:

    private void initUmeng() {
            //设置友盟的appkey
            SobotPushConstants.APP_KEY="填写友盟上申请的Appkey";
            SobotPushConstants.MESSAGE_SECRET="填写友盟申请的UmengMessageSecret";
            SobotPushConstants.CHANNEL="渠道名称,修改为您App的发布渠道名称";
            SobotPushConstants.OPPO_KEY="填写您在OPPO后台APP对应的app key";
            SobotPushConstants.OPPO_SECRET="填写您在OPPO后台APP对应的app secret";
            SobotPushConstants.MI_ID="填写您在小米后台APP对应的xiaomi id";
            SobotPushConstants.MI_KEY="填写您在小米后台APP对应的xiaomi key";
            SobotPushConstants.MEI_ZU_ID="填写您在魅族后台APP对应的app id";
            SobotPushConstants.MEI_ZU_KEY="填写您在魅族后台APP对应的app key";
    
            //预初始化
            SobotPushHelper.preInit(this);
            //是否同意隐私协议,可替换成自己的
    //        boolean isAgreementPrivacy = SharedPreferencesUtil.getBooleanData(instance, ConstantUtils.SOBOT_PRIVACY_AGREEMENT, false);
    //        if (!isAgreementPrivacy) {
    //            return;
    //        }
            boolean isMainProcess = UMUtils.isMainProgress(this);
            if (isMainProcess) {
                //App启动速度优化:可以在子线程中调用SDK初始化接口
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        SobotPushHelper.initUpush(getApplicationContext());
                    }
                }).start();
            }
        }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    # ● 设置别名

    别名绑定,将某一类型的别名ID绑定至某设备,别名ID和deviceToken是一对一的映射关系,绑定成功后,老的绑定设备信息被覆盖。

    
     //设置别名
     SobotPushHelper.bindAlias(MainActivity.this, alias, aliasType, new SobotPushCallBack() {
           @Override
           public void onResultBack(boolean isSuccess, String message) {
                LogUtils.d("==addAlias==isSuccess=" + isSuccess + "====message=" + message);
           }
    });
        
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # ● 移除别名

    可根据情况是否调用移除别名

    SobotPushHelper.unBindAlias(MainActivity.this, alias, aliasType, new SobotPushCallBack() {
            @Override
            public void onResultBack(boolean isSuccess, String message) {
                 LogUtils.d("==deleteAlias==isSuccess=" + isSuccess + "====message=" + message);
              }
     });
        
    
    1
    2
    3
    4
    5
    6
    7
    # ● 点击推送消息事件

    点击推送消息跳转App指定页面或者打开链接

     /**
         * 推送消息的点击事件
         */
        private void setMsgClick(){
            SobotPushHelper.setMsgClickListener(new SobotMsgClick() {
                @Override
                public void msgClick(UMessage msg) {
                    final String body = msg.getRaw().toString();
                    LogUtils.d("body: " + body);
                    if (!TextUtils.isEmpty(body)) {
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                ((TextView) findViewById(R.id.tv)).setText(body);
                            }
                        });
                        try {
                            JSONObject obj = new JSONObject(body);
                            if(obj.has("after_open")){
                                String after_open = obj.optString("after_open","");
                                if(after_open.equals("go_app")) {
                                    Intent intentclause = new Intent(MainActivity.this, MainActivity.class);
                                    intentclause.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                    startActivity(intentclause);
                                } else if(after_open.equals("go_url")){
                                    String url = obj.optString("url","");
                                    Intent intentclause = new Intent(MainActivity.this, WebViewActivity.class);
                                    intentclause.putExtra("url", url);
                                    intentclause.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                    startActivity(intentclause);
                                } else if(after_open.equals("go_activity")){
                                    //协议好的activity
                                    String activity = obj.optString("activity","");
                                    if(activity.equals("com.sobot.custom.activity.LoginActivity")){
    //                                Intent intentclause = new Intent(MfrMessageActivity.this, LoginActivity.class);
    //                                intentclause.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    //                                startActivity(intentclause);
                                    }
                                }
                            }
                        } catch (JSONException e) {
                            throw new RuntimeException(e);
                        }
    
                    }
                }
            });
        }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48

    添加厂商推送,离线消息,需将demo中的 MfrMessageActivity 复制到 APP 中,并在AndroidManifest.xml添加MfrMessageActivity。

    上次更新: 2024/3/18 19:23:32

    ← 国际短信 iOS SDK 推送SDK集成文档→

    最近更新
    01
    运营支持 API
    03-03
    02
    CRM 对接方案
    12-05
    03
    大模型机器人API
    09-09
    更多文章>
    Theme by Vdoing
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式