安卓快速集成个推推送
2018-01-16 本文已影响287人
往后余生9375
登录个推开放平台
https://dev.getui.com/进入开放平台后,管理应用,如果没有请点击右上方的登记应用
。
应用配置
应用列表有一个应用配置
,选择一个项目点击,将以下信息复制到文本以供后面sdk使用。
AS配置推送
添加中央maven
allprojects {
repositories {
jcenter()
google()
maven {
url "http://mvn.gt.igexin.com/nexus/content/repositories/releases/"
}
}
}
添加配置信息
请在android -> defaultConfig 下添加
manifestPlaceholders = [
GETUI_APP_ID : "V7pDtz********whBrgU7",
GETUI_APP_KEY : "DAlhd************qPbssSA",
GETUI_APP_SECRET : "oWtF**********qJTQKR"
]
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86_64"
}
导入SDK
compile 'com.getui:sdk:2.11.1.0'
注册服务
将个推DEMO中的两个服务进行修改名称放入工程,并注册
<service android:name=".service.SignIntentService"/>
<!-- 配置SDK核心服务 -->
<service
android:name=".service.SignPushService"
android:exported="true"
android:label="PushService"
android:process=":pushservice">
</service>
初始化服务
private void initPushService(){
PushManager.getInstance().initialize(this.getApplicationContext(), SignPushService.class);
PushManager.getInstance().registerPushIntentService(this.getApplicationContext(), SignIntentService.class);
}
获取CID
while(ClientId == null){
ClientId = PushManager.getInstance().getClientid(this);
}
透传信息获取
打开DemoIntentService服务,采用EventBus将透传信息进行转发。
String data = new String(payload);
DefaultMessageEvent defaultMessageEvent = EventManager.getDefaultMessage();
defaultMessageEvent.setCode(EventCode.RECEVE_PUSH_PAYLOAD);
defaultMessageEvent.setContent(data);
EventManager.sendDefaultMessage(defaultMessageEvent);
这样我们可以在任何Activity进行数据交互
常用API解析
更加详细的API:http://docs.getui.com/getui/mobile/android/api/
停止SDK服务
public void stopService(Context context)
- 接口 PushManager 中的 stopService,停止 SDK 服务,服务不会终止运行, 只是终止推送和联网功能
- 重新调用 initialize 接口初始化推送服务或者调用 turnOnPush 接口开启 push, 即可正常推送, 具体参考 initialize 和 turnOnPush 接口
开启推送
public void turnOnPush(Context context)
- 接口 PushManager 中的 turnOnPush, 开启Push推送, 默认是开启状态, 关闭状态则收不到推送。turnOnPush 默认打开
- 如果已经调用了 stopService 接口停止了 SDK 服务,调用 turnOnPush 或者重新调用 initialize 之后即可正常推送
- 如果已经调用了 turnOffPush 接口关闭了推送, 只有调用 turnOnPush 之后才能正常推送
关闭推送
public void turnOffPush(Context context)
- 接口 PushManager 中的 turnOffPush, 关闭Push推送, 关闭后则无法收到推送消息
- 如果已经调用了 stopService 接口停止了 SDK 服务,调用 turnOnPush 或者重新调用 initialize 之后即可正常推送
- 如果已经调用了 turnOffPush 接口关闭了推送, 只有调用 turnOnPush 之后才能正常推送
设置标签
public int setTag(Context context,Tag[] tag, String sn);
- 为当前用户设置一组标签,后续推送可以指定标签名进行定向推送
- 标签的设定,一定要在获取到 Clientid 之后才可以设定。标签的设定,服务端限制一天只能成功设置一次