gpg::NearbyConnections

#include <nearby_connections.h>

用于在同一局域网中的应用之间创建连接和进行通信的 API。

摘要

构造函数和析构函数

NearbyConnections()
~NearbyConnections()

公共函数

AcceptConnectionRequest(const std::string & remote_endpoint_id, const std::vector< uint8_t > & payload, IMessageListener *listener)
void
接受连接请求。
AcceptConnectionRequest(const std::string & remote_endpoint_id, const std::vector< uint8_t > & payload, MessageListenerHelper helper)
void
接受连接请求。
Disconnect(const std::string & remote_endpoint_id)
void
断开与具有指定 ID 的远程端点的连接。
RejectConnectionRequest(const std::string & remote_endpoint_id)
void
拒绝连接请求。
SendConnectionRequest(const std::string & name, const std::string & remote_endpoint_id, const std::vector< uint8_t > & payload, ConnectionResponseCallback callback, IMessageListener *listener)
void
请求与远程端点建立连接。
SendConnectionRequest(const std::string & name, const std::string & remote_endpoint_id, const std::vector< uint8_t > & payload, ConnectionResponseCallback callback, MessageListenerHelper helper)
void
请求连接到远程端点。
SendReliableMessage(const std::string & remote_endpoint_id, const std::vector< uint8_t > & payload)
void
向具有指定 ID 的远程端点发送可靠消息。
SendReliableMessage(const std::vector< std::string > & remote_endpoint_ids, const std::vector< uint8_t > & payload)
void
向具有指定 ID 的远程端点发送可靠消息。
SendUnreliableMessage(const std::string & remote_endpoint_id, const std::vector< uint8_t > & payload)
void
向具有指定 ID 的远程端点发送不可靠消息。
SendUnreliableMessage(const std::vector< std::string > & remote_endpoint_ids, const std::vector< uint8_t > & payload)
void
向具有指定 ID 的远程端点发送不可靠消息。
StartAdvertising(const std::string & name, const std::vector< AppIdentifier > & app_identifiers, Duration duration, StartAdvertisingCallback start_advertising_callback, ConnectionRequestCallback request_callback)
void
开始为本地应用通告端点。
StartDiscovery(const std::string & service_id, Duration duration, IEndpointDiscoveryListener *listener)
void
查找具有指定服务 ID 的远程端点,并在应用找到和丢失端点时重复调用监听器。
StartDiscovery(const std::string & service_id, Duration duration, EndpointDiscoveryListenerHelper helper)
void
查找具有指定服务 ID 的远程端点。
Stop()
void
断开与所有远程端点的连接;停止正在进行的任何广告投放或发现。
StopAdvertising()
void
停止宣传本地端点。
StopDiscovery(const std::string & service_id)
void
停止为之前指定的服务 ID 查找远程端点。

gpg::NearbyConnections::Builder

用于构建 NearbyConnections 对象的 Builder 类。

公共函数

AcceptConnectionRequest

void AcceptConnectionRequest(
  const std::string & remote_endpoint_id,
  const std::vector< uint8_t > & payload,
  IMessageListener *listener
)

接受连接请求。

之后,应用可以向指定端点发送消息,并从中接收消息。它可以使用 listener 执行此操作,直到应用与另一个端点断开连接。remote_endpoint_id 必须与请求连接的远程端点的 ID 一致。ConnectionRequestCallback 会提供该 ID。payload 可以存储要与连接响应一起发送的消息。listener 指定一个监听器,以便在有此连接的事件发生时收到通知。

AcceptConnectionRequest

void AcceptConnectionRequest(
  const std::string & remote_endpoint_id,
  const std::vector< uint8_t > & payload,
  MessageListenerHelper helper
)

接受连接请求。

此函数与 AcceptConnectionRequest 的唯一区别在于,它使用的是 MessageListenerHelper,而不是 IMessageListener

断开连接

void Disconnect(
  const std::string & remote_endpoint_id
)

断开与具有指定 ID 的远程端点的连接。

NearbyConnections

 NearbyConnections()

RejectConnectionRequest

void RejectConnectionRequest(
  const std::string & remote_endpoint_id
)

拒绝连接请求。

remote_endpoint_id 必须与请求连接的远程端点的 ID 一致。ConnectionRequestCallback 会提供该 ID。

SendConnectionRequest

void SendConnectionRequest(
  const std::string & name,
  const std::string & remote_endpoint_id,
  const std::vector< uint8_t > & payload,
  ConnectionResponseCallback callback,
  IMessageListener *listener
)

请求与远程端点建立连接。

