文档管理中心
我的

此版本文档已归档不再维护,推荐您使用最新版本。

API参考推送服务客户端API(已归档)com.huawei.hms.push(已归档)HmsMessaging(已归档)

HmsMessaging

CLASS info
public class HmsMessaging extends Object
单实例类,提供订阅主题和是否允许显示通知栏消息的方法。

Public Method Summary

Return typeMethod name
static synchronized HmsMessaginggetInstance(Context context)
获取全局唯一单实例。
booleanisAutoInitEnabled()
是否启用自动初始化。
voidsetAutoInitEnabled(boolean enable)
设置自动初始化使能与否。
Task< Void >subscribe(String topic)
异步任务订阅主题。
Task< Void >unsubscribe(String topic)
异步任务取消订阅主题。
Task< Void >turnOnPush()
异步任务打开接收通知栏消息开关。
Task< Void >turnOffPush()
异步任务关闭接收通知栏消息开关。

Public Methods

Method
public static synchronized HmsMessaging getInstance(Context context)
获取HmsMessaging类全局单实例,开发者在使用主题订阅等功能前需要先获取HmsMessaging类实例然后才能调用类中的其他方法。

Parameters

Parameter nameParameter desc
context应用上下文。应用集成HMS SDK最新版本需要满足HMS Core(APK)的版本不低于3.0.0。如果低于3.0.0版本,当应用有前台界面时HMS SDK会提示用户升级HMS Core(APK)为最新版本,此时getInstance的入参必须传入Activity类实例;当应用是后台应用时,如果开发者不想弹出引导升级的页面时,可以传入非Activity类型的Context类实例。


Return

typedesc
HmsMessaging全局单实例对象。
Method
public boolean isAutoInitEnabled()
是否启用自动初始化,目前本接口固定返回false。

Return

typedesc
boolean目前本接口固定返回false。
Method
public void setAutoInitEnabled(boolean enable)
此接口设置自动初始化使能与否。目前SDK内部固定初始化。

Parameters

Parameter nameParameter desc
enable自动初始化使能与否。
Method
public Task< Void > subscribe(String topic)
异步任务订阅指定的主题消息。HUAWEI Push Kit主题消息传递功能可让您将消息发送至已经选择加入特定主题的多台设备。开发者根据需要撰写主题消息,HUAWEI Push Kit负责确定发布路径并将消息可靠地传送至正确的设备。此接口为异步操作接口,开发者需要添加对应的监听器来监听任务执行结果。

Parameters

Parameter nameParameter desc
topic要订阅的主题的名称。必须匹配以下正则表达式:[\u4e00-\u9fa5a-zA-Z0-9-_.~%]{1,900}


Throws

Throw nameThrow desc
IllegalArgumentException无效的主题名称,主题名必须匹配以下正则表达式:[\u4e00-\u9fa5a-zA-Z0-9-_.~%]{1,900}


Return

typedesc
Task< Void >接口调用结果为Task< Void >,开发者需要添加对应的侦听器来侦听任务执行结果。

Code Example

收起
自动换行
深色代码主题
复制
  1. public void subscribe() {
  2.    try {
  3.        HmsMessaging.getInstance(context).subscribe(topic)
  4.        .addOnCompleteListener(new OnCompleteListener<Void>() {
  5.            @Override
  6.            public void onComplete(Task<Void> task) {
  7.                if (task.isSuccessful()) {
  8.                    Log.i(TAG, "subscribe Complete");
  9.                } else {
  10.                    Log.e(TAG, "subscribe failed: ret=" + task.getException().getMessage());
  11.                }
  12.            }
  13.        });
  14.    } catch (Exception e) {
  15.        Log.e(TAG, "subscribe failed: exception=" + e.getMessage());
  16.    }
  17. }
Method
public Task< Void > unsubscribe(String topic)
异步任务取消已经由subscribe接口订阅过的主题消息。此接口为异步操作接口,需要添加对应的监听器来监听任务执行结果。

Parameters

Parameter nameParameter desc
topic取消已经由subscribe接口订阅过的主题消息。主题名必须匹配以下正则表达式:[\u4e00-\u9fa5a-zA-Z0-9-_.~%]{1,900}


Throws

Throw nameThrow desc
IllegalArgumentException无效的主题名称,主题名必须匹配以下正则表达式:[\u4e00-\u9fa5a-zA-Z0-9-_.~%]{1,900}


Return

typedesc
Task< Void >接口调用结果为Task< Void >,开发者需要添加对应的侦听器来侦听任务执行结果。

Code Example

收起
自动换行
深色代码主题
复制
  1. public void unsubscribe() {
  2.    try {
  3.        HmsMessaging.getInstance(context).unsubscribe(topic)
  4.        .addOnCompleteListener(new OnCompleteListener<Void>() {
  5.            @Override
  6.            public void onComplete(Task<Void> task) {
  7.                if (task.isSuccessful()) {
  8.                    Log.i(TAG, "unsubscribe Complete");
  9.                } else {
  10.                    Log.e(TAG, "unsubscribe failed: ret=" + task.getException().getMessage());
  11.                }
  12.            }
  13.        });
  14.    } catch (Exception e) {
  15.        Log.e(TAG, "unsubscribe failed: exception=" + e.getMessage());
  16.    }
  17. }
Method
public Task< Void > turnOnPush()
打开通知栏消息显示的开关。在某些情况下,开发者如果想控制应用是否允许显示通知栏消息,可以调用此接口。本接口与透传消息无关,透传消息的开关逻辑由应用自己处理。

Return

typedesc
Task< Void >接口调用结果为Task< Void >,开发者需要添加对应的侦听器来侦听任务执行结果。

Code Example

收起
自动换行
深色代码主题
复制
  1. HmsMessaging.getInstance(context).turnOnPush()
  2.    .addOnCompleteListener(new OnCompleteListener<Void>() {
  3.        @Override
  4.        public void onComplete(Task<Void> task) {
  5.            if (task.isSuccessful()) {
  6.                Log.i(TAG, "turnOnPush Complete");
  7.            } else {
  8.                Log.e(TAG, "turnOnPush failed: cause=" + task.getException().getMessage());
  9.            }
  10.        }
  11.    });
Method
public Task< Void > turnOffPush()
关闭通知栏消息显示的开关。在某些情况下,开发者如果想控制应用是否允许显示通知栏消息,可以调用此接口。本接口与透传消息无关,透传消息的开关逻辑由应用自己处理。

Return

typedesc
Task< Void >接口调用结果为Task< Void >,开发者需要添加对应的侦听器来侦听任务执行结果。

Code Example

收起
自动换行
深色代码主题
复制
  1. HmsMessaging.getInstance(context).turnOffPush()
  2.    .addOnCompleteListener(new OnCompleteListener<Void>() {
  3.        @Override
  4.        public void onComplete(Task<Void> task) {
  5.            if (task.isSuccessful()) {
  6.                Log.i(TAG, "turnOffPush Complete");
  7.            } else {
  8.                Log.e(TAG, "turnOffPush failed: cause =" + task.getException().getMessage());
  9.            }
  10.        }
  11.    });