腾讯移动推送
Unity3D
概述
接入向导
腾讯移动推送
发送推送消息
添加本地推送
标签推送
厂商通道推送
常见问题
Android
概述
接入向导
腾讯移动推送
发送推送消息
添加本地推送
标签推送
厂商通道推送
常见问题
IOS
概述
接入向导
腾讯移动推送
发送推送消息
添加本地推送
标签推送
常见问题
其他
数据结构
系统工具
腾讯移动推送 / Android / 概述

概述

推送功能可以实现在游戏未运行的情况下给玩家手机推送游戏相关的信息,如各种节假日活动、周年庆活动等。推送效果如下图所示:

显示详情

接入向导

前置条件

1)您已经按MSDK Android接入配置模块说明完成 接入配置,确保推送开关PUSH=true

腾讯移动推送 TPNS

腾讯移动推送为收费版本。接入需要重新申请accessId和accessKey。MSDKV3客户端从3.3.12版本开始集成腾讯移动推送,目前支持可插件化接入。

重要:为避免华为厂商推送异常,接入方必须于 2021 年 6 月 30 日前,升级版本至 MSDK3.3.16(XG1.2.0.4) 或以上版本。

1 申请accessId和accessKey

accessId和accessKey可直接在飞鹰系统(内网访问)注册申请,需联系MSDK助手协助注册

若该游戏已在腾讯云管理端注册腾讯云账号且已有腾讯移动推送账号,也可迁移到飞鹰系统,需联系MSDK助手协助迁移

2 客户端接入说明

MSDK3.3.18 版本开始,腾讯移动推送被单独抽离成 TPNSSDK 和 HWPushSDK 插件提供。

  • TPNSSDK: 腾讯移动推送和厂商渠道推送(MEIZU、VIVO、OPPO、XIAOMI)
  • HWPushSDK: 华为厂商渠道推送

如果业务侧有接入 TPNSSDK 和 HWPushSDK 插件的需求,可直接将 TPNSSDK 和 HWPushSDK 插件完整的 copy 到与 MSDKLibrary 同级目录中,并在 build.gradle 、settings,gradle 中添加如下引用(与 MSDKLibrary 同级);反之则删除引用和插件。

compile project(':TPNSSDK')
compile project(':HWPushSDK')
include ':HWPushSDK'
include ':TPNSSDK'

注意:

  • 从 MSDK3.3.18 版本开始,华为渠道需要在工程 assets 目录下添加华为推送配置文件,即 agconnect-services.json 文件,获取该文件路径如下:登录华为开放平台,进入【我的项目】> 选择项目 > 【项目设置】,下载华为应用最新配置文件 agconnect-services.json。
  • 从 MSDK3.3.18 版本开始,华为厂商渠道推送 AndroidManifest.xml 中配置有变化,详情可参考厂商渠道组件配置 处理。

2.1 向AndroidManifest.xml中添加权限及组件和应用信息配置

详情可参考腾讯移动推送客户端配置 (搜索:腾讯移动推送所需权限、腾讯移动推送组件配置)

如果接入点为上海集群,需要处理以下配置

在 AndroidManifest.xml 添加以下节点

<!-- XG 1.1.6.3 及之前的版本 XG_GUID_SERVER、XG_STAT_SERVER 和 XG_LOG_SERVER 配置生效, 1.1.6.3 以后的版本 XG_SERVER_SUFFIX 生效,建议都加上防止后面升级出现不兼容的问题-->

<meta-data
    android:name="XG_GUID_SERVER"
    android:value="https://guid.tpns.sh.tencent.com/guid/api/GetGuidAndMqttServer" />
<meta-data
    android:name="XG_STAT_SERVER"
    android:value="https://stat.tpns.sh.tencent.com/log/statistics/push" />
<meta-data
    android:name="XG_LOG_SERVER"
    android:value="https://log.tpns.sh.tencent.com/v3/mobile/log/upload" />
<meta-data
    android:name="XG_SERVER_SUFFIX"
    android:value="tpns.sh.tencent.com" />
  • XG_GUID_SERVER、XG_STAT_SERVER 和 XG_LOG_SERVER 需要带 https 头,XG_SERVER_SUFFIX 不带 https 头

2.2 添加accessId 和 accessKey配置

腾讯移动推送需要配置 accessId 和 accessKey 信息。有两种方法完成配置,一个是AndroidManifest.xml,一个是在msdkconfig.ini中。以下给出msdkconfig.ini的参考示例:

