API 接口文档

API 接口文档

1. 接口类说明

本文档所有接口所涉及的相关类及说明如下:

接口 说明
PushManager SDK 功能接口类,用于调用个推相关功能接口
Tag 标签接口类,用于给用户打上标签(如可以用于精准推送)
GTIntentService 消息处理中心(用户需继承实现)

2. 获取 PushManager

类名 com.igexin.sdk.PushManager
接口 public static PushManager getInstance()

说明:

用于获取单例 PushManager 对象,可以进行推送控制、设置标签、设置别名、设置静默时间等,所有个推提供的接口均是通过该实例调用

返回:

返回 PushManager 单例对象

3. 初始化SDK

类名 com.igexin.sdk.PushManager
接口 public void preInit(Context context)

说明:

初始化SDK,读取配置参数,此时推送服务未启动,cid 并未生成,推送功能未启动。

参数:

context:应用的 ApplicationContext

4. 注册 CID

类名 com.igexin.sdk.PushManager
接口 public void initialize(Context context)

说明:

注册消息推送唯一 cid ,推送服务启动,接口调用后个推服务后台运行,联网成功后,通过用户 IntentService 回调接口返回 cid 信息。

参数:

context:应用的 ApplicationContext

5. 设置调试接口

类名 com.igexin.sdk.PushManager
接口 public void setDebugLogger(Context context, IUserLoggerInterface loggerInterface)

说明

  • 该接口用于输出集成时候的日志信息。
  • 请在调试的时候使用该接口,切勿发布到线上版本。
  • 该接口跟初始化接口的调用不存在先后关系,建议紧邻着初始化接口调用。

参数:

  • context:应用的 Context
  • loggerInterface:日志回调接口

示例

com.igexin.sdk.PushManager.getInstance().setDebugLogger(this, new IUserLoggerInterface() {
    @Override
    public void log(String s) {
        Log.i("PUSH_LOG",s);
    }
});

6. 开启推送

类名 com.igexin.sdk.PushManager
接口 public void turnOnPush(Context context)

说明:

打开 Push 推送,默认是开启状态,可以使用 turnOffPush 接口关闭推送

参数:

context:应用的 Context

7. 关闭推送

类名 com.igexin.sdk.PushManager
接口 public void turnOffPush(Context context)

说明:

关闭 Push 推送,关闭后则无法收到推送消息,若调用了该接口关闭了推送,则只能调用 turnOnPush 才能正常推送

参数:

context:应用的 Context

8. 设置静默时间

类名 com.igexin.sdk.PushManager
接口 public boolean setSilentTime(Context context,int beginHour,int duration)

说明:

设置静默时间,静默期间内 SDK 断开连接,将不再接收消息

参数:

  • context:应用的 Context
  • beginHour:开始时间,设置范围在 0-23 小时之间,单位 h
  • Duration:持续时间,设置范围在 0-23 小时之间。持续时间为 0 则取消静默,单位 h

返回:

true:设置成功;false:设置失败

示例:

//设置 beginHour 为 15,Duration 为 10 小时,则在 15:00-次日 1:00 这 10 个小时内 SDK 将不会联网。
int beginHour = 15;
int durationHour = 10;
boolean result = PushManager.getInstance().setSilentTime(context, beginHour, durationHour);

9. 获取缓存的 CID

类名 com.igexin.sdk.PushManager
接口 public String getClientid(Context context)

说明:

获取当前用户缓存的 cid(长时间未登录或 AppId 发生变化造成的 cid 变化以15. 获取 CID接口中的 cid 为准)

参数:

context:应用的 Context

返回:

当前用户的 cid,如果未初始化成功,返回 null

10. 获取 SDK 服务状态

类名 com.igexin.sdk.PushManager
接口 public boolean isPushTurnedOn(Context context)

说明:

获取当前 SDK 的服务状态

参数:

context:应用的 Context

返回:

