首页 > 技术文章 > 个推使用总结

hacjy 2016-01-12 16:41 原文

最近研究了一下个推推送,略有心得,记录一下。

参考:
个推文档说明:http://docs.getui.com/pages/viewpage.action?pageId=589866

个推功能总结:

package com.getui.demo;

import java.util.List;

import android.content.Context;

import com.igexin.sdk.PushManager;

import com.igexin.sdk.Tag;

/**

 * 个推封装类

 * <p>

 * 功能:1、初始化 2、获取clientId 3、绑定别名 4、为用户设置标签 5、启动/停止推送服务 6、获取SDK版本号 7、完全终止服务 8、获取当前推送服务的状态 9、设置静默时间

 * 10、解绑别名 11、上行第三方自定义回执

 * </p>

 * @author cjy

 * 

 */

public class GetuiPushAgent {



    /**

     * 初始化推送服务

     * 

     * @param context

     */

    public static void initialize(Context context) {

        PushManager.getInstance().initialize(context);

    }



    /**

     * 获取clientId

     * 

     * @param context

     */

    public static String getClientId(Context context) {

        return PushManager.getInstance().getClientid(context);

    }



    /**

     * 绑定别名

     * 

     * @param context

     * @param alias 别名

     */

    public static boolean bindAlias(Context context, String alias) {

        return PushManager.getInstance().bindAlias(context, alias);

    }



    /**

     * 解绑别名

     * 

     * @param context

     * @param alias 别名

     * @param isSelf 是否是解绑自己的cid true-解绑自己的cid false-解绑所有绑定该别名的cid

     */

    public static boolean unBindAlias(Context context, String alias, boolean isSelf) {

        return PushManager.getInstance().unBindAlias(context, alias, isSelf);

    }



    /**

     * 为用户设置标签

     * 

     * @param context

     * @param tags 标签列表

     * @return 0-成功 20001-tag数量过大(单次设置的tag数量不超过100) 20002-设置频率过快(频率限制每小时一次) 20003-标签重复

     *         20004-aidl服务未绑定 20005-setTag异常

     */

    public static int setTag(Context context, List<String> tags) {

        Tag[] tagParam = new Tag[] {};

        for (int i = 0; i < tags.size(); i++) {

            Tag t = new Tag();

            t.setName(tags.get(i));

            tagParam[i] = t;

        }

        return PushManager.getInstance().setTag(context, tagParam);

    }



    /**

     * 启动推送服务

     * 

     * @param context

     */

    public static void openPush(Context context) {

        PushManager.getInstance().turnOnPush(context);

    }



    /**

     * 关闭推送服务

     * 

     * @param context

     */

    public static void closePush(Context context) {

        PushManager.getInstance().turnOffPush(context);

    }



    /**

     * 获取当前推送服务的状态

     * 

     * @param context

     * @return

     */

    public static boolean isServerRuning(Context context) {

        return PushManager.getInstance().isPushTurnedOn(context);

    }



    /**

     * 完全终止服务

     * 

     * @param context

     * @return

     */

    public static void stopPush(Context context) {

        PushManager.getInstance().stopService(context);

    }



    /**

     * 获取SDK版本号

     * 

     * @param context

     * @return

     */

    public static String getVersion(Context context) {

        return PushManager.getInstance().getVersion(context);

    }



    /**

     * 设置静默时间

     * 

     * @param context

     * @param beginTime 开始时间(小时)

     * @param duration 间隔时长

     * @return

     */

    public static boolean setSilentTime(Context context, int beginTime, int duration) {

        return PushManager.getInstance().setSilentTime(context, beginTime, duration);

    }



    /**

     * 上行第三方自定义回执

     * 

     * @param context

     * @param taskId 下发任务的任务id

     * @param messagId 下发任务的消息id

     * @param actionId 用户自定义的actionId,int型,数值在90001-90999

     * @return

     */

    public static boolean sendFeedbackMessage(Context context, String taskId, String messagId, int actionId) {

        return PushManager.getInstance().sendFeedbackMessage(context, taskId, messagId, actionId);

    }

}

 

推荐阅读