XG_V2_ACCESS_ID=xxx
XG_V2_ACCESS_KEY=xxx

注意:XG_V2_ACCESS_ID为一串整形数字符串。如果AndroidManifest.xml和msdkconfig.ini同时设置了该配置项,以后者为准。

2.3 注销信鸽免费版本

注销方式是在AndroidManifest.xml中配置信鸽免费版本的accessId。配置示例如下:

<application>
...
    <meta-data
            android:name="XG_OLD_ACCESS_ID"
            android:value="xxx" />
...
</application>

其中,old_access_id填写升级腾讯移动推送版本前免费版本信鸽的accessId,如果不知道,可以在飞鹰系统SDK参数处查询。

2.4 厂商通道

腾讯移动推送支持华为、小米、魅族、OPPO 、vivo、荣耀厂商通道。业务需要自行申请各个通道的app id、app key和app secret(OPPO厂商涉及),并将相应的结果填到腾讯云管理端和客户端。具体接入指引参考厂商通道推送。MSDK 3.3.255 版本开始,去除了华为、小米、vivo 厂商通道相关能力;MSDK 3.3.256 版本开始,去除了魅族厂商通道相关能力;MSDK 3.3.28 版本更新 TPNS 到 1.3.7.2 版本,恢复了华为、小米、vivo、魅族厂商通道推送能力。MSDK 3.3.30 版本开始,去除了小米厂商通道相关能力。MSDK 3.3.32 版本开始支持荣耀厂商通道推送。

2.5 删除腾讯移动推送

如果不接入腾讯移动推送,需要修改并删除以下内容,如下:

  • msdkconfig.ini中PUSH设置为false
  • 删除AndroidManifest.xml, msdkconfig.ini中关于腾讯移动推送的配置,即删除2.1、2.2、2.3 中配置说明
  • 删除全部 MSDKLibrary/libs/tpns-*.jar文件(3.3.18版本开始需同步删除与MSDKLibrary同级下的TPNSSDK和HWPushSDK插件)
  • 厂商通道请按照厂商通道指引删除

3 管理端配置说明

3.1 创建产品和应用

创建产品和应用,详情参考:腾讯移动推送-创建产品和应用文档

3.2 申请试用

点击页面中【申请试用/测试】,企业名称统一填写“腾讯”,联系电话&邮箱可按填写人信息录入,申请后可联系MSDK助手对接激活试用。

3.3 创建推送任务及推送测试方法

创建推送任务及推送测试方法,详情参考:腾讯移动推送-创建推送任务及推送测试方法文档

4 腾讯移动推送服务付费说明

详情参考:付费说明文档

接口人:腾讯云助手(cloud IT support)

MSDK V3.3.15 及以后版本新增以下接口

1 账号绑定

1)功能描述

开发者可以针对不同的用户绑定自定义账号,然后对该账号进行推送,账号不能为空。单个应用最多可以有10000个自定义标签/账号, 每个设备token最多可绑定100个自定义标签/账号。

  • 这里的账号可以是邮箱、QQ 号、手机号、用户名等任意类别的业务账号
  • 同一个账号绑定多个设备时,后台将默认推送消息到最后绑定的设备
2)接口声明

声明及相关参数说明可在WGPlatform.h文件中查看

void WGSetPushAccount(unsigned char *account);
3)参数说明
参数名称 类型 说明
account unsigned char * 账号
4)示例代码
WGPlatform::GetInstance()->WGSetPushAccount("account");

2 解除账号绑定

1)功能描述

对已绑定的自定义账号进行解绑,账号不能为空。

  • 账号解绑只是解除 Token 与 App 账号的关联,若使用全量/标签/Token 推送仍然能收到通知/消息
2)接口声明

声明及相关参数说明可在WGPlatform.h文件中查看

void WGDeletePushAccount(unsigned char *account);
3)参数说明
参数名称 类型 说明
account unsigned char * 账号
4)示例代码
WGPlatform::GetInstance()->WGDeletePushAccount("account");

3 反注册

1)功能描述

当用户已退出或 App 被关闭,不再需要接收推送时,可以取消注册 App,即反注册。(一旦设备反注册,直到这个设备重新注册成功期间内,下发的消息该设备都无法收到)。

  • 反注册操作切勿过于频繁,可能会造成后台同步延时
  • 切换账号无需反注册,多次注册自动会以最后一次为准
