如需关闭联合保活功能,请在应用初始化的时候,例如 Application 或 LauncherActivity 的 onCreate 中调用如下接口,并传递 false 值:
注意:仅 1.1.6.0 之后版本支持关闭联合保活功能,1.1.6.0之前版本TPNS 默认开启联合保活能力,且不可关闭。
XGPushConfig.enablePullUpOtherApp(Context context, boolean pullUp);
若您使用 gradle 自动集成方式,请在自身应用的 AndroidManifest.xml 文件 <application> 标签下配置如下结点,其中 xxx
为任意自定义名称;如果使用手动集成方式,请修改如下节点属性:
<!-- 在自身应用的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" />
若控制台有以下日志打印,则表明联合保活功能已经关闭:I/TPush: [ServiceUtil] disable pull up other app
。
厂商 | 是否需要上架应用市场 |
---|---|
小米 | 否,个人开发者账号即可 开通小米平台推送服务 |
魅族 | 否,个人开发者账号即可 开通魅族平台推送服务 |
FCM | 否,个人开发者账号即可开通 FCM 推送服务 |
华为 | 否,个人开发者账号即可 开通华为平台推送服务 |
OPPO | 是,且需要企业开发者账号可 开通 OPPO 平台推送服务 |
vivo | 是 ,且需要企业开发者账号可 开通 vivo 平台推送服务 |
开发者在集成 vivo 厂商通道推送服务后,部分安全检测工具可能会提示 “APP 包含未使用的权限字符串”,详情如下:
问题来源:vivo 厂商通道推送 SDK 版本名 2.3.4。
涉及类文件:com.vivo.push.util.z 涉及敏感权限字符串:android.permission.GET_ACCOUNTS。
注意:经检查发现最新的 vivo 厂商通道推送 SDK 版本名 3.0.0.0 中同样包含此问题。
问题代码来源为 vivo 厂商通道推送 SDK,TPNS 项目组无法变更其内容;此问题已向 vivo 推送服务相关人员反馈,表示相关静态字段为 SDK 遗留代码,并无实际使用,会尽快排期修复。 当前可参考的快速解决办法如下:
请参见 排查工具指南 使用排查工具进行自动化排查,一般有如下错误:
不支持2015年后发布的努比亚机型,因为努比亚新的系统版本增加了超级省电的功能(会迅速将后台进程停止),移动推送 TPNS Service 无法启动,所以努比亚机型无法注册成功。
自 TPNS SDK 1.1.6.3 版本起,为避免在非本品牌手机上、其他品牌的推送服务在后台自启、传输用户数据,会在非本品牌手机上禁用其他品牌的推送服务组件。
华为在账号、游戏、推送等不同功能上有一些公共组件,TPNS 禁用推送组件可能会导致其它服务功能在非华为品牌手机上同样不能启动;若您需要关闭此禁用功能,可配置以下内容:
在 AndroidManifest.xml 文件 application 标签下添加节点配置,并重装应用(需卸载后重装)。
<meta-data
android:name="tpns-disable-component-huawei-v2"
android:value="false" />
<meta-data
android:name="tpns-disable-component-huawei-v4"
android:value="false" />
当订阅者点击您的通知时,可以根据您的配置跳转至指定的应用内页面、H5、Deeplink 等,来满足您在不同场景下的需求。详情请参见 通知点击跳转。
回调 | 抵达回调 | 点击回调 |
---|---|---|
小米 | 不支持 | 支持 |
魅族 | 不支持 | 支持 |
FCM | 不支持 | 支持 |
华为 | 不支持 | 支持 |
OPPO | 不支持 | 支持 |
vivo | 不支持 | 支持 |
注意:厂商通道的点击回调需 SDK 版本1.2.0.1及以上版本支持;旧版本仅支持华为、小米、魅族、vivo。
在应用运行日志中观察到如下类似日志:
[OtherPushClient] handleUpdateToken other push token is : other push type: huawei
表示您的应用注册该厂商通道失败,您可以通过获取厂商通道注册失败的返回码来进行问题定位和排查,详情请参见 厂商通道注册失败排查指南。
目前 IM 已使用 TPNS 提供的厂商 jar 包,请按照下方表格替换相关依赖包,替换后即可解决。
推送通道 | 系统要求 | 条件说明 |
---|---|---|
小米推送 | MIUI | 使用小米推送,添加依赖:implementation 'com.tencent.tpns:xiaomi:1.2.1.3-release' |
华为推送 | EMUI | 使用华为推送,添加依赖:implementation 'com.tencent.tpns:huawei:1.2.1.3-release' implementation 'com.huawei.hms:push:5.0.2.300' |
Google FCM 推送 | Android 4.1及以上 | 手机端需安装 Google Play Services 且在中国大陆地区以外使用。添加依赖:implementation 'com.google.firebase:firebase-messaging:20.2.3' |
魅族推送 | Flyme | 使用魅族推送,添加依赖:implementation 'com.tencent.tpns:meizu:1.2.1.3-release' |
OPPO 推送 | ColorOS | 并非所有 OPPO 机型和版本都支持使用 OPPO 推送,使用 OPPO 推送,添加依赖:implementation 'com.tencent.tpns:oppo:1.2.1.3-release' |
vivo 推送 | FuntouchOS | 并非所有 vivo 机型和版本都支持使用 vivo 推送,使用 vivo 推送,添加依赖:implementation 'com.tencent.tpns:vivo:1.2.1.3-release' |
推送 API 字段设置示例如下,其中 icon_color: 123456,即为 RGB 颜色 #01e240:
{
"message": {
"android": {
"small_icon": "notification_icon",
"icon_color": 123456
}
}
}
适配后的具体效果如下,建议参考 Demo logo 图标进行作图。
说明:
- small icon 必须是带 Alpha 透明通道的 PNG 图片。
- 背景必须是透明。
- 周围不宜留过多 padding。
- 建议统一使用46 x 46px,过小图片会模糊,过大系统会自动缩小。
以上两种情况,需要在 drawable 不同分辨率的文件夹下对应放置一张名称必须为 stat_sys_third_app_notify 的图片,详情请参考 TPNS Android SDK 中魅族厂商依赖目录的 flyme-notification-res 文件夹。
tpns-configs.json
文件中的 "debug"
字段置为true
, 运行命令: ./gradlew --rerun-tasks :app:processReleaseManifest
并通过"TpnsPlugin"
关键字进行分析。在 AndroidX 项目工程的 gradle.properties 文件中添加如下属性:
android.useAndroidX=trueandroid.enableJetifier=true
说明:
- android.useAndroidX=true,表示当前项目启用 AndroidX。
- android.enableJetifier=true,表示将依赖包迁移到 AndroidX。
开发者在集成各厂商通道推送服务后,部分安全检测工具可能会提示 “App 存在通过 HTTP 明文传输信息的行为” ,具体 HTTP 地址涉及:
http://new.api.ad.xiaomi.com/logNotificationAdActions,http://resolver.msg.xiaomi.net/psc/?t=a
http://norma-external-collect.meizu.com/android/exchange/getpublickey.do,http://norma-external-collect.meizu.com/push/android/external/add.do
以上 HTTP URL 均来自各厂商推送 SDK,TPNS 项目组无法明确其目的或控制其行为,但正在积极与厂商服务提供者联系并推动 HTTPS 改造;开发者当前可以自行评估选择是否继续使用以上厂商提供的推送服务。
由于工程加载方法数超过65K,请对工程做分包处理。
在部分手机,通知栏跳转到某个页面可能会出现权限问题。
处理方法:在 androidManifest.xml 中,需要打开的 Activity 加上 android:exported="true"。
注册方法可以在任何地方调用,但注意要传递 ApplicationContext。
在 Matplotlib 教程中,我们将讨论一些可能的图表自定义。 为了开始修改子图,我...
调用ModifySecurityGroupAttribute修改一个安全组的名称或者描述。 调试 您可以...
功能说明 如果返回结果中存在 Error 字段,则表示调用 API 接口失败。例如: { "...
调用DescribeInvocationResults查看一条或多条云助手命令的执行结果,即在ECS实...
客户简介 用友旗下成员企业畅捷通是中国领先的小型微型企业管理云服务与软件提供...
一.推荐得好礼,时长免费拿! 点击查看活动 1、活动对象: 阿里云实名认证用户 2...
生成 CSR 文件 生成 Certificate Signing Request(CSR): 填写您的邮箱(这个邮...
概述 传统型负载均衡配置简单,支持简单的负载均衡场景: 传统型 公网 负载均衡...
本文汇总了文件存储NAS挂载访问的常见问题。 Linux挂载NFS文件系统 如何在Linux...
1. 前言 在开发中读取项目中的配置或者静态文件是家常便饭的事情,我相信很多同...