文档管理中心

MessageEngine

展开

Class Info

public abstract class MessageEngine

Nearby Message功能的API接口类。可以给您的应用提供近场设备间消息发布、消息获取和信标设备的发现及其附件消息获取功能。

说明
  • 使用此API不需要绑定华为帐号,但要求您在华为开发者联盟注册项目、开通近距离通信服务,并申请API KEY,操作请参见开发准备
  • 除明确可以在后台使用的接口(如:get())外,其余所有API接口都必须在应用处于前台时才能调用。put和unput、get和unget应该成对使用。

Public Method Summary

展开

Qualifier and Type

Method Name and Description

abstract Task<Void>

get(MessageHandler handler)

获取近场设备发布的消息。

abstract Task<Void>

get(MessageHandler handler, GetOption option)

获取近场设备发布的消息。

abstract Task<Void>

get(PendingIntent pendingIntent)

获取近场设备发布的消息,此接口支持在后台调用。

abstract Task<Void>

get(PendingIntent pendingIntent, GetOption option)

获取近场设备发布的消息,此接口支持在后台调用。

abstract void

handleIntent(Intent intent, MessageHandler handler)

当获取消息接口注册的PendingIntent被Nearby Service触发时,使用此接口处理收到的Intent。此接口调用后Nearby Service会根据当前Intent内容,触发handler中相应的回调函数。

abstract Task<Void>

put(Message message)

向云端发布消息,并在近场广播sharingcode,可被近场设备扫描。

abstract Task<Void>

put(Message message, PutOption option)

向云端发布消息,并在近场广播sharingcode,可被近场设备扫描。

abstract Task<Void>

registerStatusCallback(StatusCallback statusCallback)

注册状态回调函数,当有影响API使用的事件触发,将会通知App。

abstract Task<Void>

unput(Message message)

取消已发布消息,该消息会从云端删除。

abstract Task<Void>

unregisterStatusCallback(StatusCallback statusCallback)

取消已注册的状态回调。

abstract Task<Void>

unget(MessageHandler handler)

取消已注册的消息获取任务。

abstract Task<Void>

unget(PendingIntent pendingIntent)

取消已注册的消息获取任务,此接口支持在后台调用。

Public Methods

get(MessageHandler handler)

展开

Method

public abstract Task<Void> get(MessageHandler handler)

获取近场设备发布的消息。可获取的消息类型有:近场相同App发布到云端的消息、已经配置到华为云服务的Beacon附件消息以及原始Beacon广播消息。此接口使用的GetOptionDEFAULT

Parameters

展开

Name

Description

handler

获取到目标消息时的回调处理类。

Returns

展开

Type

Description

Task<Void>

Task封装的API调用结果,应用可注册回调获取结果详情。

get(MessageHandler handler, GetOption option)

展开

Method

public abstract Task<Void> get(MessageHandler handler, GetOption option)

获取近场设备发布的消息。可获取的消息类型有:近场相同App发布到云端的消息、已经配置到华为云服务的Beacon附件消息以及原始Beacon广播消息。可以通过GetOption中的MessagePicker参数过滤目标消息。只有在开发者联盟注册的同一项目(获取projectId)下的App发布的消息才能被获取。

Parameters

展开

Name

Description

handler

获取到目标消息时的回调处理类。

option

本次获取消息过程的GetOption参数。

Returns

展开

Type

Description

Task<Void>

Task封装的API调用结果,应用可注册回调获取结果详情。

Sample code:

private void subscribe(String namespace, String type, int ttlSeconds, OnCompleteListener<Void> listener,
        GetCallback callback) {
        Policy policy = new Policy.Builder().setTtlSeconds(ttlSeconds).build();
        MessagePicker picker = new MessagePicker.Builder().includeNamespaceType(namespace, type).build();
        GetOption.Builder builder = new GetOption.Builder().setPolicy(policy).setPicker(picker);
        if (callback != null) {
            builder.setCallback(callback);
        }
        Nearby.getMessageEngine(getActivity()).get(mMessageHandler, builder.build()).addOnCompleteListener(listener);
    }

get(PendingIntent pendingIntent)

展开

Method

public abstract Task<Void> get(PendingIntent pendingIntent)

获取近场设备发布的消息,此接口支持在后台调用。支持获取的消息类型为:已经配置到华为云服务的Beacon附件消息以及原始Beacon广播消息。此接口使用的GetOptionDEFAULT。当App在前台和后台时,都持续进行扫描。只有当App进程退出后,扫描和获取消息任务停止。

Parameters

