更新时间:2022-02-17 06:55:23下载pdf
本文介绍了社区关于房屋信息的获取和管理能力等安卓版接口信息。其中包括创建房屋、查询房屋列表、监听房屋信息变化、查询房屋详细信息、查询房屋天气信息、迁出删除房屋、设置房屋中设备和群组的顺序等。
相关类:
| 类名 | 说明 | 
|---|---|
| ITuyaCommunityHouseManager | 提供了添加房屋、获取房屋列表以及监听房屋相关的变更的能力。通过 TuyaCommunitySDK.getHouseManagerInstance()获取 | 
| ITuyaCommunityHouse | 提供了获取房屋信息,房屋天气信息,设置房屋中设备和群组的顺序等。通过 TuyaCommunitySDK.newHouseInstance(houseId)获取 | 
TuyaCommunityHouseBean 数据类型:
| 属性 | 类型 | 说明 | 
|---|---|---|
| communityId | String | 小区 ID | 
| communityName | String | 小区名称 | 
| houseAddress | String | 房屋地址 | 
| houseId | Long | 房屋 ID | 
| houseName | String | 房屋名称 | 
| admin | Boolean | 是否有智家管理权限(包括智家拥有者和管理者) | 
| auditStatus | Integer | 房屋审核状态 TuyaCommunityHouseAuditStatus: 
 | 
| guestHouse | Boolean | 是否游客家庭 | 
| userTypeName | String | 当前用户的成员身份 | 
| memberNum | Integer | 房屋成员数 | 
| roomUserId | String | 当前用户的成员 ID | 
| roomId | String | 房号 ID | 
| geoName | String | 房屋地理位置名称 | 
| longitude | Double | 经度 | 
| latitude | Double | 纬度 | 
| dealStatus | Integer | 加入房屋要求的状态 TuyaCommunityMemberInviteStatus:
 | 
| role | Integer | 房屋成员权限 TuyaCommunityMemberRole:
 | 
| rooms | List<RoomBean> | 所有房间列表 | 
| deviceList | List<DeviceBean> | 所有设备列表 | 
| groupList | List<GroupBean> | 所有群组 | 
| meshList | List<BlueMeshBean> | 网关设备 | 
| sharedDeviceList | List<DeviceBean> | 收到的共享设备 | 
| sharedGroupList | List<GroupBean> | 收到的共享群组 | 
添加房屋时,需要先选择小区。
接口说明
void getCommunityList(@Nullable String keyword, double latitude, double longitude, ITuyaCommunityResultCallback<ArrayList<TuyaCommunityListBean>> callback);
参数说明
| 参数 | 说明 | 
|---|---|
| keyword | 小区名称,非必传,用于搜索小区时传入 | 
| latitude | 维度,非必传,用于显示附近的小区 | 
| longitude | 经度,非必传,用于显示附近的小区 | 
| callback | 获取结果的回调 | 
TuyaCommunityListBean 数据类型:
| 属性 | 类型 | 说明 | 
|---|---|---|
| city | String | 城市 | 
| hasLocation | Boolean | 是否含有位置 | 
| list | List | 小区列表 | 
TuyaCommunityBean 数据类型:
| 属性 | 类型 | 说明 | 
|---|---|---|
| communityName | String | 小区名 | 
| communityId | String | 小区 ID | 
Java 示例代码
TuyaCommunitySDK.getHouseManagerInstance().getCommunityList(
			keyword, lat, lon, new ITuyaCommunityResultCallback<ArrayList<TuyaCommunityListBean>>() {                    @Override
				public void onSuccess(ArrayList<TuyaCommunityListBean> tuyaCommunityListBeans) {
					// do something
					}
				}
				@Override
				public void onFailure(String s, String s1) {
					// do something
				}
			});