2)接口声明

声明及相关参数说明可在WGPlatform.h文件中查看

void WGUnregisterPush();
3)参数说明

4)示例代码
WGPlatform::GetInstance()->WGUnregisterPush();

发送推送消息

进入飞鹰系统(腾讯内网,需业务PM或腾讯侧接口人操作),点击左侧导航栏:MSDK接入->腾讯移动推送(无权限的可内网联系MSDK助手对接),进入页面配置即可,如下图所示:

注意:

测试推送消息时切忌勿全量推送,可使用单个账号或者批量账号测试,以免全网用户收到测试的推送消息。

添加本地推送

除了远程推送外,游戏还可进行本地消息推送,例如体力恢复提醒的场景。

Android本地推送

清除本地推送

1 Android本地推送

1)功能描述

本地推送是相对于远程推送而言,无需同远程服务器交互在本地就可完成的消息通知,主要应用于体力恢复提醒等场景。

2)接口声明
long WGAddLocalNotification(LocalMessage &msg);
3)参数说明
参数名称 类型 说明
msg LocalMessage 类 跳转查看
4)返回值

1 添加成功,0 添加失败

5)示例代码
LocalMessage msg;
msg.title = "测试";
msg.type = 1;
msg.content = "本地消息推送测试";
msg.date = "20150907";
msg.hour = "07";
msg.min = "01";
jlong jid = WGPlatform::GetInstance()->WGAddLocalNotification(msg)
6)特殊说明

msg.hour和msg.min必须是两位的如01,02。

7)名称解释

2 清除本地推送

1)功能描述

游戏可以清除本地所有已经添加的但还未执行的推送通知。

2)接口声明
void WGClearLocalNotifications();
3)参数说明

4)返回值

5)示例代码
WGPlatform::GetInstance()->WGClearLocalNotifications();
6)特殊说明

7)名称解释

标签推送

游戏可以针对用户设置标签,如性别、年龄、学历、爱好等,另SDK中预置的有默认标签,推送时可根据不同的标签有针对的进行推送。

1 预置标签

2 设置标签

3 删除标签

4 发送标签推送消息

1 预置标签

目前腾讯移动推送提供以下三类预置标签,游戏无需另外设置:

地理位置(省一级)
应用版本号
流失用户(3天or7天)

2 设置标签

1)功能描述

游戏可以针对不同的用户设置标签,一款游戏最多共可设置10000个标签, 每个用户在某一款游戏下最多可设置100个标签,设置标签时注意标签中不可包含空格。

2)接口声明
void WGSetPushTag(unsigned char *tag);
3)参数说明
参数名称 类型 说明
tag unsigned char * 不能为null或包含空格
4)返回值

5)示例代码:
WGPlatform::GetInstance()->WGSetPushTag((unsigned char *)"msdk");
6)特殊说明

7)名称解释

3 删除标签

1)功能描述

删除所设置的用户标签,推送时此用户将无法接收到此标签下的推送消息。

2)接口声明
void WGDeletePushTag(unsigned char *tag);
3)参数说明
参数名称 类型 说明
tag unsigned char * 不能为null或包含空格
4)返回值

5)示例代码
WGPlatform::GetInstance()->WGDeletePushTag((unsigned char *)"msdk");
6)特殊说明

7)名称解释

4 发送标签推送消息

发送标签推送消息同发送推送消息一样,只是在添加推送消息时“推送目标”需选择标签,如下图所示:

厂商通道推送

1 功能描述

Android厂商通道,由 Android 手机厂商提供的系统级推送通道,可以实现不启动应用就接收并展现消息。该功能能够解决部分厂商手机在杀死进程的情况下接收不到通知的问题,提高消息的抵达率。目前,MSDK腾讯移动推送接入支持的厂商通道包括:华为、小米、魅族、OPPO、vivo、荣耀。3.3.11版本开始新增该能力。MSDK 3.3.255 版本开始,去除了华为、小米、vivo 厂商通道相关能力;MSDK 3.3.256 版本开始,去除了魅族厂商通道相关能力;MSDK 3.3.28 版本更新 TPNS 到 1.3.7.2 版本,恢复了华为、小米、vivo、魅族厂商通道推送能力。MSDK 3.3.30 版本开始,去除了小米厂商通道相关能力。MSDK 3.3.32 版本开始支持荣耀厂商通道推送。

2 接入配置