展开

Name

Description

pendingIntent

当目标消息被获取时触发Intent回调,App需调用handleIntent对Intent进行处理。

Returns

展开

Type

Description

Task<Void>

Task封装的API调用结果,应用可注册回调获取结果详情。

get(PendingIntent pendingIntent, GetOption option)

展开

Method

public abstract Task<Void> get(PendingIntent pendingIntent, GetOption option)

获取近场设备发布的消息,此接口支持在后台调用。支持获取的消息类型为:已经配置到华为云服务的Beacon附件消息以及原始Beacon广播消息。可以通过GetOption中的MessagePicker参数过滤目标消息。当App在前台和后台时,都持续进行扫描。只有当App进程退出后,扫描和获取消息任务停止。

Parameters

展开

Name

Description

pendingIntent

当目标消息被获取时触发Intent回调,App需调用handleIntent对Intent进行处理。

option

本次获取消息过程的GetOption

Returns

展开

Type

Description

Task<Void>

Task封装的API调用结果,应用可注册回调获取结果详情。

handleIntent

展开

Method

public abstract void handleIntent(Intent intent, MessageHandler handler)

当获取消息接口注册的PendingIntent被Nearby Service触发时,使用此接口处理收到的Intent。此接口调用后Nearby Service会根据当前Intent内容,触发handler中相应的回调函数。

注意

当前只支持onFound(Message)和onLost(Message)。

Parameters

展开

Name

Description

intent

intent内容。

handler

获取到目标消息时的回调处理类。

put(Message message)

展开

Method

public abstract Task<Void> put(Message message)

向云端发布消息,并在近场广播sharingcode,可被近场设备扫描。

Parameters

展开

Name

Description

message

发布到云端的消息。

Returns

展开

Type

Description

Task<Void>

Task封装的API调用结果,应用可注册回调获取结果详情。

put(Message message, PutOption option)

展开

Method

public abstract Task<Void> put(Message message, PutOption option)

向云端发布消息,并在近场广播sharingcode,可被近场设备扫描。

发布的消息只能在开发者联盟网站注册的同一项目(获取projectId)下的App获取。

Parameters

展开

Name

Description

message

发布到云端的消息,此消息可以被近场设备获取。

option

本次发布消息过程的PutOption

Returns

展开

Type

Description

Task<Void>

Task封装的API调用结果,应用可注册回调获取结果详情。

registerStatusCallback

展开

Method

public abstract Task<Void> registerStatusCallback(StatusCallback statusCallback)

注册状态回调函数,当有影响API使用的事件触发,将会通知App。

Parameters

展开

Name

Description

statusCallback

状态回调函数。

Returns

展开

Type

Description

Task<Void>

Task封装的API调用结果,应用可注册回调获取结果详情。

unput

展开

Method

public abstract Task<Void> unput(Message message)

取消已发布消息,该消息会从云端删除。

Parameters

展开

Name

Description

message

已发布消息。

Returns

展开

Type

Description

Task<Void>

Task封装的API调用结果,应用可注册回调获取结果详情。

Sample code:

private void unpublish(String namespace, String type, OnCompleteListener<Void> listener) {
        Message message = new Message(JsonUtils.object2Json(mCardInfo).getBytes(Charset.forName("UTF-8")),
                type, namespace);
        Nearby.getMessageEngine(getActivity()).unput(message)
                .addOnCompleteListener(listener);
}

unregisterStatusCallback

展开

Method

public abstract Task<Void> unregisterStatusCallback(StatusCallback statusCallback)

取消已注册的状态回调。

Parameters

展开

Name

Description

statusCallback

已注册的状态回调。

Returns

展开

Type

Description

Task<Void>

Task封装的API调用结果,应用可注册回调获取结果详情。

unget(MessageHandler handler)

展开

Method

public abstract Task<Void> unget(MessageHandler handler)

取消已注册的消息获取任务。

Parameters

展开

Name

Description

handler

当前任务注册的获取到目标消息时的回调处理类。

Returns

展开

Type

Description

Task<Void>

Task封装的API调用结果,应用可注册回调获取结果详情。

unget(PendingIntent pendingIntent)

展开

Method

public abstract Task<Void> unget(PendingIntent pendingIntent)

取消已注册的消息获取任务,此接口支持在后台调用。

Parameters

展开

Name

Description

pendingIntent

当前已经注册的pendingIntent。

Returns

展开

Type

Description

Task<Void>

Task封装的API调用结果,应用可注册回调获取结果详情。

搜索
请输入您想要搜索的关键词