添加房屋时,选择小区后,获取小区下空间树的列表,包括楼幢、单元、楼层、房号,根据返回数据中 hasMore 字段判断是否有下级空间。
接口说明
void getCommunityHouseTreeList(String treeId, ITuyaCommunityResultCallback<ArrayList<TuyaCommunityHouseTreeBean>> callback);
参数说明
| 参数 | 说明 | 
|---|---|
| treeId | 空间树 ID,如获取小区下房屋树,传 communityId | 
| callback | 获取结果的回调 | 
TuyaCommunityHouseTreeBean 数据类型
| 属性 | 类型 | 说明 | 
|---|---|---|
| spaceTreeName | String | 小区下层级名,例如 1幢、1单元等 | 
| spaceTreeId | String | 小区下层级 ID,最后一个层级的 spaceTreeId即为房号 ID | 
| hasMore | Boolean | 是否含有下一层级 | 
Java 示例代码
    TuyaCommunitySDK.getHouseManagerInstance().getCommunityHouseTreeList(treeId, new ITuyaCommunityResultCallback<ArrayList<TuyaCommunityHouseTreeBean>>() {
            @Override
            public void onSuccess(ArrayList<TuyaCommunityHouseTreeBean> tuyaCommunityHouseTreeBeans) {
                // do something
            }
            @Override
            public void onFailure(String s, String s1) {
                // do something
            }
        });
接口说明
void addHouse(String name, String communityId, String roomId, String userType, @Nullable String expireTime, ITuyaCommunityResultCallback<TuyaCommunityHouseBean> callback);
参数说明
| 参数 | 说明 | 
|---|---|
| name | 房屋的全称,包括小区、楼幢、单元、楼层、房号 | 
| roomId | 房号 ID,也即房屋选择列表最后一层treeId | 
| userType | 成员类型,如业主、家人等,通过 TuyaCommunityMember 类的getMemberTypeList() 获取 | 
| expireTime | 到期时间,非必传,可以给租客设置到期时间,格式为 yyyyMMdd | 
| callback | 获取结果的回调 | 
Java 示例
TuyaCommunitySDK.getHouseManagerInstance().addHouse(name, communityId,
                        roomId, userType, "", new ITuyaCommunityResultCallback<TuyaCommunityHouseBean>() {
                            @Override
                            public void onSuccess(TuyaCommunityHouseBean tuyaCommunityHouseBean) {
                                // do something
                            }
                            @Override
                            public void onFailure(String s, String s1) {
                                // do something
                            }
                        });
接口说明
void getHouseList(ITuyaCommunityResultCallback<ArrayList<TuyaCommunityHouseBean>> callback);
参数说明
| 参数 | 说明 | 
|---|---|
| callback | 获取结果的回调 | 
Java 示例
TuyaCommunitySDK.getHouseManagerInstance().getHouseList(new ITuyaCommunityResultCallback<ArrayList<TuyaCommunityHouseBean>>() {
            @Override
            public void onSuccess(ArrayList<TuyaCommunityHouseBean> list) {
                // do something
            }
            @Override
            public void onFailure(String s, String s1) {
                // do something
            }
        });
房屋信息变化的时机包括房屋添加、删除、审核状态变更、服务器连接成功的监听等。
接口说明
public interface ITuyaHouseChangeListener {
	/**
	* 房屋添加成功houseId
	* 用于多设备数据同步
	*
	* @param houseId
	*/
	void onHouseAdded(long houseId);
houseId	/**
	* 房屋审核状态变更
	* @param houseId    房屋ID
	* @param audit  房屋审核状态:20:审核通过 10:审核驳回 30:房屋迁出
	*/
    void onHouseAuditStatusUpdate(long houseId, @TuyaCommunityHomeAuditStatus int audit);
	/**
	* 房屋删除成功
	* 用于多设备数据同步
	*
	* @param houseId
	*/
	void onHouseRemoved(long houseId);
	/**
	* 分享设备列表变更
	* 用于多设备数据同步
	*
	* @param sharedDeviceList
	*/
	void onSharedDeviceList(List<DeviceBean> sharedDeviceList);
	/**
	* 分享群组列表变更
	* 用于多群组数据同步
	*
	* @param sharedGroupList
    */
    void onSharedGroupList(List<GroupBean> sharedGroupList);
	/**
	* 注册 MQTT 服务连接成功回调
	* 手机连接涂鸦 IoT 云成功,接收到此通知,
	* 本地数据与服务端数据可能会不一致或者无法控制设备,
	* 您可以调用 House 下 getHouseDetail 接口重新初始化数据。
	*/
	void onServerConnectSuccess();
}
接口说明
void registerTuyaHouseChangeListener(ITuyaHouseChangeListener listener)
参数说明
| 参数 | 说明 | 
|---|---|
| listener | 监听器 | 
接口说明
void unRegisterTuyaHouseChangeListener(ITuyaHouseChangeListener listener)
参数说明
| 参数 | 说明 | 
|---|---|
| listener | 监听器 | 
Java 示例
// 定义监听
ITuyaHouseChangeListener listener = new ITuyaHouseChangeListener() {
		@Override
		public void onHouseAdded(long houseId) {
			// do something
		}
		@Override
		public void onHouseAuditStatusUpdate(long houseId, int audit) {
			// do something
		}
		@Override
		public void onHouseRemoved(long houseId) {
			// do something
		}
		@Override
		public void onSharedDeviceList(List<DeviceBean> sharedDeviceList) {
			// do something
		}
		@Override
		public void onSharedGroupList(List<GroupBean> sharedGroupList) {
			// do something
		}
		@Override
		public void onServerConnectSuccess() {
			// do something
		}
	};