厂商通道由于涉及到不同的厂商,且厂商之间也存在着少量的差异,因此,接入过程相对麻烦。经过MSDK封装后,业务只需要下载SDK,添加相应的配置,主要配置内容有两大项:客户端配置和管理端配置。

2.1 客户端配置

1) 向AndroidManifest.xml中添加权限及厂商通道组件配置

详情可参考厂商通道客户端配置 (搜索:腾讯移动推送厂商通道权限配置、腾讯移动推送厂商通道组件配置)

2) 配置厂商的通道信息以及开启厂商通道功能

打开游戏项目assets目录下msdkconfig.ini文件,添加相关配置信息,所需appId及appKey等来源可参考腾讯移动推送官网说明:

华为小米魅族OPPO

参考示例如下:

; 是否开启厂商通道,true:是,false,否;默认情况不开启厂商通道
XG_OTHER_PUSH_ENABLE=true
; 小米通道的appId
XG_OTHER_PUSH_XIAOMI_APPID={小米appId}
; 小米通道的appKey
XG_OTHER_PUSH_XIAOMI_APPKEY={小米appKey}
; 魅族通道的appId
XG_OTHER_PUSH_MEIZU_APPID={魅族appId}
; 魅族通道的appKey
XG_OTHER_PUSH_MEIZU_APPKEY={魅族appKey}
; OPPO通道的appId(注意:填写OPPO通道的appKey)
XG_OTHER_PUSH_OPPO_APPID={OPPO appKey}
; OPPO通道的appSecret
XG_OTHER_PUSH_OPPO_APPSECRET={OPPO appSecret}

备注:

  1. 华为通道的appKey需要在AndroidManifest.xml配置
  2. OPPO通道的appId处要填写通道的appKey
3) 添加魅族通知图标

低版本魅族手机(魅族 Flyme6.0 及以下的手机)需要在res/drawable目录添加一张名为 stat_sys_third_app_notify.png 的图片,大小一般为64*64,如果有多个分辨率,建议每个分辨率中添加一张。

如果没有这张图片,低版本魅族手机收到消息后可能不显示。当然,如果不考虑魅族低版本手机,该步骤可以忽略。

4) 代码混淆
-ignorewarning
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.hianalytics.android.**{*;}
-keep class com.huawei.updatesdk.**{*;}
-keep class com.huawei.hms.**{*;}
-keep class com.huawei.android.hms.agent.**{*;}
-keep class com.xiaomi.**{*;}
-keep public class * extends com.xiaomi.mipush.sdk.PushMessageReceiver
-dontwarn com.meizu.cloud.pushsdk.**
-keep class com.meizu.cloud.pushsdk.**{*;}
-keep class com.hihonor.push.framework.aidl.**{*;}
-keep class com.hihonor.push.sdk.**{*;}

2.2 管理端配置

可以使用飞鹰系统管理端,也可以直接使用腾讯云管理端,都需要在厂商配置中开启并设置厂商通道。
飞鹰系统为例,首先在自己的应用中打开消息管理,并打开应用配置,相应的设置示例如下:

设置完成后,几分钟到一个小时内生效。

3 验证方法

各个通道验证过程相同,当杀死进程后,依然能够收到通知表示功能正常。具体步骤参考:

(1)确认已在飞鹰系统腾讯移动推送管理台中「应用配置-厂商&海外通道」中填写相关的应用信息。通常,相关配置将在1个小时后生效,请您耐心等待,待生效后再进行下一个步骤

(2)将集成好的App(测试版本)安装在测试机上,并且运行App

(3)保持App在前台运行,尝试对设备进行单推/全推

(4)如果应用收到消息,将App退到后台,并且杀掉所有App进程

(5)再次进行单推/全推,如果能够收到推送,则表明厂商通道集成成功

4 删除厂商通道

因为厂商通道需要引入较多依赖,对于不需要厂商通道的业务,可以删除相应的依赖项,以减少依赖。

如果已经配置了AndroidManifest.xml以及msdkconfig.ini,请参考2.1 客户端配置说明进行还原。

常见问题

