照明灯光场景 UI 业务包

更新时间:2024-11-18 11:33:11下载pdf

灯光场景指的是全屋智能场景下同房间下的所有灯具进行设置的功能。该 UI 业务包具有丰富的色盘样式、多样的场景库支持、能快捷方便地设置家庭灯光场景。

功能介绍

灯光场景 UI 业务包支持的具体能力包括:

  • 创建灯光场景
  • 编辑灯光场景(修改场景图标、场景名称、所有设备的情景修改)
  • 预览单设备的自定义(1路白光、2路白光、3路彩光、1+3路混光、2+3路混光)情景
  • 预览单设备的模式情景、炫彩情景、闪烁情景
  • 预览某个灯光场景
  • 单设备亮度调节
  • 整体亮度调节

业务包集成

因为业务包依赖于智能生活 App SDK,所以进行下面步骤前,您需要先完成 准备工作快速集成

  1. 创建工程。

    在 Android Studio 中建立您的工程,接入涂鸦智能生活 SDK 并完成 业务包架构接入

  2. 配置业务的 build.gradle 文件。

    	dependencies {
    		     implementation 'com.tuya.smart:tuyasmart-bizbundle-light_scene:4.2.0-33'
    	}
    
    
  3. 混淆配置。

    #fresco
    -keep class com.facebook.drawee.backends.pipeline.Fresco
    -keep @com.facebook.common.internal.DoNotStrip class *
    -keepclassmembers class * {
    @com.facebook.common.internal.DoNotStrip *;
    }
    
    #tuya
    -keep class com.tuya.**{*;}
    -dontwarn com.tuya.**
    
  4. (可选)多语言配置。

    目前业务包只支持中英文,但以下字段支持您自定义 value 值。

    • 英文配置:请复制到 res/values/strings.xml 文件中:

      <?xml version="1.0" encoding="utf-8"?>
      <resources>
          <string name="ty_light_scene_add">New Lighting Scenario</string>
          <string name="ty_light_scene_add_area_tip">Choose space to create a lighting Scenario</string>
          <string name="ty_light_lamp_add_area_empty">No Lamps</string>
          <string name="ty_light_scene_add_device_tip">Setting lamps to create a lighting Scenario</string>
          <string name="ty_light_scene_set_name_icon">Choose an icon and name you like</string>
          <string name="ty_light_scene_default_name">New lighting scenario</string>
          <string name="ty_light_scene_edit">Edit lighting scenario</string>
          <string name="ty_light_scene_manage_nav_title"></string>
          <string name="ty_light_scene_manage_delete_tips">Are you sure you want to delete?</string>
          <string name="ty_light_scene_manage_delete_scene_tips_detail">Relevant schedules in this scenario will also be deleted</string>
          <string name="ty_scene_add_lamp_offline_tip">Lamp is offline</string>
          <string name="ty_scene_add_lamp_lack_gateway">Lighting not connected to gateway</string>
          <string name="ty_scene_add_lamp_group_empty_tip">No device in this group</string>
          <string name="ty_light_scene_edit_quit_tip">Are you sure to exit?</string>
          <string name="ty_light_scene_edit_quit_tip_detail">The content will not be saved after exiting</string>
          <string name="ty_light_scene_icon_select">Select Icon</string>
          <string name="ty_light_scene_add_success">Saved</string>
          <string name="ty_light_scene_main_light">Functional lighting</string>
          <string name="ty_light_scene_secondary_light">Ambience lighting</string>
          <string name="ty_light_scene_secondary_light_source">Ambience lighting</string>
      </resources>
      
    • 中文配置:请复制到 res/values-zh/strings.xml 文件中。

      <?xml version="1.0" encoding="utf-8"?>
      <resources>
          <string name="ty_light_scene_add">添加新灯光场景</string>
          <string name="ty_light_scene_add_area_tip">选择一个空间区域创建灯光环境</string>
          <string name="ty_light_lamp_add_area_empty">暂无灯具</string>
          <string name="ty_light_scene_add_device_tip">按照主次调节灯光设置整体效果</string>
          <string name="ty_light_scene_set_name_icon">选择一个自己喜欢的图标和名称</string>
          <string name="ty_light_scene_default_name">新灯光场景</string>
          <string name="ty_light_scene_edit">编辑灯光场景</string>
          <string name="ty_light_scene_manage_nav_title">场景管理</string>
          <string name="ty_light_scene_manage_delete_tips">确定要删除?</string>
          <string name="ty_light_scene_manage_delete_scene_tips_detail">该场景下的相关日程也将会被删除</string>
          <string name="ty_scene_add_lamp_offline_tip">灯具已离线</string>
          <string name="ty_scene_add_lamp_group_empty_tip">该组灯中无设备</string>
          <string name="ty_scene_add_lamp_lack_gateway">灯具未连接网关</string>
          <string name="ty_light_scene_edit_quit_tip">确认退出?</string>
          <string name="ty_light_scene_edit_quit_tip_detail">退出后所填内容将不会保存</string>
          <string name="ty_light_scene_icon_select">选择图标</string>
          <string name="ty_light_scene_add_success">添加成功</string>
          <string name="ty_light_scene_main_light">功能灯光</string>
          <string name="ty_light_scene_secondary_light">氛围灯光</string>
          <string name="ty_light_scene_secondary_light_source">氛围灯光</string>
      </resources>
      

