更新时间:2024-11-18 11:33:08
本文介绍了家庭信息的查询和管理能力等安卓版接口信息。包括创建家庭、查询家庭列表、家庭信息变化监听、查询家庭信息、修改家庭信息、查询家庭天气信息、设置家庭中设备和群组的顺序、注册或注销家庭信息变更的监听等。
ITuyaHomeManager
提供了添加家庭、查询家庭列表以及监听家庭相关的变更的能力,类为 TuyaHomeSdk.getHomeManagerInstance()
。
HomeBean
数据类型:
属性 | 类型 | 说明 |
---|---|---|
name | String | 家庭名称 |
geoName | String | 家庭地理位置名称 |
lon | Double | 经度 |
lat | Double | 纬度 |
homeId | Long | 家庭 ID |
admin | Boolean | 管理员身份 |
homeStatus | Integer | 加入家庭邀请的状态:
|
role | Integer | 家庭成员权限:
|
rooms | List<RoomBean> | 所有房间列表 |
deviceList | List<DeviceBean> | 所有设备列表 |
groupList | List<GroupBean> | 所有群组 |
meshList | List<BlueMeshBean> | 网关设备 |
sharedDeviceList | List<DeviceBean> | 收到的共享设备 |
sharedGroupList | List<GroupBean> | 收到的共享群组 |
接口说明
void createHome(String name, double lon, double lat, String geoName, List<String> rooms, ITuyaHomeResultCallback callback)
参数说明
参数 | 说明 |
---|---|
name | 家庭名称,最多支持 25 个字符 |
lon | 经度,如果不设置家庭位置信息,请设置为 0 |
lat | 纬度,如果不设置家庭位置信息,请设置为 0 |
geoName | 家庭地理位置名称 |
rooms | 房间列表 |
callback | 查询结果的回调 |
Java 示例
TuyaHomeSdk.getHomeManagerInstance().createHome(name, lon, lat, geoName, rooms, new ITuyaHomeResultCallback() {
@Override
public void onSuccess(HomeBean bean) {
// do something
}
@Override
public void onError(String errorCode, String errorMsg) {
// do something
}
});
接口说明
void queryHomeList(ITuyaGetHomeListCallback callback)
参数说明
参数 | 说明 |
---|---|
callback | 查询结果的回调 |
Java 示例
TuyaHomeSdk.getHomeManagerInstance().queryHomeList(new ITuyaGetHomeListCallback() {
@Override
public void onSuccess(List<HomeBean> homeBeans) {
// do something
}
@Override
public void onError(String errorCode, String error) {
// do something
}
});
家庭信息变化的时机包括家庭增加、邀请、删除、信息变更、分享列表的变更、服务器连接成功的监听等。
接口说明
public interface ITuyaHomeChangeListener {
/**
* 家庭添加成功
* 用于多设备数据同步
*
* @param homeId
*/
void onHomeAdded(long homeId);
/**
* 家庭邀请
* @param homeId 家庭 ID
* @param homeName 家庭名称
*/
void onHomeInvite(long homeId,String homeName);
/**
* 家庭删除成功
* 用于多设备数据同步
*
* @param homeId
*/
void onHomeRemoved(long homeId);
/**
* 家庭信息变更
* 用于多设备数据同步
*
* @param homeId
*/
void onHomeInfoChanged(long homeId);
/**
* 分享设备列表变更
* 用于多设备数据同步
*
* @param sharedDeviceList
*/
void onSharedDeviceList(List<DeviceBean> sharedDeviceList);
/**
*
* 手机连接涂鸦 IoT 云成功,接收到此通知,
* 本地数据与服务端数据可能会不一致或者无法控制设备,
* 您可以调用 Home 下 getHomeDetail 接口重新初始化数据。
*/
void onServerConnectSuccess();
}
接口说明
void registerTuyaHomeChangeListener(ITuyaHomeChangeListener listener)
参数说明
参数 | 说明 |
---|---|
listener | 监听器 |
Java 示例
// 定义监听
ITuyaHomeChangeListener listener = new ITuyaHomeChangeListener() {
@Override
public void onHomeInvite(long homeId, String homeName) {
// do something
}
@Override
public void onHomeRemoved(long homeId) {
// do something
}
@Override
public void onHomeInfoChanged(long homeId) {
// 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
}
@Override
public void onHomeAdded(long homeId) {
// do something
}
};
// 注册监听
TuyaHomeSdk.getHomeManagerInstance().registerTuyaHomeChangeListener(listener);
接口说明
void unRegisterTuyaHomeChangeListener(ITuyaHomeChangeListener listener)
参数说明
参数 | 说明 |
---|---|
listener | 监听器 |
Java 示例
// 定义监听
ITuyaHomeChangeListener listener = new ITuyaHomeChangeListener() {
@Override
public void onHomeInvite(long homeId, String homeName) {
// do something
}
@Override
public void onHomeRemoved(long homeId) {
// do something
}
@Override
public void onHomeInfoChanged(long homeId) {
// 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
}
@Override
public void onHomeAdded(long homeId) {
// do something
}
};
// 注册监听
TuyaHomeSdk.getHomeManagerInstance().registerTuyaHomeChangeListener(listener);
// ...
// 取消注册监听
TuyaHomeSdk.getHomeManagerInstance().unRegisterTuyaHomeChangeListener(listener);
接口说明
void onServerConnectSuccess()
Java 示例
// 定义监听
ITuyaHomeChangeListener listener = new ITuyaHomeChangeListener() {
@Override
public void onHomeInvite(long homeId, String homeName) {
// do something
}
@Override
public void onHomeRemoved(long homeId) {
// do something
}
@Override
public void onHomeInfoChanged(long homeId) {
// 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
}
@Override
public void onHomeAdded(long homeId) {
// do something
}
};
// 注册监听
TuyaHomeSdk.getHomeManagerInstance().registerTuyaHomeChangeListener(listener);
// ...
// 取消注册监听
TuyaHomeSdk.getHomeManagerInstance().unRegisterTuyaHomeChangeListener(listener);
查询家庭下的所有数据,包括设备、群组、房间等。
接口说明
void getHomeDetail(ITuyaHomeResultCallback callback)
参数说明
参数 | 说明 |
---|---|
callback | 查询结果的回调 |
Java 示例
TuyaHomeSdk.newHomeInstance(10000).getHomeDetail(new ITuyaHomeResultCallback() {
@Override
public void onSuccess(HomeBean bean) {
// do something
}
@Override
public void onError(String errorCode, String errorMsg) {
// do something
}
});
查询家庭下的所有离线数据,包括设备、群组、房间等。
接口说明
void getHomeLocalCache(ITuyaHomeResultCallback callback)
参数说明
参数 | 说明 |
---|---|
callback | 查询结果的回调 |
Java 示例
TuyaHomeSdk.newHomeInstance(10000).getHomeLocalCache(new ITuyaHomeResultCallback() {
@Override
public void onSuccess(HomeBean bean) {
// do something
}
@Override
public void onError(String errorCode, String errorMsg) {
//sdk cache error do not deal
}
});
ITuyaHomeDataManager
提供了缓存数据的访问能力,接口为 TuyaHomeSdk.getDataInstance()
。
查询家庭缓存数据前,您应该调用家庭的初始化接口 TuyaHomeSdk.newHomeInstance("homeId").getHomeDetail()
或者 TuyaHomeSdk.newHomeInstance("homeId").getHomeLocalCache()
,然后 TuyaHomeSdk.getDataInstance()
接口才会有缓存数据。
接口说明
void updateHome(String name, double lon, double lat, String geoName, List<String> rooms, IResultCallback callback)
参数说明
参数 | 说明 |
---|---|
name | 家庭名称,最多支持 25 个字符 |
lon | 当前家庭的经度 |
lat | 当前家庭的纬度 |
geoName | 地理位置的地址 |
rooms | 房间信息 |
callback | 查询结果的回调 |
Java 示例
TuyaHomeSdk.newHomeInstance(10000).updateHome(name, lon, lat, geoName, rooms, new IResultCallback() {
@Override
public void onError(String code, String error) {
// do something
}
@Override
public void onSuccess() {
// do something
}
});
接口说明
void updateHome(String name, double lon, double lat, String geoName, IResultCallback callback)
参数说明
参数 | 说明 |
---|---|
name | 家庭名称 |
lon | 当前家庭的经度 |
lat | 当前家庭的纬度 |
geoName | 地理位置的地址 |
callback | 查询结果的回调 |
Java 示例
TuyaHomeSdk.newHomeInstance(10000).updateHome(name, lon, lat, geoName, new IResultCallback() {
@Override
public void onSuccess() {
// do something
}
@Override
public void onError(String code, String error) {
// do something
}
});
接口说明
查询家庭所在城市的简要天气参数。包括天气状况(晴、多云、雨等)和天气图片信息。
void getHomeWeatherSketch(double lon,double lat,IIGetHomeWetherSketchCallBack callback);
参数说明
参数 | 说明 |
---|---|
lon | 经度 |
lat | 纬度 |
callback | 查询结果的回调 |
WeatherBean
说明
参数 | 说明 |
---|---|
condition | 天气情况、例如晴、阴、雨等 |
temp | 温度 |
iconUrl | 天气图标 |
inIconUrl | 天气详情图标 |
Java 示例
TuyaHomeSdk.newHomeInstance(mHomeId).getHomeWeatherSketch(120.075652,30.306265
new IIGetHomeWetherSketchCallBack() {
@Override
public void onSuccess(WeatherBean result) {
}
@Override
public void onFailure(String errorCode, String errorMsg) {
}
});
接口说明
void getHomeWeatherDetail(int limit, Map<String,Object> unit, IGetHomeWetherCallBack callback);
参数说明
参数 | 说明 |
---|---|
limit | 查询的数量 |
unit | 单位,详细见下表说明 |
callback | 查询结果的回调 |
unit
说明
unit 键 | unit 说明 | unit 值 |
---|---|---|
tempUnit | 温度单位 |
|
pressureUnit | 气压单位 |
|
windspeedUnit | 风速单位 |
|
例如,查询摄氏度时,可以将 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
TuyaHomeSdk.newHomeInstance(mHomeId).getHomeWeatherDetail(10, units, new IGetHomeWetherCallBack() {
@Override
public void onSuccess(ArrayList<DashBoardBean> result) {
}
@Override
public void onFailure(String errorCode, String errorMsg) {
}
});
接口说明
void dismissHome(IResultCallback callback)
参数说明
参数 | 说明 |
---|---|
callback | 查询结果的回调 |
Java 示例
TuyaHomeSdk.newHomeInstance(10000).dismissHome(new IResultCallback() {
@Override
public void onSuccess() {
// do something
}
@Override
public void onError(String code, String error) {
// do something
}
});
接口说明
void sortDevInHome(String homeId, List<DeviceAndGroupInHomeBean> list, IResultCallback callback)
参数说明
参数 | 说明 |
---|---|
homeId | 家庭 ID |
list | 房间或者群组列表。元素 DeviceAndGroupInHomeBean 包含两个字段:
|
callback | 查询结果的回调 |
BizParentTypeEnum
对象的枚举值:
Java 示例
List<DeviceAndGroupInHomeBean> list = new ArrayList<>();
List<DeviceBean> deviceList = homeBean.getDeviceList();
List<GroupBean> groupList = homeBean.getGroupList();
for (GroupBean bean : groupList) {
DeviceAndGroupInHomeBean deviceInRoomBean = new DeviceAndGroupInHomeBean();
deviceInRoomBean.setBizId(bean.getDevId());
deviceInRoomBean.setBizType(BizParentTypeEnum.GROUP.getType());
list.add(deviceInRoomBean);
}
for (DeviceBean bean : deviceList) {
DeviceAndGroupInHomeBean deviceInRoomBean = new DeviceAndGroupInHomeBean();
deviceInRoomBean.setBizId(bean.getDevId());
deviceInRoomBean.setBizType(BizParentTypeEnum.DEVICE.getType());
list.add();
}
TuyaHomeSdk.newHomeInstance(10000).sortDevInHome(homeId, list, new IResultCallback() {
@Override
public void onSuccess() {
// do something
}
@Override
public void onError(String code, String error) {
// do something
}
});
// @param allDeviceBeans Contains all devices and groups in current home.
Collections.sort(allDeviceBeans, new Comparator<DeviceBean>() {
@Override
public int compare(DeviceBean o1, DeviceBean o2) {
return o1.getHomeDisplayOrder() - o2.getHomeDisplayOrder();
}
});
接口说明
void unRegisterHomeStatusListener(ITuyaHomeStatusListener listener)
参数说明
参数 | 说明 |
---|---|
listener | 监听器 |
Java 示例
// 定义监听
ITuyaHomeStatusListener listener = new ITuyaHomeStatusListener() {
@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
}
};
// 注册监听
TuyaHomeSdk.newHomeInstance(10000).registerHomeStatusListener(listener);
// ...
// 取消注册监听
TuyaHomeSdk.newHomeInstance(10000).unRegisterHomeStatusListener(listener);
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