更新时间:2024-04-01 06:08:16下载pdf
涂鸦 智能场景 UI 业务包 安卓版的业务功能包括 智能场景 模块的 添加智能 和 编辑智能 的业务逻辑和 UI 界面。
智能场景分为 一键执行场景 和 自动化场景,分别简称为 场景 和 自动化。
涂鸦支持用户根据实际生活场景,通过设置气象或设备条件,当条件满足时,让一个或多个设备执行相应的任务。
在 Android Studio 中建立您的工程,接入智能生活 SDK 并完成业务包 框架接入。
若您的工程需要使用智能场景 UI 业务包,则需要在主工程的资源目录 res/values/values.xml
中,添加如下配置:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="is_scene_support">true</bool>
</resources>
若您对场景数据多终端在线实时同步有强烈的诉求,建议您在登录态后使用场景业务前手动执行一次如下代码(应用存活周期内只需调用一次):
SceneHomePipeLine().run()
dependencies {
api enforcedPlatform("com.thingclips.smart:thingsmart-BizBundlesBom:${biz_bom_version}")
api ("com.thingclips.smart:thingsmart-bizbundle-scene")
api "com.thingclips.smart:thingsmart:${sdk_version}}"
}
场景业务包实现 IThingSceneBusinessService
以提供服务。
示例代码
// 查询场景业务包服务
IThingSceneBusinessService iThingSceneBusinessService = MicroContext.findServiceByInterface(IThingSceneBusinessService.class.getName());
通过查询家庭 ID 进入场景添加页。
接口说明
public abstract void addSceneBean(Activity activity, long homeId, int requestCode);
5.0.0 版本 SDK 开始,可通过接口 iThingSceneBusinessService.addSceneBean
新增场景,onActivityResult
接收的回参类型是 NormalScene
。
5.0.0 之前版本 SDK 通过 ITuyaSceneBusinessService.addScene
新增场景,onActivityResult
接收的回参类型是 SmartSceneBean
。目前该方式已经废弃不推荐使用,但您仍可以通过 历史接口 进行查阅。
参数说明
参数 | 类型 | 说明 |
---|---|---|
activity | Activity | Activity 对象 |
homeId | long | 家庭 ID,您可以通过 家庭信息管理 相关接口查询 |
requestCode | int | 请求 code,在 onActivityResult 处返回 |
示例代码
if(null != iThingSceneBusinessService && homeId != 0) {
iThingSceneBusinessService.addSceneBean(activity, homeId, requestCode);
}
通过查询场景数据和家庭 ID 进入场景编辑页面。
接口说明
进入编辑场景页。
public abstract void editSceneBean(Activity activity, long homeId, NormalScene sceneBean, int requestCode);
5.0.0 版本 SDK 开始,可通过接口 iThingSceneBusinessService.editSceneBean
编辑场景,onActivityResult
接收的回参类型是 NormalScene
。
5.0.0 之前版本 SDK 通过 iThingSceneBusinessService.editScene
编辑场景,onActivityResult
接收的回参类型是 SmartSceneBean
。目前该方式已经废弃不推荐使用,但您仍可以通过 历史接口 进行查阅。
参数说明
参数 | 类型 | 说明 |
---|---|---|
activity | Activity | Activity 对象 |
homeId | long | 家庭 ID,您可以通过 家庭信息管理 相关接口查询 |
sceneBean | NormalScene | 场景数据对象,您可以通过 智能场景 相关接口查询 |
requestCode | int | 请求 code,在 onActivityResult 处返回 |
示例代码
ThingHomeSdk.getSceneServiceInstance().baseService().getSimpleSceneAll(homeId,
new IResultCallback<List<NormalScene>>() {
@Override
public void onSuccess(List<NormalScene> normalScenes) {
if (!normalScenes.isEmpty()) {
NormalScene sceneBean = normalScenes.get(0);
if (null != iThingSceneBusinessService) {
iThingSceneBusinessService.editSceneBean(SceneActivity.this, homeId, sceneBean, requestCode);
}
}
}
@Override
public void onError(String errorCode, String errorMessage) {
}
});
使用场景条件和生效时间段前,需要用户设置 App 的地理位置。如果没有设置,则无法在选择条件时自动查询城市信息。但是,用户还是可以在城市列表自行选择。
接口说明
public abstract void setAppLocation(double longitude, double latitude);
参数说明
参数 | 说明 |
---|---|
longitude | 经度,由您的 App 自行接入的相关三方地图提供 |
latitude | 纬度,由您的 App 自行接入的相关三方地图提供 |
示例代码
if(null != iThingSceneBusinessService){
iThingSceneBusinessService.setAppLocation(lng, lat);
}
场景条件中的地理位置,如果不需要非中国大陆地区账号,就无需调用。其他国家或地区的账号需要设置地图类,不设置默认则调用查询中国大陆城市接口。
接口说明
public abstract void setMapActivity(Class<? extends Activity> clazz);
参数说明
参数 | 说明 |
---|---|
clazz | 地图 Activity 类对象,可以选择接入 地图服务 UI 业务包 |
示例代码
if(null != iThingSceneBusinessService){
// 下述示例是涂鸦内置的地图包装(接入地图服务 UI 业务包则可使用)。您可以根据自己需求采用三方地图实现
iThingSceneBusinessService.setMapActivity(com.thingclips.smart.map.generalmap.ui.GeneralMapActivity.class);
}
接入地图类之后,您需要将地图选点数据发给 UI 业务包,用来更新条件地理位置信息。
接口说明
public abstract void saveMapData(double longitude, double latitude, String city, String address);
参数说明
参数 | 说明 |
---|---|
longitude | 经度 |
latitude | 纬度 |
city | 城市信息 |
address | 地址信息 |
示例代码
if(null != iThingSceneBusinessService){
iThingSceneBusinessService.saveMapData(lng, lat, city, address);
}
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