一、游戏推送消息不能正常接收检查步骤

  1. 检查游戏assets/msdkconfig.ini中PUSH一项的值是否为true。如果不是,改为true再调试。如果是继续往下检查。

  2. 确认游戏包名是否与注册时填写的包名一致: 查看http://dev.ied.com/上注册的包名与使用的包名是否一致,请务必保证包名一致(注意:包名的头部和尾部是否包含空格)。如果是继续往下检查。

  3. 检查AndroidManifest.xml和msdkconfig.ini里关于腾讯移动推送的配置是否写全。如果配置无误继续往下检查。

  4. 检查 MSDKLibrary/lib 下的so文件是否全部拷贝到游戏相应目录中。如果拷贝无误继续往下检查。

  5. 查看TPNS是否注册成功:

    按上面步骤配置好,启动游戏过滤log,如果出现以下log则说明注册设备成功,可以在飞鹰系统对Android平台进行推送

    msdkpush_1

    登录成功后如果看到以下log则说明绑定用户成功,可以在飞鹰系统进行号码包推送

    msdkpush_1

  6. 检查TPNS service进程(如xg_vip_service)是否存在,如果不存在则收不到消息(在 adb shell 里 查看ps |grep xg_vip_service)。如果TPNS进程存在联系MSDK助手解决。

二、信鸽免费版本升级到腾讯移动推送版本需删除以下内容

信鸽免费版本升级到腾讯移动推送版本存在旧版本文件、配置需要清理。涉及权限、组件配置及MSDKLibrary目录下的jar、so文件的清理,建议通过整体替换的方式避免手动修改有遗漏。删除内容如下:

1.删除AndroidManifest.xml相关配置

AndroidManifest.xml中主要去除两部分内容,免费版权限配置和组件配置。

  • 在原版本基础上可通过搜索“接入信鸽需要的其他权限 START、接入信鸽需要的其他权限 END”“信鸽配置 START、信鸽配置 END” 关键字来快速查找到免费版相关配置,然后将相应部分的START到END中间的内容删除。
  • 如果之前有接入厂商通道且腾讯移动推送版本不再需要厂商通道,请相应删除厂商通道相应配置,可通过搜索“厂商通道组件配置 START、厂商通道组件配置 END” 关键字来快速查找到厂商通道相关配置,然后将相应部分的START到END中间的内容删除,如需要厂商通道则可保留厂商通道相关配置。

2.删除msdkconfig.ini相关配置

如果之前有接入厂商通道且腾讯移动推送版本不再需要厂商通道,请相应删除厂商通道相应配置,如需要厂商通道则可保留厂商通道相关配置。

;腾讯移动推送厂商渠道配置,发布版本默认关闭,如果开启,请设置相应渠道的appId和appKey,华为渠道在Manifest配置
XG_OTHER_PUSH_ENABLE=false
XG_OTHER_PUSH_XIAOMI_APPID=xxx
XG_OTHER_PUSH_XIAOMI_APPKEY=xxx
XG_OTHER_PUSH_MEIZU_APPID=xxx
XG_OTHER_PUSH_MEIZU_APPKEY=xxx

3.删除文件列表

升级前,请确认删除如下文件,或者确认已经整体替换MSDKLibrary目录。

  • libs/Xg_sdk_4.x.x_2019xxxx_xxxx.jar
  • libs/wup-1.0.0.E-SNAPSHOT.jar
  • libs/abieabi_xxx/libtpnsSecurity.so
  • libs/abieabi_xxx/libxguardian.so(3.3.7a及以上版本无libxguardian.so)

如果之前有接入厂商通道,请依次删除(腾讯移动推送厂商通道需要导入新的):

  • MSDKLibrary/libs/XG4HWPush.jar
  • MSDKLibrary/libs/XG4MZPush.jar
  • MSDKLibrary/libs/XG4XMPush.jar

三、腾讯移动推送联合保活能力相关配置

MSDK V3.3.131 版本开始新增该能力。腾讯移动推送 Android 支持对联合保活能力进行配置,默认关闭,可防止自身应用拉起其他应用,无需额外配置。若有以下日志打印,则表明联合保活能力已经关闭:

I/TPNS: [ServiceUtil] disable pull up other app

如需开启联合保活能力,在 assets/msdkconfig.ini 文件中增加如下配置:

XG_PULL_UP_OTHER_APP_ENABLE = true

此外,可在 AndroidManifest.xml 文件中修改以下节点,配置自身应用不被其他应用拉起

   <!-- 在自身应用的AndroidManifest.xml文件中修改如下结点,其中 xxx 为任意自定义名称: -->     
   <!-- 关闭与 TPNS 应用的联合保活功能,请配置 -->
   <provider
       android:name="com.tencent.android.tpush.XGPushProvider"
       tools:replace="android:authorities"
       android:authorities="应用包名.xxx.XGVIP_PUSH_AUTH"
       android:exported="false" />