// 注册监听
TuyaCommunitySDK.getHouseManagerInstance().registerTuyaHouseChangeListener(listener);
// ...
// 取消注册监听
TuyaCommunitySDK.getHouseManagerInstance().unRegisterTuyaHouseChangeListener(listener);
获取房屋下的所有数据,包括设备、群组、房间等。
接口说明
void getHouseDetail(ITuyaCommunityResultCallback<TuyaCommunityHouseBean> callback)
参数说明
| 参数 | 说明 | 
|---|---|
| callback | 获取结果的回调 | 
Java 示例
TuyaCommunitySDK.newHouseInstance(houseId).getHouseDetail(new ITuyaCommunityResultCallback<TuyaCommunityHouseBean>() {
		@Override
		public void onSuccess(TuyaCommunityHouseBeanonFailure bean) {
			// do something
		}
		@Override
		public void onFailure(String errorCode, String errorMsg) {
			// do something
		}
	});
获取房屋下的所有离线数据,包括设备、群组、房间等。
接口说明
void getHouseLocalCache(ITuyaHouseResultCallback callback)
参数说明
| 参数 | 说明 | 
|---|---|
| callback | 获取结果的回调 | 
Java 示例
TuyaCommunitySDK.newHouseInstance(houseId).getHouseLocalCache(new ITuyaHouseResultCallback() {
		@Override
		public void onSuccess(HouseBean bean) {
			// do something
		}
		@Override
		public void onFailure(String errorCode, String errorMsg) {
			//sdk cache error do not deal
		}
	});
TuyaCommunityHouseDataManager 提供了缓存数据的访问能力,接口为 TuyaCommunitySDK.getDataInstance()。
获取房屋缓存数据前,您应该调用房屋的初始化接口 TuyaCommunitySDK.newHouseInstance("houseId").getHouseDetail() 或者 TuyaCommunitySDK.newHouseInstance("houseId").getHouseLocalCache(),然后 TuyaCommunitySDK.getHouseDataInstance() 接口才会有缓存数据。
此接口只返回房屋基本信息,包括房屋名称、具体地址、审核状态和房间信息等(不返回设备、群组等列表)。
接口说明
void getHouseInfo(long houseId, ITuyaCommunityResultCallback<TuyaCommunityHouseBean> callback);
参数说明
| 参数 | 说明 | 
|---|---|
| houseId | 房屋ID | 
| callback | 获取结果的回调 | 
示例代码
    TuyaCommunitySDK.getHouseManagerInstance().getHouseInfo(houseId, new ITuyaCommunityResultCallback<TuyaCommunityHouseBean>() {
            @Override
            public void onSuccess(TuyaCommunityHouseBean houseBean) {
		// do something
            }
            @Override
            public void onFailure(String s, String s1) {
		// do something
            }
        });