true:当前推送已打开;false:当前推送已关闭

11. 获取 SDK 版本号

类名 com.igexin.sdk.PushManager
接口 public String getVersion(Context context)

说明:

获取当前 SDK 版本号

参数:

context:应用的 Context

返回:

当前 SDK 版本号字符串

12. 设置角标

类名 com.igexin.sdk.PushManager
接口 public boolean setBadgeNum(Context context, int badgeNum)

说明:

  • 设置设备上的应用角标;
  • 仅支持华为、oppo、vivo;
  • 其中oppo需要oppo官方设置白名单;
  • 其中小米,无需要调用接口。打开权限,通知到达自动显示角标。

参数:

  • context:应用的 Context
  • badgeNum:角标数量

返回:

true:设置成功;fasle设置失败

13. 检查集成结果

类名 com.igexin.sdk.PushManager
接口 public void checkManifest(Context context)

说明:

用于检查个推集成结果,此方法需要被try catch(Exception e)

参数:

  • context:应用的 Context

返回:

此方法无直接返回值。若出现集成问题会在logcat中打印关键字为“GetuiPushException”的相关报错信息

14. 推送进程启动

类名 com.igexin.sdk.GTIntentService
接口 public void onReceiveServicePid(Context context, int pid)

说明:

个推进程启动成功回调该函数。

参数:

  • context:应用的 Context
  • pid:Push 进程 ID

15. 获取 CID

类名 com.igexin.sdk.GTIntentService
接口 public void onReceiveClientId(Context context, String clientid)

说明:

个推初始化成功回调该函数并返回 cid。

参数:

  • context:应用的 Context
  • clientid:个推唯一 ID,用于标识当前应用

16. 接收透传消息

类名 com.igexin.sdk.GTIntentService
接口 public void onReceiveMessageData(Context context, GTTransmitMessage pushMessage)

说明:

接收到透传消息后回调该函数。

参数:

  • context:应用的 Context
  • pushMessage:透传消息封装类。

示例

@Override
public void onReceiveMessageData(Context context, GTTransmitMessage msg) {
    Log.d(TAG, "onReceiveMessageData -> " +
            "appid = " + msg.getAppid() +
            "\ntaskid = " + msg.getTaskId() +
            "\nmessageid = " + msg.getMessageId() +
            "\npkg = " + msg.getPkgName() +
            "\ncid = " + msg.getClientId()+
            "\nplayload = "+ new String(msg.getPayload()));
}

17. 监听在线状态

类名 com.igexin.sdk.GTIntentService
接口 public void onReceiveOnlineState(Context context, boolean online)

说明:

cid 在线状态变化时回调该函数

参数:

  • context:应用的 Context
  • online:当前 cid 是否在线,true 代表在线,false 代表离线,若由于网络原因离线,个推 SDK 内部会自动重连

18. 命令回执

类名 com.igexin.sdk.GTIntentService
接口 public void onReceiveCommandResult(Context context, GTCmdMessage cmdMessage)

说明:

调用设置标签、绑定别名、解绑别名、自定义回执操作的结果返回

参数:

  • context:应用的 Context
  • cmdMessage:通过cmdMessage.getAction()获取相应的状态值,具体值见代码示例

示例

@Override
public void onReceiveCommandResult(Context context, GTCmdMessage cmdMessage) {
    Log.d(TAG, "onReceiveCommandResult -> " + cmdMessage);

    int action = cmdMessage.getAction();

    /* action 结果值说明
       10009:设置标签的结果回执
       10010:绑定别名的结果回执
       10011:解绑别名的结果回执
       10012: 查询标签的结果回执
       10006:自定义回执的结果回执 */

    if (action == PushConsts.SET_TAG_RESULT) {
        setTagResult((SetTagCmdMessage) cmdMessage);
    } else if (action == PushConsts.BIND_ALIAS_RESULT) {
        bindAliasResult((BindAliasCmdMessage) cmdMessage);
    } else if (action == PushConsts.UNBIND_ALIAS_RESULT) {
        unbindAliasResult((UnBindAliasCmdMessage) cmdMessage);
    } else if ((action == PushConsts.THIRDPART_FEEDBACK)) {
        feedbackResult((FeedbackCmdMessage) cmdMessage);
    }else if(action == PushConsts.QUERY_TAG_RESULT){
         QueryTagCmdMessage tagCmdMessage = (QueryTagCmdMessage) cmdMessage;
    }
}

