更新时间: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);
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