此接口返回房屋审核结果。
接口说明
void getHouseAuditResult(String communityId, String roomUserId, ITuyaCommunityResultCallback<TuyaCommunityAuditHouseBean> callback);
参数说明
| 参数 | 说明 | 
|---|---|
| communityId | 小区 ID | 
| roomUserId | 人房绑定关系 ID | 
| callback | 获取结果的回调 | 
示例代码
    TuyaCommunitySDK.getHouseManagerInstance().getHouseAuditResult(communityId, roomUserId, new ITuyaCommunityResultCallback<TuyaCommunityAuditHouseBean>() {
            @Override
            public void onSuccess(TuyaCommunityAuditHouseBean tuyaCommunityAuditHouseBean){
                // do something
            }
            @Override
            public void onFailure(String s, String s1) {
		// do something
            }
        });
接口说明
void updateHouseLocation(double lon, double lat,String geoName, ISuccessFailureCallback callback);
参数说明
| 参数 | 说明 | 
|---|---|
| longitude | 经度 | 
| latitude | 纬度 | 
| geoName | 房屋地理位置 | 
| callback | 获取结果的回调 | 
示例代码
    TuyaCommunitySDK.newHouseInstance(item.getHouseId()).updateHouseLocation(lon, lat, new ISuccessFailureCallback() {
                    @Override
                    public void onSuccess() {
			// do something
                    }
                    @Override
                    public void onFailure(String s, String s1) {
			// do something                    }
                });
接口说明
查询房屋所在城市的简要天气参数。包括天气状况(晴、多云、雨等)和天气图片信息。
void getHouseWeatherSketch(double lon, double lat, ITuyaCommunityResultCallback<TuyaCommunityWeatherSketchBean> callback);
参数说明
| 参数 | 说明 | 
|---|---|
| lon | 经度 | 
| lat | 纬度 | 
| callback | 获取结果的回调 | 
TuyaCommunityWeatherSketchBean 说明
| 参数 | 说明 | 
|---|---|
| condition | 天气情况,例如晴,阴,雨等 | 
| temp | 温度 | 
| iconUrl | 天气图标 | 
| inIconUrl | 天气详情页图标 | 
Java 示例
TuyaCommunitySDK.newHouseInstance(mHouseId).getHouseWeatherSketch(lon, lat, new ITuyaCommunityResultCallback<TuyaCommunityWeatherSketchBean>() {
	@Override
	public void onSuccess(TuyaCommunityWeatherSketchBean result) {
		// do something
	}
	@Override
	public void onFailure(String errorCode, String errorMsg) {
		// do something
	}
});
获取房屋天气详细参数,如温度、湿度、紫外线指数、空气质量等。
由于天气服务在不同地区的使用的服务不同,不同地区返回的参数有可能不同。
如果当前房屋账号在中国地区,则不会返回风速和气压信息。
接口说明
void getHouseWeatherDetail(int limit, Map<String, Object> unit, ITuyaCommunityResultCallback<List<TuyaCommunityWeatherBean>> callback);
参数说明
| 参数 | 说明 | 
|---|---|
| limit | 获取的数量 | 
| unit | 单位 | 
| callback | 获取结果的回调 | 
unit 说明
| unit 键 | unit 说明 | unit 值 | 
|---|---|---|
| tempUnit | 温度单位 | °C:1 °F:2 | 
| pressureUnit | 气压单位 | hPa:1 inHg:2 mmHg:3 mb:4 | 
| windspeedUnit | 风速单位 | mph:1 m/s:2 kph:3 km/h:4 | 
例如,获取摄氏度时,可以将 tempUnit 设置为 1:
Map<String,Object> units = new HashMap<>();
units.put("tempUnit",1);
Java 示例
Map<String, Object> units = new HashMap<>();
        units.put("tempUnit", 1);   // °C
        units.put("pressureUnit", 1);  // hPa
        units.put("windspeedUnit", 2); // m/s
        TuyaCommunitySDK.newHouseInstance(Utils.getHouseId()).getHouseWeatherDetail(10, units, new ITuyaCommunityResultCallback<List<TuyaCommunityWeatherBean>>() {
            @Override
            public void onSuccess(List<TuyaCommunityWeatherBean> tuyaCommunityWeatherSketchBean) {
		// do something
            }
            @Override
            public void onFailure(String s, String s1) {
		// do something
            }
        });
用户本人由于产权变更、租期到期或其他原因不属于当前房屋住户时,可迁出房屋。
接口说明
void moveOutHouse(String communityId, String roomUserId, ISuccessFailureCallback callback);
参数说明
| 参数 | 说明 | 
|---|---|
| communityId | 小区 ID | 
| roomUserId | 人房绑定关系 ID | 
| callback | 获取结果的回调 | 
示例代码
    TuyaCommunitySDK.getHouseManagerInstance().moveOutHouse(communityId, roomUserId, new ISuccessFailureCallback() {
            @Override
            public void onSuccess() {
		// do something
            }
            @Override
            public void onFailure(String s, String s1) {
		// do something
            }
        });
已迁出、待审核、审核不通过的房屋,可以直接删除。
接口说明
void deleteHouse(String communityId, long houseId, ISuccessFailureCallback callback);
参数说明
| 参数 | 说明 | 
|---|---|
| communityId | 小区 ID | 
| houseId | 房屋 ID | 
| callback | 获取结果的回调 | 
示例代码
TuyaCommunitySDK.getHouseManagerInstance().deleteHouse(communityId, houseId, new ISuccessFailureCallback() {
		@Override
		public void onSuccess() {
	// do something
		}
		@Override
		public void onFailure(String s, String s1) {
	// do something
		}
	});
接口说明
void sortDeviceOrGroup(List<CommunityDeviceAndGroupInHouseBean> list, ISuccessFailureCallback callback);
参数说明
| 参数 | 说明 | 
|---|---|
| list | 房间或者群组列表。元素 CommunityDeviceAndGroupInHouseBean包含两个字段:
 | 
| callback | 获取结果的回调 | 
BizParentTypeEnum 对象的枚举值:
Java 示例
List<CommunityDeviceAndGroupInHouseBean> list = new ArrayList<>();
List<DeviceBean> deviceList = houseBean.getDeviceList();
List<GroupBean> groupList = houseBean.getGroupList();
for (GroupBean bean : groupList) {
	CommunityDeviceAndGroupInHouseBean deviceInRoomBean = new CommunityDeviceAndGroupInHouseBean();
	deviceInRoomBean.setBizId(bean.getDevId());
	deviceInRoomBean.setBizType(BizParentTypeEnum.GROUP.getType());
	list.add(deviceInRoomBean);
}
for (DeviceBean bean : deviceList) {
	CommunityDeviceAndGroupInHouseBean deviceInRoomBean = new CommunityDeviceAndGroupInHouseBean();
	deviceInRoomBean.setBizId(bean.getDevId());
	deviceInRoomBean.setBizType(BizParentTypeEnum.DEVICE.getType());
	list.add();
}
TuyaCommunitySDK.newHouseInstance(houseId).sortDevInHouse(houseId, list, new ISuccessFailureCallback() {
		@Override
		public void onSuccess() {
			// do something
		}
		@Override
		public void onFailure(String code, String error) {
			// do something
		}
	});
	// @param allDeviceBeans Contains all devices and groups in current House.
Collections.sort(allDeviceBeans, new Comparator<DeviceBean>() {
				@Override
				public int compare(DeviceBean o1, DeviceBean o2) {
					return o1.getHouseDisplayOrder() - o2.getHouseDisplayOrder();
				}
			});
接口说明
void unRegisterHouseStatusListener(ITuyaHouseStatusListener listener)
参数说明
| 参数 | 说明 | 
|---|---|
| listener | 监听器 | 
Java 示例
// 定义监听
ITuyaHouseStatusListener listener = new ITuyaHouseStatusListener() {
		@Override
		public void onDeviceAdded(String devId) {
			// do something
		}
		@Override
		public void onDeviceRemoved(String devId) {
			// do something
		}
		@Override
		public void onGroupAdded(long groupId) {
			// do something
		}
		@Override
		public void onGroupRemoved(long groupId) {
			// do something
		}
		@Override
		public void onMeshAdded(String meshId) {
			// do something
		}
	};
// 注册监听
TuyaCommunitySDK.newHouseInstance(houseId).registerHouseStatusListener(listener);
// ...
// 取消注册监听
TuyaCommunitySDK.newHouseInstance(houseId).unRegisterHouseStatusListener(listener);
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