19. 通知到达

类名 com.igexin.sdk.GTIntentService
接口 public void onNotificationMessageArrived(Context context, GTNotificationMessage notificationMessage)

说明:

通知到达时回调该接口(仅支持个推 SDK 通道下发的通知)

参数:

  • context:应用的 Context
  • notificationMessage:通知回调结果的消息封装类。

示例:

@Override
public void onNotificationMessageArrived(Context context, GTNotificationMessage message) {
    Log.d(TAG, "onNotificationMessageArrived -> "
            + "appid = " + message.getAppid()
            + "\ntaskid = " + message.getTaskId()
            + "\nmessageid = " + message.getMessageId()
            + "\npkg = " + message.getPkgName()
            + "\ncid = " + message.getClientId()
            + "\ncontent = " + message.getContent()
            + "\ntitle = " + message.getTitle()
            + "\nurl = " + message.getUrl() 
            + "\nintentUri = " + message.getIntentUri() 
            + "\npayload = " + message.getPayload());
}

20. 通知点击

类名 com.igexin.sdk.GTIntentService
接口 public void onNotificationMessageClicked(Context context, GTNotificationMessage notificationMessage)

说明:

通知点击回调接口(仅支持个推 SDK 通道下发的通知)

参数:

  • context:应用的 Context
  • notificationMessage:通知回调结果的消息封装类。

示例:

@Override
public void onNotificationMessageClicked(Context context, GTNotificationMessage message) {
    Log.d(TAG, "onNotificationMessageClicked -> "
            + "appid = " + message.getAppid()
            + "\ntaskid = " + message.getTaskId()
            + "\nmessageid = " + message.getMessageId()
            + "\npkg = " + message.getPkgName()
            + "\ncid = " + message.getClientId()
            + "\ncontent = " + message.getContent()
            + "\ntitle = "+message.getTitle()
            + "\nurl = " + message.getUrl() 
            + "\nintentUri = " + message.getIntentUri() 
            + "\npayload = " + message.getPayload());
}

21. 获取厂商 Token

类名 com.igexin.sdk.GTIntentService
接口 public void onReceiveDeviceToken(Context context, String deviceToken)

说明:

厂商 Token 回调 (该接口为非必须实现接口)

参数:

  • context:应用的 Context
  • deviceToken:厂商回调的 token 内容。

注意:返回的 deviceToken 会携带个推拼接的“前缀”,用于区分各厂商。

前缀:HW_(华为)、XM_(小米)、MZ_(魅族)、OP_(oppo)、VV_(vivo)、HO_(荣耀)、FCM_(fcm)
例如获取到的 deviceToken 值为:HW_xxxx,则实际的厂商token值为 xxxx

22. 检测用户设备是否开启通知权限

类名 com.igexin.sdk.PushManager
接口 public boolean areNotificationsEnabled(Context context)

说明:

检测用户设备是否开启通知权限

参数:

  • context:应用的 Context

返回:

返回true,表示用户设备正常开启通知权限,推送通知在设备上可以正常到达、展示;返回false,表示用户设备未开启通知权限

23. 开启通知权限

类名 com.igexin.sdk.PushManager
接口 public void openNotification(Context context)

说明:

调用方法,将跳转到系统开启通知功能页面,引导用户开启通知权限

参数:

  • context:应用的 Context

返回:

24. 设置通知图片

