
学习内容:
1.使用个推实现第三方应用的推送.
所有的配置我最后会给一个源代码,内部有相关的配置和文档来帮助大家完成配置,在这里就不进行介绍了.
感觉需要写的东西不是非常的多,因为官方的文档已经写的非常的明确了,如何进行配置,导入jar包,.so文件,以及AndroidManifest的文件的相关配置都写的非常的明确.我这里就稍微的简单介绍一下.注册账号什么的我就不说了,这些基本的东西没有减少的必要性.
i.PushManager
PushManager是实现推送的核心类,可以进行推送控制,设置标签,设置别名,设置默认时间等.所有的接口都由这个对象去调用.因此我们需要初始化PushManager对象.
复制代码 代码如下:PushManager.getInstance().initialize(context);
对象的创建方式是单列的.因此拿到的对象也就具有唯一性.这里获取到PushManager对象的同时去初始化个推服务,接口调用之后个推服务后台运行,通过广播的方式将CID发送给App.这里其实最重要的就是这个广播,其他的东西都没有什么重点的地方.只需要稍微的注意一下即可.
ii.GeTuiPushReceiver app接收CID的广播
package com.example.totem.getuidemo.receiver;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.os.Bundle;import com.igexin.sdk.PushConsts;import com.igexin.sdk.PushManager;/** * Created by Totem on 2016/8/15. * @author 代码丶如风 */public class GeTuiPushReceiver extends BroadcastReceiver { public static String KEY_CLIENT_ID = "push_notification_client_id"; public static String message; public static void init(Context context){/** * 初始化对象 * 可以进行推送控制,设置标签,设置别名,设置默认时间等 * 所有接口都由该对象调用 * */PushManager.getInstance().initialize(context);/** * 获取ClientId * */String clientId = PushManager.getInstance().getClientid(context);if(clientId != null){ KEY_CLIENT_ID = clientId;} } @Override public void onReceive(Context context, Intent intent) {//相关处理 } private static OnGetPushMessageListener onGetPushMessageListener; public static void setOnGetPushMessageListener(OnGetPushMessageListener onGetPushMessageListener) {GeTuiPushReceiver.onGetPushMessageListener = onGetPushMessageListener; } /*** 对外暴露接口* */ public interface OnGetPushMessageListener{void getOstfMessage(String message); }}这个广播是接收推送消息的核心类,其实实现起来也是比较简单的,首先就是获取PushManager对象,然后初始化个推服务,在OnReceiver方法中对传递过来的数据进行判断,这里只对两种状态进行了判断,一种是推送通知,另一种则是透传消息.@Override public void onReceive(Context context, Intent intent) {Bundle bundle = intent.getExtras();switch (bundle.getInt(PushConsts.CMD_ACTION)){ /*** 推送通知* */ case PushConsts.GET_CLIENTID:String cid = bundle.getString("clientid");break; /*** 透传消息,传递过来的是Json字符串.一般而言需要客户端进行解析.* */ case PushConsts.GET_MSG_DATA:String appid = bundle.getString("appid");byte[] payload = bundle.getByteArray("payload");String taskid = bundle.getString("taskid");String messageid = bundle.getString("messageid");if(payload != null){ /*** 如果拿到的数据不为空.那么做相关的处理* */ message = new String(payload); onGetPushMessageListener.getOstfMessage(message);}else{ message = "";}break;} }这样通过判断,我们就可以得知,是推送通知,还是透传消息等等.最后写了一个对外界暴露的接口,其实就对Activity暴露接口,当我们在广播中接收到了数据发生了变化,或者是有数据传递过来,需要通过这个接口的方式,告知数据产生了变化,需要主进程做相关的处理,这是暴露接口的目的.然后在主页面中,我们只需要实现这个接口就可以了.GeTuiPushReceiver.setOnGetPushMessageListener(new GeTuiPushReceiver.OnGetPushMessageListener() {@Overridepublic void getOstfMessage(String message) { if(message!=null){MessageData.add(message); }} });iii.打开推送
首先我们需要创建自己的应用,然后我们可以在应用配置当中获取到我们想要的数据,具体效果如下.

这里有我们想要的数据,AppId,AppKey等等,这些东西都需要在AndroidManifest文件中进行配置.自己做好Demo之后,就可以通过后台发送推送了.

标题和内容都是必填项,然后一直确定就可以了,这样消息就被推送出去了.在App上打开推送服务,就可以接收到推送了.透传消息我就不进行截图了.需要注意的一点就是透传消息是Json格式的字串.个推为我们提供好了Json的格式化工具.
最后放上一个源代码,这个源代码是无法运行的,因为这里是使用我自己的后台,大家也需要去创建账号,用自己的后台去创建应用,然后把AndroidManifest文件中的AppId,AppKey,AppSecret进行修改.并且内部提供了很多文档,帮助大家去集成,点击下载。