在制作或者上线一款app的时候,基本需要接入消息推送sdk。如果自己写底层的消息推送,研发成本比较高,而且搞不好会经常漏消息。所以必须要接入比较成熟的sdk。
在国内成熟并且稳定的消息推送sdk,我建议你选择腾讯云消息推送SDK。
像我们常见的app,微信,QQ都是接入腾讯云消息推送sdk的。
那么接下来我来系统的讲解一下如何接入腾讯云消息推送sdk。
1,注册腾讯云账户
点下面链接注册腾讯云账户
https://partners.cloud.tencent.com/invitation/9082700605ae98481140e9/100017295818
没账号,则点击:注册腾讯云
有账户,则点击:登录关联
2,注册好去购买腾讯云消息推送套餐
选择接入点,推送次数。
3,接入腾讯云消息推送sdk
Android SDK 是移动推送 TPNS 服务为客户端实现消息推送而提供给开发者的接口,本文将提供 AndroidStudio Gradle 自动集成和 Android Studio 手动集成两种方式。
操作步骤
注意:
在配置 SDK 前,确保已创建 Android 平台的应用。
注意:
- 如果您的应用服务接入点为广州,SDK 默认实现该配置。
- 如果您的应用服务接入点为上海、新加坡或中国香港,请按照下文步骤完成其他服务接入点域名配置。
在 AndroidManifest 文件 application 标签内添加以下元数据:
其他服务接入点域名如下:
tpns.sh.tencent.com
tpns.sgp.tencent.com
tpns.hk.tencent.com
注意事项
android.useDeprecatedNdk=true
。前往 SDK 下载 页面获取最新版 SDK,并参考以下步骤将 SDK 导入到您的 Android 工程中。
工程配置
将 SDK 导入到工程的步骤为:
权限配置
移动推送 TPNS SDK 正常运行所需要的权限。示例代码如下:
权限 | 是否必选 | 说明 |
---|---|---|
android.permission.INTERNET | 必选 | 允许程序访问网络连接,可能产生 GPRS 流量 |
android.permission.ACCESS_WIFI_STATE | 必选 | 允许程序获取当前 Wi-Fi 接入的状态以及 WLAN 热点的信息 |
android.permission.ACCESS_NETWORK_STATE | 必选 | 允许程序获取网络信息状态 |
android.permission.WAKE_LOCK | 可选 | 允许程序在手机屏幕关闭后,后台进程仍然运行 |
android.permission.VIBRATE | 可选 | 允许应用震动 |
android.permission.READ_PHONE_STATE | 可选 | 允许应用访问手机状态 |
android.permission.RECEIVE_USER_PRESENT | 可选 | 允许应用可以接收点亮屏幕或解锁广播 |
android.permission.WRITE_EXTERNAL_STORAGE | 可选 | 允许程序写入外部存储 |
android.permission.RESTART_PACKAGES | 可选 | 允许程序结束任务 |
android.permission.GET_TASKS | 可选 | 允许程序获取任务信息 |
组件和应用信息配置
注意:
TPNS Android SDK 1.1.6.3 及之前版本请参考文档 1.1.6.3 及之前版本组件和应用信息配置 。
注意:
- 如果您的应用服务接入点为广州,SDK 默认实现该配置。
- 如果您的应用服务接入点为上海、新加坡或中国香港,请按照下文步骤完成其他服务接入点域名配置。
在 AndroidManifest 文件 application 标签内添加以下元数据:
其他服务接入点域名如下:
tpns.sh.tencent.com
tpns.sgp.tencent.com
tpns.hk.tencent.com
注意:
上线时请设置为 false。
过滤 "TPush" 注册成功的日志如下:
如果您的项目中使用 proguard 等工具,已做代码混淆,请保留以下选项,否则将导致移动推送 TPNS 服务不可用:
注意:
如果 TPNS SDK 被包含在 App 的公共 SDK 里,即使公共 SDK 有增加配置混淆规则,主工程 App 也必须要同时增加配置混淆规则。
如需关闭联合保活功能,请在应用初始化的时候,例如 Application 或 LauncherActivity 的 onCreate 中调用如下接口,并传递 false 值:
注意:
仅 1.1.6.0 之后版本支持关闭联合保活功能,1.1.6.0之前版本TPNS 默认开启联合保活能力,且不可关闭。
若您使用 gradle 自动集成方式,请在自身应用的 AndroidManifest.xml 文件 <application> 标签下配置如下结点,其中 xxx
为任意自定义名称;如果使用手动集成方式,请修改如下节点属性:
若控制台有以下日志打印,则表明联合保活功能已经关闭:I/TPush: [ServiceUtil] disable pull up other app
。
建议您完成 SDK 集成后,在 App 的【关于】、【意见反馈】等比较不常用的 UI 中,通过手势或者其他方式显示 TPNS Token,控制台和 Restful API 推送需要根据 TPNS Token 进行 Token 推送,后续问题排查也需要根据 TPNS Token 进行定位。
示例代码如下:
原文:https://www.cnblogs.com/apphuang/p/14732833.html