类名 com.igexin.sdk.PushManager
接口 public boolean setNotificationIcon(Context context, String smallIconName, String largeIconName)

说明:

初始化SDK后,调用接口设置通知icon,图片名称参数不要带文件格式,例如push_small.png,则调用接口使用"push_small";

参数:

  • smallIconName :通知的logo
  • largeIconName :通知右侧的大图

返回:

true 成功;false:失败

25. 主动查询 CID 是否在线

类名 com.igexin.sdk.PushManager
接口 public boolean queryPushOnLine(Context context)

说明:

初始化SDK后,调用该函数,可以查询cid是否在线。

参数:

  • context:应用的 Context

返回:

true 成功;false:失败。

  • 该返回值仅仅表示函数调用是否成功
  • cid是否在线,需要重写GTIntentService.onReceiveOnlineState回调函数,由该回调函数的参数告知cid是否在线。
  • 每次成功调用queryPushOnLine函数,均会触发GTIntentService.onReceiveOnlineState回调函数

26. 自定义厂商Token

类名 com.igexin.sdk.PushManager
接口 public boolean setDeviceToken(Context context, String token)

说明:

设置自定义厂商Token,开发者自行获取厂商token后汇报给个推服务。
需要在AndroidManifest.xml中预先配置GETUI_CUSTOM_TOKEN,默认不支持。
支持版本3.2.17.0及以上。

参数:

  • context:应用的 Context
  • token: 厂商token,格式为“前缀_xxxx”

前缀:HW_(华为)、XM_(小米)、MZ_(魅族)、OP_(oppo)、VV_(vivo)、HO_(荣耀)、FCM_(fcm)
例如获取到 华为的deviceToken 值为:xxxx,则实际的传入的token值为 HW_xxxx

返回:

true 成功;false:失败。

  • 该返回值仅仅表示函数调用是否成功

示例:

需要在AndroidManifest.xml中预先配置GETUI_CUSTOM_TOKEN,默认不支持。
//AndroidManifest.xml
<meta-data
    android:name="GETUI_CUSTOM_TOKEN"
    android:value="*" />
// *:允许自定义token。 
// 空字符串:不允许自定义token。(默认)

27. 应用内弹框展示

类名 com.igexin.sdk.GTIntentService
接口 public void onPopupMessageShow(Context context, GTPopupMessage popupMessage)

说明:

应用内弹框展示时触发

参数:

  • context:应用的 Context
  • popupMessage:应用内弹框相关属性

示例:

@Override
public void onPopupMessageShow(Context context, GTPopupMessage popupMessage) {
    Log.d(TAG, "onPopupMessageShow -> "
            + "eventProperties = " +  popupMessage.getEventProperties()
            + "\action = " + popupMessage.getAction()
            + "\elementType = " + popupMessage.getElementType()
            );
}

28. 应用内弹框点击

类名 com.igexin.sdk.GTIntentService
接口 public void onPopupMessageClicked(Context context, GTPopupMessage popupMessage)

说明:

应用内弹框被点击时触发

参数:

  • context:应用的 Context
  • popupMessage:应用内弹框相关属性

示例:

@Override
public void onPopupMessageClicked(Context context, GTPopupMessage popupMessage) {
    Log.d(TAG, "onPopupMessageShow -> "
            + "eventProperties = " +  popupMessage.getEventProperties()
            + "\action = " + popupMessage.getAction()
            + "\elementType = " + popupMessage.getElementType()
            );
}

29. 扩展业务相关设置

支持设置除推送必须采集的数据之外的扩展业务数据的采集开关和频次

一.智能推送

类名 com.igexin.sdk.PushManager
接口 public boolean setIndividuationPush(Context context,boolean individuationPushEnable)

说明:

智能推送开关

参数:

  • context:应用的 Context
  • individuationPushEnable代表打开,false代表关闭,默认为true

返回:

true:设置成功;false:设置失败

二.链路合并