功能说明

TuyaLightSceneBean 数据模型

属性 类型 说明
sceneId String 场景的唯一标识符
code String 场景执行的入参 Code
parentRegionId String 场景的所属的房间标识符
icon String 场景的图标
clickIcon String 场景的单击图标(用于执行时的交互效果)
name String 场景的名称

业务接口

提供服务

场景业务包实现 SceneLightingService 以提供服务。

示例代码

//查询灯光场景业务包服务
SceneLightingService sceneLightingService = MicroContext.findServiceByInterface(SceneLightingService.class.getName());

创建灯光场景

接口说明

进入创建灯光场景页面。

void gotoSceneLightingActivity(Context context, int requestCode);

参数说明

参数 类型 说明
context Context Context 对象
requestCode int 要求 requestCode > 0,当创建成功后,在 onActivityResult() 可接收到该 code

示例代码

SceneLightingService sceneLightingService = MicroContext.findServiceByInterface(SceneLightingService.class.getName());
                if(null != sceneLightingService) {
                    sceneLightingService.gotoSceneLightingActivity(mContext, 100);
                }

编辑灯光场景

接口说明

进入查询灯光场景编辑页面。

editSceneLightingActivity(Context context, TuyaLightSceneBean tuyaLightSceneBean, int requestCode);

参数说明

参数 类型 说明
context Context Context 对象
tuyaLightSceneBean TuyaLightSceneBean 灯光场景 Bean 数据
requestCode int 要求 requestCode > 0,当编辑成功后,在 onActivityResult() 可接收到该code

示例代码

SceneLightingService sceneLightingService = MicroContext.findServiceByInterface(SceneLightingService.class.getName());
        if(null != sceneLightingService) {
            sceneLightingService.editSceneLightingActivity(v.getContext(), tuyaLightSceneBean, 101);
        }

服务接口

类名 说明
TuyaLightSceneSdk 灯光场景 SDK

查询灯光场景列表

接口说明

查询灯光场景列表接口。

void getAllLightSceneList(long gid, ITuyaLightResultCallback<ArrayList<TuyaLightSceneBean>> callback);

参数说明

参数 说明
gid 当前家庭 ID
callback 查询场景列表的回调

示例代码

TuyaLightSceneSdk.getTuyaLightSceneManagerInstance().getAllLightSceneList(homeId, new ITuyaLightResultCallback<ArrayList<TuyaLightSceneBean>>() {
            @Override
            public void onSuccess(ArrayList<TuyaLightSceneBean> tuyaLightSceneBeans) {

            }

            @Override
            public void onFailure(String code, String detail) {

            }
        });

执行灯光场景

接口说明

执行灯光场景。

void executeLightScene(long gid, ITuyaLightResultCallback<Boolean> callback);

参数说明

参数 说明
code 场景执行的入参 Code
gid 当前家庭 ID
callback 场景执行的结果回调

示例代码

TuyaLightSceneSdk.newLightSceneInstance(tuyaLightSceneBean.getCode()).executeLightScene(homeId, new ITuyaLightResultCallback<Boolean> (){
                    @Override
                    public void onSuccess(Boolean aBoolean) {

                    }

                    @Override
                    public void onFailure(String code, String detail) {

                    }
                });