name 是应用可向另一部设备上的用户显示的名称,用于识别此端点。如果您指定空字符串,则系统会使用设备名称。remote_endpoint_id 是此应用发送连接请求的远程端点的 ID。payload 可以包含要与关联请求一起发送的自定义消息。或者,您的应用可以传递空字节矢量,而不是载荷。此函数会在响应请求时调用指定的回调。如果操作成功,则会生成“Connection Accepted”(连接已接受)或“Connection Rejected”(连接已拒绝)响应。否则,它会生成失败消息。如果连接已被接受,应用可以向远程端点发送消息,并且在收到消息或与远程端点断开连接时,应用会调用指定的监听器。

SendConnectionRequest

void SendConnectionRequest(
  const std::string & name,
  const std::string & remote_endpoint_id,
  const std::vector< uint8_t > & payload,
  ConnectionResponseCallback callback,
  MessageListenerHelper helper
)

请求连接到远程端点。

SendConnectionRequest 的唯一区别在于,它使用 MessageListenerHelper 而非 IMessageListener

SendReliableMessage

void SendReliableMessage(
  const std::string & remote_endpoint_id,
  const std::vector< uint8_t > & payload
)

向具有指定 ID 的远程端点发送可靠消息。

SendReliableMessage

void SendReliableMessage(
  const std::vector< std::string > & remote_endpoint_ids,
  const std::vector< uint8_t > & payload
)

向具有指定 ID 的远程端点发送可靠消息。

SendUnreliableMessage

void SendUnreliableMessage(
  const std::string & remote_endpoint_id,
  const std::vector< uint8_t > & payload
)

向具有指定 ID 的远程端点发送不可靠消息。

SendUnreliableMessage

void SendUnreliableMessage(
  const std::vector< std::string > & remote_endpoint_ids,
  const std::vector< uint8_t > & payload
)

向具有指定 ID 的远程端点发送不可靠消息。

StartAdvertising

void StartAdvertising(
  const std::string & name,
  const std::vector< AppIdentifier > & app_identifiers,
  Duration duration,
  StartAdvertisingCallback start_advertising_callback,
  ConnectionRequestCallback request_callback
)

开始为本地应用通告端点。

name 可以是应用向用户显示的用于标识端点的名称。如果您指定空字符串,则系统会使用设备名称。如果指定,app_identifiers 会指定如何在不同平台上安装或启动此应用。duration 指定广告将投放的时长(以毫秒为单位),除非应用在时长到期之前调用 StopAdvertising()Stop()。如果 duration 的值等于 gpg::Duration::zero(),则广告会无限期继续投放,直到应用调用 StopAdvertising()。此函数会在广告开始或失败时调用 start_advertising_callback;如果成功,此回调会收到端点信息;如果失败,则会收到错误代码。当远程端点请求与应用的端点建立连接时,此函数会调用 request_callback。此函数会继续通告此端点的存在,直到应用调用 StopAdvertising 或时长耗尽。如果已经有端点在进行广告宣传,则此调用将失败。

StartDiscovery

void StartDiscovery(
  const std::string & service_id,
  Duration duration,
  IEndpointDiscoveryListener *listener
)

查找具有指定服务 ID 的远程端点,并在应用找到和丢失端点时重复调用监听器。

继续执行此操作,直到应用使用指定的服务 ID 调用 StopDiscoveryservice_id 应与应用通过 StartAdvertising 进行广告宣传时提供的价值一致。duration 指定发现功能的运行时长上限(以毫秒为单位;如果应用调用 StopDiscovery(),则可能更早停止)。如果 Duration 的值等于 gpg::Duration::zero(),则发现功能会无限期继续,直到应用调用 StopDiscovery()Stop()。如果已注册用于查找指定服务 ID 的端点的监听器,此调用将失败。

StartDiscovery

void StartDiscovery(
  const std::string & service_id,
  Duration duration,
  EndpointDiscoveryListenerHelper helper
)

查找具有指定服务 ID 的远程端点。

此函数与 StartDiscovery 的唯一区别在于,它使用 EndpointDiscoveryListenerHelper 而非 IEndpointDiscoveryListener

停止

void Stop()

断开与所有远程端点的连接;停止正在进行的所有广告投放或发现。

清理内部状态。

StopAdvertising

void StopAdvertising()

停止宣传本地端点。

这样做不会导致断开现有连接。

StopDiscovery

void StopDiscovery(
  const std::string & service_id
)

停止为之前指定的服务 ID 查找远程端点。

~NearbyConnections

 ~NearbyConnections()