类名 com.igexin.sdk.PushManager
接口 public boolean setLinkMerge(Context context,boolean linkMergeEnable)

说明:

链路合并开关

参数:

  • context:应用的 Context
  • linkMergeEnable代表打开,false代表关闭,默认为true

返回:

true:设置成功;false:设置失败

三.应景推送

类名 com.igexin.sdk.PushManager
接口 public boolean setScenePush(Context context,boolean areaPushEnable)

说明:

应景推送开关

参数:

  • context:应用的 Context
  • areaPushEnable代表打开,false代表关闭,默认为true

返回:

true:设置成功;false:设置失败

四.应急推送

类名 com.igexin.sdk.PushManager
接口 public boolean setEmergencyPush(Context context,boolean emergencyPushEnable)

说明:

应急推送开关

参数:

  • context:应用的 Context
  • emergencyPushEnable代表打开,false代表关闭,默认为true

返回:

true:设置成功;false:设置失败

五.应用列表采集时间间隔

类名 com.igexin.sdk.PushManager
接口 public boolean setAppListInterval(Context context,long intervalTimeHour)

说明:

设置applist采集频次 ,单位小时 ,范围【6,24】

参数:

  • context:应用的 Context
  • intervalTimeHour 采集频次 ,单位小时 ,范围【6,24】

返回:

true:设置成功;false:设置失败

六.位置信息采集时间间隔

类名 com.igexin.sdk.PushManager
接口 public boolean setLocationInterval(Context context,long intervalTimeSec)

说明:

设置位置信息采集频次 ,单位秒,范围【5,1800】

参数:

  • context:应用的 Context
  • intervalTimeSec 采集频次 ,单位秒,范围【5,1800】

返回:

true:设置成功;false:设置失败

七.imsi采集开关

类名 com.igexin.sdk.PushManager
接口 public boolean setImsiEnable(Context context,boolean enable)

说明:

设置imsi信息开关

参数:

  • context:应用的 Context
  • enable 采集开关,false代表关闭,默认为true

返回:

true:设置成功;false:设置失败

八.imsi采集时间间隔

类名 com.igexin.sdk.PushManager
接口 public boolean setImsiInterval(Context context,int intervalTimeHour)

说明:

设置imsi信息采集频次 ,单位时,范围【24,24*7 】

参数:

  • context:应用的 Context
  • intervalTimeHour 采集频次 ,单位小时 ,范围【24,24*7】

返回:

true:设置成功;false:设置失败

九.imei采集开关

类名 com.igexin.sdk.PushManager
接口 public boolean setImeiEnable(Context context,boolean enable)

说明:

设置imei信息采集开关

参数:

  • context:应用的 Context
  • enable 采集开关,false代表关闭,默认为true

返回:

true:设置成功;false:设置失败

十.imei采集时间间隔

类名 com.igexin.sdk.PushManager
接口 public boolean setImeiInterval(Context context,int intervalTimeHour)

说明:

设置imei信息采集频次 ,单位时,范围【24,24*7 】

参数:

  • context:应用的 Context
  • intervalTimeHour 采集频次 ,单位小时 ,范围【24,24*7】

返回:

true:设置成功;false:设置失败

十一.mac采集开关

类名 com.igexin.sdk.PushManager
接口 public boolean setMacEnable(Context context,boolean enable)

说明:

设置mac信息采集开关

参数:

  • context:应用的 Context
  • enable 采集开关,false代表关闭,默认为true

返回:

true:设置成功;false:设置失败

十二.mac采集时间间隔

类名 com.igexin.sdk.PushManager
接口 public boolean setMacInterval(Context context,int intervalTimeHour)

说明:

设置mac信息采集频次 ,单位时,范围【24,24*7 】

参数:

  • context:应用的 Context
  • intervalTimeHour 采集频次 ,单位小时 ,范围【24,24*7】

返回:

true:设置成功;false:设置失败

十三.iccid采集开关

