右转开放平台
  • 右转开放平台简介
  • 智能设备接入主机
    • 智能家居协议
      • 发现设备
      • 控制设备
      • 查询消息
      • 通知消息
      • 目前支持的设备
      • 支持的操作类型
    • 云端接入
      • 流程简介
      • 服务接入流程
    • Android端SDK接入
      • 接入指南
      • 初始化配置,登录
      • 设备发现
      • 设备控制
      • SdkAction
      • 请求类型与数据参照
    • TCP&UDP协议
  • 控制右转主机
    • 外网接入
      • 接入指南
        • 添加SDK
        • 账号体系
        • 设备管理
        • 设备控制
        • 设备消息
      • 常用数据类介绍
        • LoginSuccessOption
        • Device
        • DeviceData
        • Music
        • CloudStatusUpdateBean
      • 错误码
    • 云云对接
    • 直连接入
    • RS-485协议接入
    • TCP/IP-UDP协议接入
  • FAQ
由 GitBook 提供支持
在本页
  • 运行流程图
  • 调用方法(discoverAppliance)
  • Appliance设备对象
  • 获取设备成功
  1. 智能设备接入主机
  2. Android端SDK接入

设备发现

上一页初始化配置,登录下一页设备控制

最后更新于4年前

运行流程图

调用方法(discoverAppliance)

智能主机需要获取设备信息时,将会触发discoverAppliance方法

@Override
public void discoverAppliance(String param) {
    //实例化一个设备对象
    Appliance appliance = new Appliance();
    //设置设备的唯一Id值
    appliance.setApplianceIdByInt(1);
    //设置设备名称
    appliance.setDeviceName(1+"灯");
    //设置设备类型
    appliance.setApplianceTypes(YzDevType.LIGHT);
    //设置支持的操作
    appliance.setActions(YzDevAction.turnOn,YzDevAction.turnOff);
    //添加到集合中
    virtualDevice.add(appliance);
    //获取设备完成后调用notifyHost 通知Action为 GET_DEVICE_SUCCESS,返回设备信息
    notifyHost(SdkAction.GET_DEVICE_SUCCESS, JSON.toJSONString(virtualDevice));
}

Appliance设备对象

Appliance是设备对象,用于描述设备的信息,需要将不同的三方设备对象转换为此对象后再通过notifyHost通知主机更新数据

public class Appliance  {
    //设备ID
    /**设备唯一ID*/
    private String applianceId;
    //设备具有的操作类型
    /**设备具有的操作类型*/
    private String[] actions;
    //设备的类型
    /**设备的类型*/
    private String[] applianceTypes;
    //设备名
    /**设备名*/
    private String deviceName;
    //厂商名
    /**厂商名*/
    private String manufacturerName;
    //如果具有自己的图标的话用该字段(可选,无值默认使用对应类型的本地图标)
    //图片URL链接
    /**如果具有自己的图标的话用该字段(可选,无值默认使用对应类型的本地图标)
     图片URL链接*/
    private String icon;
    //设备型号
    /**设备型号*/
    private String model;
    //设备型号名称
    /**设备型号名称*/
    private String modelName;
    //设备区域名称例如 (客厅,厨房),如果此字段为空则可能赋予默认的值
    /**设备区域名称例如 (客厅,厨房),如果此字段为空则可能赋予默认的值*/
    private String zone = "客厅";
    //设备楼层名称例如 (1楼,2楼),如果此字段为空则可能赋予默认的值
    /**设备楼层名称例如 (1楼,2楼),如果此字段为空则可能赋予默认的值*/
    private String floor = "1楼";
    //设备属性K - V
    /**设备属性K - V*/
    private JSONObject attributes;
    //补充字段
    /**补充字段*/
    private JSONObject additionalApplianceDetails;
    }

获取设备成功

由于设备加载时的时间长短不一,因此需要开发者在设备搜索完成后,自行发送通知获取设备成功的消息

数据:数组类型Appliance

 notifyHost(SdkAction.GET_DEVICE_SUCCESS, JSON.toJSONString(virtualDevice));

SdkAction. 获取成功

SdkAction. 获取失败

GET_DEVICE_SUCCESS
GET_DEVICE_FAIL