Package io.rong.push

## Class RongPushClient

- All Implemented Interfaces:

      public class RongPushClient

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `public enum` | `RongPushClient.ConversationType` | 会话类型枚举。

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `RongPushClient()` |

  - ### Enum Constant Summary

    Enum Constants
    Enum Constant | Description
    --- | ---

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `static void` | `registerGCM(Context context)` | 注册GCM推送。必须在init()之前调用。 该方法已废弃，请使用 setPushConfig
    `static void` | `registerFCM(Context context)` | 注册FCM推送。必须在init()之前调用。 该方法已废弃，请使用 setPushConfig
    `static void` | `registerMiPush(Context context, String miAppId, String miAppKey)` | 注册小米推送。必须在init()之前调用。 该方法已废弃，请使用 setPushConfig
    `static void` | `registerHWPush(Context context)` | 注册华为推送。必须在init()之前调用。 该方法已废弃，请使用 setPushConfig
    `static void` | `registerMZPush(Context context, String appId, String appKey)` | 注册魅族推送。必须在 init() 之前调用。 该方法已废弃，请使用 setPushConfig
    `static void` | `resolveHWPushError(Activity activity, long errorCode)` | 注意:华为推送升级到3.0版本后，该接口已废弃，调用无任何效果 处理华为push连接错误，由终端用户操作解决.
    `static void` | `resolveHMSCoreUpdate(Activity activity)` | 处理华为 hms core 为 3.0 以下版本无法获取 token 弹框升级的逻辑.
    `static void` | `init(Context context, String appKey)` | 初始化。
    `static void` | `init(Context context, String appKey, InitOption initOption, boolean isPushEnable)` | 初始化（在应用主进程调用初始化）。 用户设置自己的 push 服务器地址时，使用该接口。
    `static void` | `setPushEventListener(PushEventListener listener)` | 设置推送事件监听器.
    `static PushEventListener` | `getPushEventListener()` | 获取应用层设置的推送事件监听器
    `static void` | `stopService(Context context)` | 停止融云 push 服务,如果用的第三方推送,也会断掉和第三方推送的连接。
    `static void` | `stopRongPushService(Context context)` |
    `static void` | `redirected(Context context)` | push 服务重定向。通过该接口,可以重新访问 push 导航服务器, 根据返回的地址再次建立连接。
    `static void` | `clearAllNotifications(Context context)` | 清除通知栏所有通知消息。
    `static PushType` | `getCurrentPushType(Context context)` | 获取当前使用的推送类型。 如果配置失败，返回的推送类型为 UNKNOWN
    `static void` | `clearAllPushNotifications(Context context)` | 清除所有的推送通知和后台消息通知。ex: A账号离线或者退到后台，B账号给A发送消息，A设备会收到该消息的通知，调用此函数会清除该类型的通知。 但是，如果是从开发者后台使用广播推送服务发送的推送通知，仍然会保留，不会清除 。
    `static void` | `clearAllPushServiceNotifications(Context context)` | 清除所有后台推送服务的推送通知。后台推送服务，是指开发者后台的广播推送服务。
    `static void` | `clearNotificationById(Context context, int notificationId)` | 根据 notification id 清除通知栏。
    `static void` | `recordNotificationEvent(String pushId)` | 记录在开发者后台使用后台推送功能时，对应的推送通知的点击事件。开发者后台的推送打开率既根据客户端上传的该事件进行相应统计和计算。 2.6.0之前版本，推送打开率的使用请在知识库里搜索标签push，有相关说明。 2.6.
    `static void` | `recordNotificationEvent(PushNotificationMessage pushNotificationMessage, PushType pushType)` | 上传推送通知的点击事件，开发者后台的推送打开率既根据客户端上传的该事件进行相应统计和计算。
    `static void` | `recordHWNotificationEvent(Intent intent)` | 统计华为push点击事件 如果用户没有在开发者后台自定义intent,则需要在配置的会话列表界面的activity的onCreate方法里面调用该接口 示例：
        if(intent != null && intent.getData() != null && intent.getData().getScheme() != null
                      && intent.getData().getScheme().equals("rong")
                      && intent.getData().getQueryParameter("isFromPush") != null
                      && intent.getData().getQueryParameter("isFromPush").equals("true")){
                          RongPushClient.recordHWNotificationEvent(intent);
                      }
    如果用户在开发者后台自定义了华为推送点击传入的intent,则需要在自己配置的activity里面过滤intent,根据你自定义的intent过滤出intent，并调用该接口。
    `static void` | `stopRongPush(Context context)` | 停止融云推送服务。
    `static void` | `sendNotification(Context context, PushNotificationMessage notificationMessage)` | 发送通知。如果使用IMLib开发，当应用在后台需要弹后台通知时，可以直接调用此函数弹出通知。
    `static void` | `sendNotification(Context context, PushNotificationMessage notificationMessage, int left)` | 发送通知。如果使用IMLib开发，当应用在后台需要弹后台通知时，可以直接调用此函数弹出通知。
    `static void` | `setNotifiationSound(Uri uri)` | 设置通知铃音 uri须设置绝对路径。在 init 之后 connect 之前调用可以使连接后所有接收的消息都提示此铃声
    `static void` | `checkManifest(Context context)` | 帮助方法，用来检查androidManifest里融云Push服务相关的配置是否正确。
    `static void` | `cancelPushHeartBeat(Context context)` |
    `static void` | `sendPushPing(Context context)` |
    `static void` | `updatePushContentShowStatus(Context context, boolean isShow)` |
    `static void` | `recordPushArriveEvent(Context context, PushType pushType, PushNotificationMessage pushNotificationMessage)` | 上传推送送达事件 开发者后台的推送到达率，根据客户端上传的该事件进行相应统计和计算。
    `static void` | `setPushConfig(PushConfig config)` | 设置 push 相关配置。在初始化 SDK 之前调用。

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### RongPushClient

          RongPushClient()

  - ### Method Detail

    - #### registerGCM

          @Deprecated() static void registerGCM(Context context)

      注册GCM推送。必须在init()之前调用。

      该方法已废弃，请使用 setPushConfig

      Parameters:
        `context` - 上下文。

    - #### registerFCM

          @Deprecated() static void registerFCM(Context context)

      注册FCM推送。必须在init()之前调用。

      该方法已废弃，请使用 setPushConfig

    - #### registerMiPush

          @Deprecated() static void registerMiPush(Context context, String miAppId, String miAppKey)

      注册小米推送。必须在init()之前调用。

      该方法已废弃，请使用 setPushConfig

      Parameters:
        `context` - 上下文。
        `miAppId` - 您在小米开发者站注册的应用的AppId.
        `miAppKey` - 您在小米开发者站注册的应用的AppKey.

    - #### registerHWPush

          @Deprecated() static void registerHWPush(Context context)

      注册华为推送。必须在init()之前调用。

      该方法已废弃，请使用 setPushConfig

      Parameters:
        `context` - 上下文。

    - #### registerMZPush

          @Deprecated() static void registerMZPush(Context context, String appId, String appKey)

      注册魅族推送。必须在 init() 之前调用。

      该方法已废弃，请使用 setPushConfig

      Parameters:
        `context` - 上下文.
        `appId` - 应用在魅族后台注册后生成的魅族 appId.
        `appKey` - 应用在魅族后台注册后生成的魅族 appKey.

    - #### resolveHWPushError

          @Deprecated() static void resolveHWPushError(Activity activity, long errorCode)

      注意:华为推送升级到3.0版本后，该接口已废弃，调用无任何效果 处理华为push连接错误，由终端用户操作解决. 仅当错误码为以下错误码才能通过终端用户操作解决: SERVICE_MISSINGSERVICE_VERSION_UPDATE_REQUIREDBINDFAIL_RESOLUTION_REQUIRED

      Parameters:
        `activity` - 当前界面的activity， 不能传空
        `errorCode` - 错误码

    - #### resolveHMSCoreUpdate

           static void resolveHMSCoreUpdate(Activity activity)

      处理华为 hms core 为 3.0 以下版本无法获取 token 弹框升级的逻辑.

      Parameters:
        `activity` - 当前界面的activity，不能为空

    - #### init

           static void init(Context context, String appKey)

      初始化。

      Parameters:
        `context` - 上下文。
        `appKey` - app 唯一 key

    - #### init

           static void init(Context context, String appKey, InitOption initOption, boolean isPushEnable)

      初始化（在应用主进程调用初始化）。 用户设置自己的 push 服务器地址时，使用该接口。

      Parameters:
        `context` - 上下文。
        `appKey` - app 唯一 key

    - #### setPushEventListener

           static void setPushEventListener(PushEventListener listener)

      设置推送事件监听器.

      所有第三方推送相关事件可通过此监听器拦截。 融云默认推送由于需要跨进程，仍然需要通过 监听

      Parameters:
        `listener` - 推送事件监听器

    - #### getPushEventListener

           static PushEventListener getPushEventListener()

      获取应用层设置的推送事件监听器

      Returns:

        推送事件监听器

    - #### stopService

           static void stopService(Context context)

      停止融云 push 服务,如果用的第三方推送,也会断掉和第三方推送的连接。

      Parameters:
        `context` - 应用上下文

    - #### stopRongPushService

           static void stopRongPushService(Context context)

    - #### redirected

           static void redirected(Context context)

      push 服务重定向。通过该接口,可以重新访问 push 导航服务器, 根据返回的地址再次建立连接。

      Parameters:
        `context` - 应用上下文

    - #### clearAllNotifications

           static void clearAllNotifications(Context context)

      清除通知栏所有通知消息。

      Parameters:
        `context` - 上下文

    - #### getCurrentPushType

           static PushType getCurrentPushType(Context context)

      获取当前使用的推送类型。

      如果配置失败，返回的推送类型为 UNKNOWN

    - #### clearAllPushNotifications

           static void clearAllPushNotifications(Context context)

      清除所有的推送通知和后台消息通知。ex: A账号离线或者退到后台，B账号给A发送消息，A设备会收到该消息的通知，调用此函数会清除该类型的通知。 但是，如果是从开发者后台使用广播推送服务发送的推送通知，仍然会保留，不会清除 。

      Parameters:
        `context` - 上下文。

    - #### clearAllPushServiceNotifications

           static void clearAllPushServiceNotifications(Context context)

      清除所有后台推送服务的推送通知。后台推送服务，是指开发者后台的广播推送服务。

      Parameters:
        `context` - 上下文。

    - #### clearNotificationById

           static void clearNotificationById(Context context, int notificationId)

      根据 notification id 清除通知栏。

      Parameters:
        `context` - 上下文。
        `notificationId` - 通知栏消息 id。

    - #### recordNotificationEvent

          @Deprecated() static void recordNotificationEvent(String pushId)

      记录在开发者后台使用后台推送功能时，对应的推送通知的点击事件。开发者后台的推送打开率既根据客户端上传的该事件进行相应统计和计算。 2.6.0之前版本，推送打开率的使用请在知识库里搜索标签push，有相关说明。 2.6.0之后版本，如果用户使用的SDK内置的通知实现，则不需要调用该方法来统计推送打开率，SDK内部已经帮用户做了统计。 但是如果用户自己定义了推送时通知栏的显示，则需要在点击通知时，调用此方法，来向服务器上传推送打开事件。

      Parameters:
        `pushId` - push通知的id。只有使用开发者后台广播消息和开发者后台推送服务时，pushId才会有值，其余非后台情况下都为空。

    - #### recordNotificationEvent

           static void recordNotificationEvent(PushNotificationMessage pushNotificationMessage, PushType pushType)

      上传推送通知的点击事件，开发者后台的推送打开率既根据客户端上传的该事件进行相应统计和计算。

      Parameters:
        `pushNotificationMessage` - 推送消息
        `pushType` - 推送消息类型

    - #### recordHWNotificationEvent

           static void recordHWNotificationEvent(Intent intent)

      统计华为push点击事件 如果用户没有在开发者后台自定义intent,则需要在配置的会话列表界面的activity的onCreate方法里面调用该接口 示例：

          if(intent != null && intent.getData() != null && intent.getData().getScheme() != null
                        && intent.getData().getScheme().equals("rong")
                        && intent.getData().getQueryParameter("isFromPush") != null
                        && intent.getData().getQueryParameter("isFromPush").equals("true")){
                            RongPushClient.recordHWNotificationEvent(intent);
                        }

      如果用户在开发者后台自定义了华为推送点击传入的intent,则需要在自己配置的activity里面过滤intent,根据你自定义的intent过滤出intent，并调用该接口。

      Parameters:
        `intent` - 点解华为push传入的intent.

    - #### stopRongPush

          @Deprecated() static void stopRongPush(Context context)

      停止融云推送服务。

      Parameters:
        `context` - 上下文。

    - #### sendNotification

           static void sendNotification(Context context, PushNotificationMessage notificationMessage)

      发送通知。如果使用IMLib开发，当应用在后台需要弹后台通知时，可以直接调用此函数弹出通知。

      Parameters:
        `context` - 上下文
        `notificationMessage` - 融云对外公开的通知消息。

    - #### sendNotification

           static void sendNotification(Context context, PushNotificationMessage notificationMessage, int left)

      发送通知。如果使用IMLib开发，当应用在后台需要弹后台通知时，可以直接调用此函数弹出通知。

      Parameters:
        `context` - 上下文
        `notificationMessage` - 融云对外公开的通知消息。
        `left` - 离线消息数

    - #### setNotifiationSound

           static void setNotifiationSound(Uri uri)

      设置通知铃音 uri须设置绝对路径。在 init 之后 connect 之前调用可以使连接后所有接收的消息都提示此铃声

      Parameters:
        `uri` - 铃音 uri

    - #### checkManifest

          @Deprecated() static void checkManifest(Context context)

      帮助方法，用来检查androidManifest里融云Push服务相关的配置是否正确。

      Parameters:
        `context` - 上下文。

    - #### cancelPushHeartBeat

           static void cancelPushHeartBeat(Context context)

    - #### sendPushPing

           static void sendPushPing(Context context)

    - #### updatePushContentShowStatus

           static void updatePushContentShowStatus(Context context, boolean isShow)

    - #### recordPushArriveEvent

           static void recordPushArriveEvent(Context context, PushType pushType, PushNotificationMessage pushNotificationMessage)

      上传推送送达事件

      开发者后台的推送到达率，根据客户端上传的该事件进行相应统计和计算。

      Parameters:
        `context` - 上下文
        `pushType` - 推送类型 PushType
        `pushNotificationMessage` - 推送消息 PushNotificationMessage

    - #### setPushConfig

           static void setPushConfig(PushConfig config)

      设置 push 相关配置。在初始化 SDK 之前调用。

      Parameters:
        `config` - push 配置。PushConfig.