类名 com.igexin.sdk.PushManager
接口 public boolean setIccIdEnable(Context context,boolean enable)

说明:

设置iccid信息采集开关

参数:

  • context:应用的 Context
  • enable 采集开关,false代表关闭,默认为true

返回:

true:设置成功;false:设置失败

十四.iccid采集时间间隔

类名 com.igexin.sdk.PushManager
接口 public boolean setIccIdInterval(Context context,int intervalTimeHour)

说明:

设置iccid信息采集频次 ,单位时,范围【24,24*7 】

参数:

  • context:应用的 Context
  • intervalTimeHour 采集频次 ,单位小时 ,范围【24,24*7】

返回:

true:设置成功;false:设置失败

十五.SerialNumber采集开关

类名 com.igexin.sdk.PushManager
接口 public boolean setSerialNumberEnable(Context context,boolean enable)

说明:

设置SerialNumber信息采集开关

参数:

  • context:应用的 Context
  • enable 采集开关,false代表关闭,默认为true

返回:

true:设置成功;false:设置失败

十六.SerialNumber采集时间间隔

类名 com.igexin.sdk.PushManager
接口 public boolean setSerialNumberInterval(Context context,int intervalTimeHour)

说明:

设置SerialNumber信息采集频次 ,单位时,范围【24,24*7 】

参数:

  • context:应用的 Context
  • intervalTimeHour 采集频次 ,单位小时 ,范围【24,24*7】

返回:

true:设置成功;false:设置失败

十七.AdvertisingId采集开关

类名 com.igexin.sdk.PushManager
接口 public boolean setAdvertisingIdEnable(Context context,boolean enable)

说明:

设置AdvertisingId信息采集开关

参数:

  • context:应用的 Context
  • enable 采集开关,false代表关闭,默认为true

返回:

true:设置成功;false:设置失败

十八.AdvertisingId采集时间间隔

类名 com.igexin.sdk.PushManager
接口 public boolean setAdvertisingIdInterval(Context context,int intervalTimeHour)

说明:

设置AdvertisingId信息采集频次 ,单位时,范围【24,24*7 】

参数:

  • context:应用的 Context
  • intervalTimeHour 采集频次 ,单位小时 ,范围【24,24*7】

返回:

true:设置成功;false:设置失败

十九.cellinfo采集开关

类名 com.igexin.sdk.PushManager
接口 public boolean setCellInfoEnable(Context context,boolean enable)

说明:

设置cellinfo信息采集开关

参数:

  • context:应用的 Context
  • enable 采集开关,false代表关闭,默认为true

返回:

true:设置成功;false:设置失败

二十.cellinfo采集时间间隔

类名 com.igexin.sdk.PushManager
接口 public boolean setCellInfoInterval(Context context,int intervalTimeHour)

说明:

设置cellinfo信息采集频次 ,单位秒,范围【5,1800 】

参数:

  • context:应用的 Context
  • intervalTimeHour 采集频次 ,单位秒 ,范围【5,1800 】

返回:

true:设置成功;false:设置失败

二十一.ip采集开关

类名 com.igexin.sdk.PushManager
接口 public boolean setIpEnable(Context context,boolean enable)

说明:

设置ip信息采集开关

参数:

  • context:应用的 Context
  • enable 采集开关,false代表关闭,默认为true

返回:

true:设置成功;false:设置失败

二十二.ip采集时间间隔

类名 com.igexin.sdk.PushManager
接口 public boolean setIpInterval(Context context,int intervalTimeHour)

说明:

设置ip信息采集频次 ,单位秒,范围【5,1800 】

参数:

  • context:应用的 Context
  • intervalTimeHour 采集频次 ,单位秒 ,范围【5,1800 】

返回:

true:设置成功;false:设置失败

开发者中心 SDK 下载

文档中心搜索

技术
咨询

微信扫一扫

随时联系技术支持

在线
咨询