四、小米厂商渠道频繁采集设备信息解决方案

为小米厂商 SDK 问题,解决方案如下,可以参考方案 1 或方案 2 进行处理:

1. 不接入小米厂商渠道

1.1 删除小米厂商通道 jar

删除 tpns-xiaomi-x.x.x.x.jar(MSDK 3.3.18 版本之前为:xm4tpnsx.x.x.x.jar)

1.2 删除 AndroidManifest.xml 中关于小米厂商通道配置

权限

   <!--注: 其中${applicationId}修改为应用的包名-->
    <permission
        android:name="${applicationId}.permission.MIPUSH_RECEIVE"
        android:protectionLevel="signature" />
    <uses-permission android:name="${applicationId}.permission.MIPUSH_RECEIVE" />

组件配置

        <service
            android:name="com.xiaomi.push.service.XMPushService"
            android:enabled="true"
            android:process=":pushservice" />
        <service
            android:name="com.xiaomi.push.service.XMJobService"
            android:enabled="true"
            android:exported="false"
            android:permission="android.permission.BIND_JOB_SERVICE"
            android:process=":pushservice" />
        <!-- 注:此service必须在3.0.1版本以后(包括3.0.1版本)加入 -->
        <service
            android:name="com.xiaomi.mipush.sdk.PushMessageHandler"
            android:enabled="true"
            android:exported="true" />
        <service
            android:name="com.xiaomi.mipush.sdk.MessageHandleService"
            android:enabled="true" />
        <!-- 注:此service必须在2.2.5版本以后(包括2.2.5版本)加入 -->
        <receiver
            android:name="com.xiaomi.push.service.receivers.NetworkStatusReceiver"
            android:exported="true" >
            <intent-filter>
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </receiver>
        <receiver
            android:name="com.xiaomi.push.service.receivers.PingReceiver"
            android:exported="false"
            android:process=":pushservice" >
            <intent-filter>
                <action android:name="com.xiaomi.push.PING_TIMER" />
            </intent-filter>
        </receiver>
        <receiver
            android:exported="true"
            android:name="com.tencent.android.mipush.XMPushMessageReceiver">
            <intent-filter>
                <action android:name="com.xiaomi.mipush.RECEIVE_MESSAGE" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.xiaomi.mipush.MESSAGE_ARRIVED" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.xiaomi.mipush.ERROR" />
            </intent-filter>
        </receiver>
1.3 删除项目 assets 目录下 msdkconfig.ini 文件中关于小米厂商通道配置信息
; 小米通道的appId
XG_OTHER_PUSH_XIAOMI_APPID={小米appId}
; 小米通道的appKey
XG_OTHER_PUSH_XIAOMI_APPKEY={小米appKey}
1.4 删除小米厂商渠道代码混淆
-keep class com.xiaomi.**{*;}
-keep public class * extends com.xiaomi.mipush.sdk.PushMessageReceiver

2. 需接入小米厂商渠道并解决频繁采集设备信息问题

需要联系 TPNS 侧指引接入小米厂商渠道海外版,联系 MSDK 助手对接。

五、Android 更新 TPNS SDK 1.4.3.1 版本注意事项

概述

Android 端本地推送功能变更:目前,厂商逐步对 App 开发者的本地通知根据分类进行限额限频,也以此保证终端用户不被过度骚扰,不同的消息分类主要通过通知 category 进行区分。TPNS 结合厂商的要求,对于本地通知和自建通道下发通知增加了 category 和 importance 的支持。从 MSDK V3.3.31 开始,LocalMessageAndroid 结构体新增字段 category、 importance,在增加本地通知时,可以指定通知 category 和通知 channel importance。

字段说明
成员变量名称 类型 说明
category string 设置本地消息分类,详情可参考:https://cloud.tencent.com/document/product/548/97927
importance int 设置本地消息的重要程度,详情可参考:https://cloud.tencent.com/document/product/548/97927

当业务未显式设置时,MSDK 默认消息 category 为 _CATEGORY_MESSAGE_(关于 category 的官方说明:https://developer.android.com/reference/android/app/Notification#CATEGORY_MESSAGE);

默认消息 importance 为 _IMPORTANCE_DEFAULT_(关于 importance 的官方说明:https://developer.android.com/reference/android/app/NotificationManager#IMPORTANCE_DEFAULT)。