一、XLinkDeviceManager
XLinkDeviceManager
是设备维护管理类,所有设备的状态维护都通过这个类进行管理维护。通过XLinkSyncDeviceListTask
任务同步的设备列表,默认会将设备添加设备管理列表中进行状态维护。
在设备管理维护中,设备可同时存在内网连接与云端连接两种连接方式,设备管理类也提供了相应的方法以便进行连接方式的切换或者更新。
- 以下方法说明中明确提供不推荐使用的方法,即为不建议开发者调用或者是开发者不应该进行任何数据修改。
- 以下文档中未提及的方法均属于不推荐使用的方法
二、Reference
以下为此类中关联的Class及相关说明
类名 | 类型 | 说明 |
---|---|---|
XLinkConstant | 常量类 | 所有常用的常量将存在于此类中,包括常用的flag和部分默认参数值,详情请查看API-XLinkConstant |
XDevice | 实体类 | 设备对象,SDK 中广泛使用的设备对象,详情请查看API-XDevice |
XDevice.State | 枚举类 | 设备状态,该类用于表示设备的连接状态,详情请查看API-XDevice中相关类 |
三、Methods
以下方法为开发过程常用的方法说明,参数说明及返回值说明。此处仅提供了推荐开发者使用及可能需要使用的方法,部分未列出方法请根据实际情况评估调用。
默认情况下,不推荐未列出的其它方法,即使是开放的方法,因为部分方法可能仅 SDK 内部使用。
1、addDeviceConnectionFlags
public boolean addDeviceConnectionFlags(String deviceTag, int flag)
- 方法说明:
向已在维护列表中的设备添加新的连接策略,不影响原有的连接策略,注意当添加策略为XLinkConstant.FLAG_POLICY_NONE_CONNECTION
时并不会有任何变更
注意连接策略是以 flag 的形式存在,多个 flag 是允许进行同时进行设置处理的,如:
XLinkDeviceManager.getInstance().addDeviceConnectionFlags(
devTag,
XLinkConstant.FLAG_POLICY_LOCAL_AUTO_CONNECTION|XLinkConstant.FLAG_POLICY_CLOUD_AUTO_CONNECTION
)
- 参数说明:
参数名 | 类型 | 说明 |
---|---|---|
deviceTag | String | 设备连接标识 |
flag | int | 连接策略flag,请参考常量类数据API-XLinkConstant |
- 返回值:boolean,添加结果存在该设备并添加成功时,返回 true,否则返回 false
2、removeDeviceConnectionFlags
public boolean removeDeviceConnectionFlags(String deviceTag, int flag)
- 方法说明:
向已在维护列表中的设备移除掉指定的连接策略,注意当移除的策略为XLinkConstant.FLAG_POLICY_NONE_CONNECTION
时并不会有任何变更
- 参数说明:
参数名 | 类型 | 说明 |
---|---|---|
deviceTag | String | 设备连接标识 |
flag | int | 连接策略flag |
- 返回值:boolean,移除结果;存在该设备并移除成功时,返回 true,否则返回 false
3、setDeviceConnectionFlags
public boolean setDeviceConnectionFlags(String deviceTag, int flag)
- 方法说明:
向已在维护列表中的设备设置连接策略,将覆盖掉原来的连接策略
- 参数说明:
参数名 | 类型 | 说明 |
---|---|---|
deviceTag | String | 设备连接标识 |
flag | int | 连接策略flag |
- 返回值:boolean,设置结果存在该设备并设置成功时,返回 true,否则返回 false
4、getDeviceConnectionFlag
public int getDeviceConnectionFlag(String devTag)
- 方法说明:
获取设备的连接flag,用于标识该设备对象的连接策略
- 参数说明:
参数名 | 类型 | 说明 |
---|---|---|
devTag | String | 设备标识 |
- 返回值:int,连接策略;返回设备连接策略flag
5、connectDevice
public boolean connectDevice(XDevice device, int flag)
- 方法说明:
连接指定设备对象,指定连接策略进行连接,注意此处的连接策略会替换掉设备原有的连接策略
- 参数说明:
参数名 | 类型 | 说明 |
---|---|---|
device | XDevice | 设备对象 |
flag | int | 连接策略flag |
- 返回值:boolean,处理结果;设置存在返回 true,否则返回 false,注意返回 true 不表示设备已经连接成功,仅表示设备进行了连接处理
public boolean connectDevice(@NotNull String devTag, int flag)
- 方法说明:
连接指定设备对象,指定连接策略进行连接,若给定的设备标识不存在维护列表中,则不会进行连接
- 参数说明
参数名 | 类型 | 说明 |
---|---|---|
devTag | String | 设备标识,不允许为 null |
flag | int | 连接策略flag |
- 返回值:设备存在时返回 true,否则返回 false
6、disconnectDeviceCloud
public boolean disconnectDeviceCloud(@NotNull String devTag)
- 方法说明:
断开设备的云端连接,此方法不会影响内网连接并且不会移除设备。注意如果需要移除设备应该使用XLinkRemoveDeviceTask
而不应该直接调用此方法
- 参数说明:
参数名 | 类型 | 说明 |
---|---|---|
devTag | String | 设备标识,不允许为 null |
- 返回值:boolean,处理结果;若设备存在尝试进行处理返回 true, 否则返回 false, 注意返回 true 不代表着已经成功断开连接
7、disconnectDeviceLocal
public boolean disconnectDeviceLocal(@NotNull String devTag)
- 方法说明:
断开设备的内网连接,此方法不会影响云端连接并且不会移除设备。注意如果需要移除设备应该使用XLinkRemoveDeviceTask
而不应该直接调用此方法
- 参数说明:
参数名 | 类型 | 说明 |
---|---|---|
devTag | String | 设备标识,不允许为 null |
- 返回值:boolean,处理结果;若设备存在尝试进行处理返回 true, 否则返回 false, 注意返回 true 不代表着已经成功断开连接
8、containsKey
public boolean containsKey(@Nullable String devTag)
- 方法说明:
检测设备管理列表中是否包括当前的设备
- 参数说明:
参数名 | 类型 | 说明 |
---|---|---|
devTag | String | 设备标识,允许为 null |
- 返回值:boolean,查找结果;若设备管理列表中包含此设备则返回 true,否则返回 false
9、getDevice
@Nullable
public XDevice getDevice(@Nullable String devTag)
- 方法说明:
获取当前设备标识对应的设备
- 参数说明:
参数名 | 类型 | 说明 |
---|---|---|
devTag | String | 设备标识,允许为 null |
- 返回值:XDevice,查找的设备对象;返回设备对象若设备管理列表中存在该设备,返回值可能为 null
10、removeDevice
@Nullable
public String removeDevice(XDevice item)
- 方法说明:
移除维护的设备对象,断开设备所有连接,清除设备数据
- 参数说明:
参数名 | 类型 | 说明 |
---|---|---|
item | XDevice | 设备对象 |
- 返回值:String,设备标识;当设备不为 null时,移除设备并返回设备标识,否则返回 null
11、removeDeviceByDevTag
@Nullable
public XDevice removeDeviceByDevTag(String devTag)
- 方法说明:
若该设备存在设备管理列表中,从设备管理列表中移除设备,断开设备所有连接并清除设备的数据
- 参数说明
参数名 | 类型 | 说明 |
---|---|---|
devTag | String | 设备标识,允许为 null |
- 返回值:XDevice,设备对象;当设备存在时,返回被移除的设备对象,当设备不存在时,返回 null;
12、getDeviceLocalState
@NotNull
public XDevice.State getDeviceLocalState(String devTag)
- 方法说明:
获取设备内网连接状态,若设备不存在时,返回 DISCONNECT
- 参数说明:
参数名 | 类型 | 说明 |
---|---|---|
devTag | String | 设备标识,允许为 null |
- 返回值:XDevice.State,设备状态;
13、getDeviceCloudState
@NotNull
public XDevice.State getDeviceLocalState(String devTag)
- 方法说明:
获取设备云端连接状态,若设备不存在时,返回 DISCONNECT
- 参数说明:
参数名 | 类型 | 说明 |
---|---|---|
devTag | String | 设备标识,允许为 null |
- 返回值:XDevice.State,设备状态;
14、getDeviceConnectedState
@NotNull
public XDevice.State getDeviceConnectedState(String devTag)
- 方法说明:
获取设备的连接状态,当内网或云端已连接时都返回 CONNECTED,当内网或云端任一处于连接中时都返回 CONNECTING,否则返回 DISCONNECT
- 参数说明:
参数名 | 类型 | 说明 |
---|---|---|
devTag | String | 设备标识,允许为 null |
- 返回值:XDevice.State,设备状态;
15、isDeviceConnected
public boolean isDeviceConnected(String deviceTag)
- 方法说明:
判断指定设备的连接状态是否为 CONNECTED
- 参数说明:
参数名 | 类型 | 说明 |
---|---|---|
devTag | String | 设备标识,允许为 null |
- 返回值:boolean,判断结果;若设备已连接返回 true,否则返回 false
16、isDeviceCloudConnected
public boolean isDeviceCloudConnected(String deviceTag)
- 方法说明:
判断指定设备的云端连接状态是否为 CONNECTED
- 参数说明:
参数名 | 类型 | 说明 |
---|---|---|
devTag | String | 设备标识,允许为 null |
- 返回值:boolean,判断结果;若设备云端状态为已连接返回 true,否则返回 false
17、isDeviceLocalConnected
public boolean isDeviceLocalConnected(String deviceTag)
- 方法说明:
判断指定设备的内网连接状态是否为 CONNECTED
- 参数说明:
参数名 | 类型 | 说明 |
---|---|---|
devTag | String | 设备标识,允许为 null |
- 返回值:boolean,判断结果;若设备内网状态为已连接返回 true,否则返回 false
18、getDeviceFromMacAddress
@Nullable
public XDevice getDeviceFromMacAddress(String macAddress)
- 方法说明:
根据 mac 地址从设备管理列表中查找对应的设备,若查找不到返回 null
- 参数说明:
参数名 | 类型 | 说明 |
---|---|---|
macAddress | String | 设备 mac 地址 |
- 返回值:XDevice,设备对象;若参数为 null 或查找不到该设备,则返回 null
19、getDeviceFromDeviceId
@Nullable
public XDevice getDeviceFromDeviceId(int deviceId)
- 方法说明:
根据设备ID从设备管理列表中查找对应的设备,若查找不到返回 null
- 参数说明:
参数名 | 类型 | 说明 |
---|---|---|
deviceId | int | 设备id |
- 返回值:XDevice,设备对象;若参数为 null 或查找不到该设备,则返回 null
20、addDeviceStateListener
public void addDeviceStateListener(XLinkDeviceStateListener listener)
- 方法说明:
添加设备状态监听回调,若参数为 null 则不会添加
- 参数说明:
参数名 | 类型 | 说明 |
---|---|---|
listener | XLinkDeviceStateListener | 设备状态监听回调 |
- 返回值:void
21、removeDeviceStateListener
public void removeDeviceStateListener(XLinkDeviceStateListener listener)
- 方法说明:
移除设备状态监听回调
- 参数说明:
参数名 | 类型 | 说明 |
---|---|---|
listener | XLinkDeviceStateListener | 设备状态监听回调 |
- 返回值:void
四、更新日志
日期 | 更新内容 |
---|---|
2018-08-22 | 初稿,自 X-MQTT SDK v6.2版本起 |