wjc
2022-03-02 a154c3ce81601e3c202d3c5f4d0a8cefc5a7e8ae
Merge remote-tracking branch 'origin/release0123' into wjc
22个文件已添加
41个文件已修改
3872 ■■■■■ 已修改文件
DLL/UMeng/UMCommon.framework/7.3.5_4da14cb265_20210810144036 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DLL/UMeng/UMCommon.framework/Headers/MobClick.h 220 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DLL/UMeng/UMCommon.framework/Headers/UMCommon.h 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DLL/UMeng/UMCommon.framework/Headers/UMConfigure.h 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DLL/UMeng/UMCommon.framework/UMCommon 补丁 | 查看 | 原始文档 | blame | 历史
DLL/UMeng/UMCommon.framework/Versions/A/Headers/MobClick.h 220 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DLL/UMeng/UMCommon.framework/Versions/A/Headers/UMCommon.h 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DLL/UMeng/UMCommon.framework/Versions/A/Headers/UMConfigure.h 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DLL/UMeng/UMCommon.framework/Versions/A/UMCommon 补丁 | 查看 | 原始文档 | blame | 历史
DLL/UMeng/UMCommon.framework/Versions/Current/Headers/MobClick.h 220 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DLL/UMeng/UMCommon.framework/Versions/Current/Headers/UMCommon.h 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DLL/UMeng/UMCommon.framework/Versions/Current/Headers/UMConfigure.h 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DLL/UMeng/UMCommon.framework/Versions/Current/UMCommon 补丁 | 查看 | 原始文档 | blame | 历史
DLL/UMeng/UMDevice.framework/Headers/UMZid.h 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DLL/UMeng/UMDevice.framework/UMDevice 补丁 | 查看 | 原始文档 | blame | 历史
DLL/UMeng/libHDLUMSDK.a 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Language.ini 1147 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/HDL-ON_Android.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Properties/AndroidManifest.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/SplashActivity.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/AppDelegate.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/HDL-ON_iOS.csproj 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Info.plist 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Language.ini 1146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/ViewController.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_APP_Project.sln 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/ApiUtlis.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/R.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/HttpServerRequest.cs 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/HttpUtil.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/IMessageCommon.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Entity/Function/Function.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Entity/Function/SecurityAlarm.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Entity/Integratedbrand/IntegratedBrand.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/HDL_ON.projitems 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/MainPage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI1-Login/LoginPage.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/1-HomePage/HomePage.cs 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/2-Classification/RoomPage.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/AboutOn/AboutOnPage.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/AboutOn/FirmwareUpdateView.cs 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/AboutOn/SupportHomeKitNotesPage.cs 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/SenesorEnvironment/AddQingpingSensorEnvirTipPage.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/SenesorEnvironment/AddSensorEnvironmentPage.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/SenesorMegahealth/AddSenesorMegahealthDirection1Page.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddDevciePage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddAlarmDeploymentPage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddOutputPage.cs 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Electrical/SocketPage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Electrical/SocketPage_InstantaneousValue.cs 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/FoolHeating/FloorHeatingPage.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SiriIntents/SiriIntents.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
SiriIntentsUI/SiriIntentsUI.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UMSdk/ApiDefinition.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UMSdk/Properties/AssemblyInfo.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UMSdk/Structs.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UMSdk/UMSdk.csproj 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DLL/UMeng/UMCommon.framework/7.3.5_4da14cb265_20210810144036
New file
@@ -0,0 +1 @@
7.3.5
DLL/UMeng/UMCommon.framework/Headers/MobClick.h
New file
@@ -0,0 +1,220 @@
//
//  MobClick.h
//  Analytics
//
//  Copyright (C) 2010-2017 Umeng.com . All rights reserved.
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
@interface MobClick : NSObject
#pragma mark basics
///---------------------------------------------------------------------------------------
/// @name  设置
///---------------------------------------------------------------------------------------
#pragma mark event logs
///---------------------------------------------------------------------------------------
/// @name  页面计时
///---------------------------------------------------------------------------------------
/** 手动页面时长统计, 记录某个页面展示的时长.
 @param pageName 统计的页面名称.
 @param seconds 单位为秒,int型.
 @return void.
 */
+ (void)logPageView:(NSString *)pageName seconds:(int)seconds;
/** 自动页面时长统计, 开始记录某个页面展示时长.
 使用方法:必须配对调用beginLogPageView:和endLogPageView:两个函数来完成自动统计,若只调用某一个函数不会生成有效数据。
 在该页面展示时调用beginLogPageView:,当退出该页面时调用endLogPageView:
 @param pageName 统计的页面名称.
 @return void.
 */
+ (void)beginLogPageView:(NSString *)pageName;
/** 自动页面时长统计, 结束记录某个页面展示时长.
 使用方法:必须配对调用beginLogPageView:和endLogPageView:两个函数来完成自动统计,若只调用某一个函数不会生成有效数据。
 在该页面展示时调用beginLogPageView:,当退出该页面时调用endLogPageView:
 @param pageName 统计的页面名称.
 @return void.
 */
+ (void)endLogPageView:(NSString *)pageName;
///---------------------------------------------------------------------------------------
/// @name  事件统计
///---------------------------------------------------------------------------------------
/** 自定义事件,数量统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID
 @param  eventId 网站上注册的事件Id.
 @param  label 分类标签。不同的标签会分别进行统计,方便同一事件的不同标签的对比,为nil或空字符串时后台会生成和eventId同名的标签.
 @param  accumulation 累加值。为减少网络交互,可以自行对某一事件ID的某一分类标签进行累加,再传入次数作为参数。
 @return void.
 */
+ (void)event:(NSString *)eventId; //等同于 event:eventId label:eventId;
/** 自定义事件,数量统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID
 */
+ (void)event:(NSString *)eventId label:(NSString *)label; // label为nil或@""时,等同于 event:eventId label:eventId;
/** 自定义事件,数量统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID
 */
+ (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes;
+ (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes counter:(int)number;
/** 自定义事件,时长统计.
    使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
    beginEvent,endEvent要配对使用,也可以自己计时后通过durations参数传递进来
 @param  eventId 网站上注册的事件Id.
 @param  label 分类标签。不同的标签会分别进行统计,方便同一事件的不同标签的对比,为nil或空字符串时后台会生成和eventId同名的标签.
 @param  primarykey 这个参数用于和event_id一起标示一个唯一事件,并不会被统计;对于同一个事件在beginEvent和endEvent 中要传递相同的eventId 和 primarykey
 @param millisecond 自己计时需要的话需要传毫秒进来
 @return void.
 @warning 每个event的attributes不能超过100个
    eventId、attributes中key和value都不能使用空格和特殊字符,必须是NSString,且长度不能超过255个字符(否则将截取前255个字符)
    id, ts, du是保留字段,不能作为eventId及key的名称
*/
+ (void)beginEvent:(NSString *)eventId;
/** 自定义事件,时长统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
 */
+ (void)endEvent:(NSString *)eventId;
/** 自定义事件,时长统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
 */
+ (void)beginEvent:(NSString *)eventId label:(NSString *)label;
/** 自定义事件,时长统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
 */
+ (void)endEvent:(NSString *)eventId label:(NSString *)label;
/** 自定义事件,时长统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
 */
+ (void)beginEvent:(NSString *)eventId primarykey :(NSString *)keyName attributes:(NSDictionary *)attributes;
/** 自定义事件,时长统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
 */
+ (void)endEvent:(NSString *)eventId primarykey:(NSString *)keyName;
/** 自定义事件,时长统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
 */
+ (void)event:(NSString *)eventId durations:(int)millisecond;
/** 自定义事件,时长统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
 */
+ (void)event:(NSString *)eventId label:(NSString *)label durations:(int)millisecond;
/** 自定义事件,时长统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
 */
+ (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes durations:(int)millisecond;
#pragma mark - user methods
/** active user sign-in.
 使用sign-In函数后,如果结束该PUID的统计,需要调用sign-Off函数
 @param puid : user's ID
 @param provider : 不能以下划线"_"开头,使用大写字母和数字标识; 如果是上市公司,建议使用股票代码。
 @return void.
 */
+ (void)profileSignInWithPUID:(NSString *)puid;
+ (void)profileSignInWithPUID:(NSString *)puid provider:(NSString *)provider;
/** active user sign-off.
 停止sign-in PUID的统计
 @return void.
 */
+ (void)profileSignOff;
///---------------------------------------------------------------------------------------
/// @name 地理位置设置
/// 需要链接 CoreLocation.framework 并且 #import <CoreLocation/CoreLocation.h>
///---------------------------------------------------------------------------------------
/** 设置经纬度信息
 @param latitude 纬度.
 @param longitude 经度.
 @return void
 */
+ (void)setLatitude:(double)latitude longitude:(double)longitude;
///---------------------------------------------------------------------------------------
/// @name Utility函数
///---------------------------------------------------------------------------------------
/** 判断设备是否越狱,依据是否存在apt和Cydia.app
 */
+ (BOOL)isJailbroken;
/** 判断App是否被破解
 */
+ (BOOL)isPirated;
/** 设置 app secret
 @param secret string
 @return void.
 */
+ (void)setSecret:(NSString *)secret;
/**
 * 设置预置事件属性 键值对 会覆盖同名的key
 */
+(void) registerPreProperties:(NSDictionary *)property;
/**
 *
 * 删除指定预置事件属性
 @param key
 */
+(void) unregisterPreProperty:(NSString *)propertyName;
/**
 * 获取预置事件所有属性;如果不存在,则返回空。
 */
+(NSDictionary *)getPreProperties;
/**
 *清空所有预置事件属性。
 */
+(void)clearPreProperties;
/**
 * 设置关注事件是否首次触发,只关注eventList前五个合法eventID.只要已经保存五个,此接口无效
 */
+(void)setFirstLaunchEvent:(NSArray *)eventList;
/** 设置是否自动采集页面, 默认NO(不自动采集).
 @param value 设置为YES, umeng SDK 会将自动采集页面信息
 */
+ (void)setAutoPageEnabled:(BOOL)value;
/**
 *集成测试。
 */
+ (BOOL)handleUrl:(NSURL *)url;
@end
DLL/UMeng/UMCommon.framework/Headers/UMCommon.h
New file
@@ -0,0 +1,20 @@
//
//  UMCommon.h
//  UMCommon
//
//  Created by San Zhang on 11/2/16.
//  Copyright © 2016 UMeng. All rights reserved.
//
#import <UIKit/UIKit.h>
//! Project version number for UMCommon.
FOUNDATION_EXPORT double UMCommonVersionNumber;
//! Project version string for UMCommon.
FOUNDATION_EXPORT const unsigned char UMCommonVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <UMCommon/PublicHeader.h>
#import <UMCommon/UMConfigure.h>
DLL/UMeng/UMCommon.framework/Headers/UMConfigure.h
New file
@@ -0,0 +1,45 @@
//
//  UMConfigure.h
//  UMCommon
//
//  Created by San Zhang on 9/6/16.
//  Copyright © 2016 UMeng. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface UMConfigure : NSObject
/** 初始化友盟所有组件产品
 @param appKey 开发者在友盟官网申请的appkey.
 @param channel 渠道标识,可设置nil表示"App Store".
 */
+ (void)initWithAppkey:(NSString *)appKey channel:(NSString *)channel;
/** 设置是否在console输出sdk的log信息.
 @param bFlag 默认NO(不输出log); 设置为YES, 输出可供调试参考的log信息. 发布产品时必须设置为NO.
 */
+ (void)setLogEnabled:(BOOL)bFlag;
/** 设置是否对日志信息进行加密, 默认NO(不加密).
 @param value 设置为YES, umeng SDK 会将日志信息做加密处理
 */
+ (void)setEncryptEnabled:(BOOL)value;
+ (NSString *)umidString;
/**
 集成测试需要device_id
 */
+ (NSString*)deviceIDForIntegration;
/** 是否开启统计,默认为YES(开启状态)
 @param value 设置为NO,可关闭友盟统计功能.
 @return void.
*/
+ (void)setAnalyticsEnabled:(BOOL)value;
//获取zid
+ (NSString *)getUmengZID;
@end
DLL/UMeng/UMCommon.framework/UMCommon
Binary files differ
DLL/UMeng/UMCommon.framework/Versions/A/Headers/MobClick.h
New file
@@ -0,0 +1,220 @@
//
//  MobClick.h
//  Analytics
//
//  Copyright (C) 2010-2017 Umeng.com . All rights reserved.
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
@interface MobClick : NSObject
#pragma mark basics
///---------------------------------------------------------------------------------------
/// @name  设置
///---------------------------------------------------------------------------------------
#pragma mark event logs
///---------------------------------------------------------------------------------------
/// @name  页面计时
///---------------------------------------------------------------------------------------
/** 手动页面时长统计, 记录某个页面展示的时长.
 @param pageName 统计的页面名称.
 @param seconds 单位为秒,int型.
 @return void.
 */
+ (void)logPageView:(NSString *)pageName seconds:(int)seconds;
/** 自动页面时长统计, 开始记录某个页面展示时长.
 使用方法:必须配对调用beginLogPageView:和endLogPageView:两个函数来完成自动统计,若只调用某一个函数不会生成有效数据。
 在该页面展示时调用beginLogPageView:,当退出该页面时调用endLogPageView:
 @param pageName 统计的页面名称.
 @return void.
 */
+ (void)beginLogPageView:(NSString *)pageName;
/** 自动页面时长统计, 结束记录某个页面展示时长.
 使用方法:必须配对调用beginLogPageView:和endLogPageView:两个函数来完成自动统计,若只调用某一个函数不会生成有效数据。
 在该页面展示时调用beginLogPageView:,当退出该页面时调用endLogPageView:
 @param pageName 统计的页面名称.
 @return void.
 */
+ (void)endLogPageView:(NSString *)pageName;
///---------------------------------------------------------------------------------------
/// @name  事件统计
///---------------------------------------------------------------------------------------
/** 自定义事件,数量统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID
 @param  eventId 网站上注册的事件Id.
 @param  label 分类标签。不同的标签会分别进行统计,方便同一事件的不同标签的对比,为nil或空字符串时后台会生成和eventId同名的标签.
 @param  accumulation 累加值。为减少网络交互,可以自行对某一事件ID的某一分类标签进行累加,再传入次数作为参数。
 @return void.
 */
+ (void)event:(NSString *)eventId; //等同于 event:eventId label:eventId;
/** 自定义事件,数量统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID
 */
+ (void)event:(NSString *)eventId label:(NSString *)label; // label为nil或@""时,等同于 event:eventId label:eventId;
/** 自定义事件,数量统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID
 */
+ (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes;
+ (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes counter:(int)number;
/** 自定义事件,时长统计.
    使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
    beginEvent,endEvent要配对使用,也可以自己计时后通过durations参数传递进来
 @param  eventId 网站上注册的事件Id.
 @param  label 分类标签。不同的标签会分别进行统计,方便同一事件的不同标签的对比,为nil或空字符串时后台会生成和eventId同名的标签.
 @param  primarykey 这个参数用于和event_id一起标示一个唯一事件,并不会被统计;对于同一个事件在beginEvent和endEvent 中要传递相同的eventId 和 primarykey
 @param millisecond 自己计时需要的话需要传毫秒进来
 @return void.
 @warning 每个event的attributes不能超过100个
    eventId、attributes中key和value都不能使用空格和特殊字符,必须是NSString,且长度不能超过255个字符(否则将截取前255个字符)
    id, ts, du是保留字段,不能作为eventId及key的名称
*/
+ (void)beginEvent:(NSString *)eventId;
/** 自定义事件,时长统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
 */
+ (void)endEvent:(NSString *)eventId;
/** 自定义事件,时长统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
 */
+ (void)beginEvent:(NSString *)eventId label:(NSString *)label;
/** 自定义事件,时长统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
 */
+ (void)endEvent:(NSString *)eventId label:(NSString *)label;
/** 自定义事件,时长统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
 */
+ (void)beginEvent:(NSString *)eventId primarykey :(NSString *)keyName attributes:(NSDictionary *)attributes;
/** 自定义事件,时长统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
 */
+ (void)endEvent:(NSString *)eventId primarykey:(NSString *)keyName;
/** 自定义事件,时长统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
 */
+ (void)event:(NSString *)eventId durations:(int)millisecond;
/** 自定义事件,时长统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
 */
+ (void)event:(NSString *)eventId label:(NSString *)label durations:(int)millisecond;
/** 自定义事件,时长统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
 */
+ (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes durations:(int)millisecond;
#pragma mark - user methods
/** active user sign-in.
 使用sign-In函数后,如果结束该PUID的统计,需要调用sign-Off函数
 @param puid : user's ID
 @param provider : 不能以下划线"_"开头,使用大写字母和数字标识; 如果是上市公司,建议使用股票代码。
 @return void.
 */
+ (void)profileSignInWithPUID:(NSString *)puid;
+ (void)profileSignInWithPUID:(NSString *)puid provider:(NSString *)provider;
/** active user sign-off.
 停止sign-in PUID的统计
 @return void.
 */
+ (void)profileSignOff;
///---------------------------------------------------------------------------------------
/// @name 地理位置设置
/// 需要链接 CoreLocation.framework 并且 #import <CoreLocation/CoreLocation.h>
///---------------------------------------------------------------------------------------
/** 设置经纬度信息
 @param latitude 纬度.
 @param longitude 经度.
 @return void
 */
+ (void)setLatitude:(double)latitude longitude:(double)longitude;
///---------------------------------------------------------------------------------------
/// @name Utility函数
///---------------------------------------------------------------------------------------
/** 判断设备是否越狱,依据是否存在apt和Cydia.app
 */
+ (BOOL)isJailbroken;
/** 判断App是否被破解
 */
+ (BOOL)isPirated;
/** 设置 app secret
 @param secret string
 @return void.
 */
+ (void)setSecret:(NSString *)secret;
/**
 * 设置预置事件属性 键值对 会覆盖同名的key
 */
+(void) registerPreProperties:(NSDictionary *)property;
/**
 *
 * 删除指定预置事件属性
 @param key
 */
+(void) unregisterPreProperty:(NSString *)propertyName;
/**
 * 获取预置事件所有属性;如果不存在,则返回空。
 */
+(NSDictionary *)getPreProperties;
/**
 *清空所有预置事件属性。
 */
+(void)clearPreProperties;
/**
 * 设置关注事件是否首次触发,只关注eventList前五个合法eventID.只要已经保存五个,此接口无效
 */
+(void)setFirstLaunchEvent:(NSArray *)eventList;
/** 设置是否自动采集页面, 默认NO(不自动采集).
 @param value 设置为YES, umeng SDK 会将自动采集页面信息
 */
+ (void)setAutoPageEnabled:(BOOL)value;
/**
 *集成测试。
 */
+ (BOOL)handleUrl:(NSURL *)url;
@end
DLL/UMeng/UMCommon.framework/Versions/A/Headers/UMCommon.h
New file
@@ -0,0 +1,19 @@
//
//  UMCommon.h
//  UMCommon
//
//  Created by San Zhang on 11/2/16.
//  Copyright © 2016 UMeng. All rights reserved.
//
#import <UIKit/UIKit.h>
//! Project version number for UMCommon.
FOUNDATION_EXPORT double UMCommonVersionNumber;
//! Project version string for UMCommon.
FOUNDATION_EXPORT const unsigned char UMCommonVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <UMCommon/PublicHeader.h>
#import <UMCommon/UMConfigure.h>
DLL/UMeng/UMCommon.framework/Versions/A/Headers/UMConfigure.h
New file
@@ -0,0 +1,45 @@
//
//  UMConfigure.h
//  UMCommon
//
//  Created by San Zhang on 9/6/16.
//  Copyright © 2016 UMeng. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface UMConfigure : NSObject
/** 初始化友盟所有组件产品
 @param appKey 开发者在友盟官网申请的appkey.
 @param channel 渠道标识,可设置nil表示"App Store".
 */
+ (void)initWithAppkey:(NSString *)appKey channel:(NSString *)channel;
/** 设置是否在console输出sdk的log信息.
 @param bFlag 默认NO(不输出log); 设置为YES, 输出可供调试参考的log信息. 发布产品时必须设置为NO.
 */
+ (void)setLogEnabled:(BOOL)bFlag;
/** 设置是否对日志信息进行加密, 默认NO(不加密).
 @param value 设置为YES, umeng SDK 会将日志信息做加密处理
 */
+ (void)setEncryptEnabled:(BOOL)value;
+ (NSString *)umidString;
/**
 集成测试需要device_id
 */
+ (NSString*)deviceIDForIntegration;
/** 是否开启统计,默认为YES(开启状态)
 @param value 设置为NO,可关闭友盟统计功能.
 @return void.
*/
+ (void)setAnalyticsEnabled:(BOOL)value;
//获取zid
+ (NSString *)getUmengZID;
@end
DLL/UMeng/UMCommon.framework/Versions/A/UMCommon
Binary files differ
DLL/UMeng/UMCommon.framework/Versions/Current/Headers/MobClick.h
New file
@@ -0,0 +1,220 @@
//
//  MobClick.h
//  Analytics
//
//  Copyright (C) 2010-2017 Umeng.com . All rights reserved.
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
@interface MobClick : NSObject
#pragma mark basics
///---------------------------------------------------------------------------------------
/// @name  设置
///---------------------------------------------------------------------------------------
#pragma mark event logs
///---------------------------------------------------------------------------------------
/// @name  页面计时
///---------------------------------------------------------------------------------------
/** 手动页面时长统计, 记录某个页面展示的时长.
 @param pageName 统计的页面名称.
 @param seconds 单位为秒,int型.
 @return void.
 */
+ (void)logPageView:(NSString *)pageName seconds:(int)seconds;
/** 自动页面时长统计, 开始记录某个页面展示时长.
 使用方法:必须配对调用beginLogPageView:和endLogPageView:两个函数来完成自动统计,若只调用某一个函数不会生成有效数据。
 在该页面展示时调用beginLogPageView:,当退出该页面时调用endLogPageView:
 @param pageName 统计的页面名称.
 @return void.
 */
+ (void)beginLogPageView:(NSString *)pageName;
/** 自动页面时长统计, 结束记录某个页面展示时长.
 使用方法:必须配对调用beginLogPageView:和endLogPageView:两个函数来完成自动统计,若只调用某一个函数不会生成有效数据。
 在该页面展示时调用beginLogPageView:,当退出该页面时调用endLogPageView:
 @param pageName 统计的页面名称.
 @return void.
 */
+ (void)endLogPageView:(NSString *)pageName;
///---------------------------------------------------------------------------------------
/// @name  事件统计
///---------------------------------------------------------------------------------------
/** 自定义事件,数量统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID
 @param  eventId 网站上注册的事件Id.
 @param  label 分类标签。不同的标签会分别进行统计,方便同一事件的不同标签的对比,为nil或空字符串时后台会生成和eventId同名的标签.
 @param  accumulation 累加值。为减少网络交互,可以自行对某一事件ID的某一分类标签进行累加,再传入次数作为参数。
 @return void.
 */
+ (void)event:(NSString *)eventId; //等同于 event:eventId label:eventId;
/** 自定义事件,数量统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID
 */
+ (void)event:(NSString *)eventId label:(NSString *)label; // label为nil或@""时,等同于 event:eventId label:eventId;
/** 自定义事件,数量统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID
 */
+ (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes;
+ (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes counter:(int)number;
/** 自定义事件,时长统计.
    使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
    beginEvent,endEvent要配对使用,也可以自己计时后通过durations参数传递进来
 @param  eventId 网站上注册的事件Id.
 @param  label 分类标签。不同的标签会分别进行统计,方便同一事件的不同标签的对比,为nil或空字符串时后台会生成和eventId同名的标签.
 @param  primarykey 这个参数用于和event_id一起标示一个唯一事件,并不会被统计;对于同一个事件在beginEvent和endEvent 中要传递相同的eventId 和 primarykey
 @param millisecond 自己计时需要的话需要传毫秒进来
 @return void.
 @warning 每个event的attributes不能超过100个
    eventId、attributes中key和value都不能使用空格和特殊字符,必须是NSString,且长度不能超过255个字符(否则将截取前255个字符)
    id, ts, du是保留字段,不能作为eventId及key的名称
*/
+ (void)beginEvent:(NSString *)eventId;
/** 自定义事件,时长统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
 */
+ (void)endEvent:(NSString *)eventId;
/** 自定义事件,时长统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
 */
+ (void)beginEvent:(NSString *)eventId label:(NSString *)label;
/** 自定义事件,时长统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
 */
+ (void)endEvent:(NSString *)eventId label:(NSString *)label;
/** 自定义事件,时长统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
 */
+ (void)beginEvent:(NSString *)eventId primarykey :(NSString *)keyName attributes:(NSDictionary *)attributes;
/** 自定义事件,时长统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
 */
+ (void)endEvent:(NSString *)eventId primarykey:(NSString *)keyName;
/** 自定义事件,时长统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
 */
+ (void)event:(NSString *)eventId durations:(int)millisecond;
/** 自定义事件,时长统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
 */
+ (void)event:(NSString *)eventId label:(NSString *)label durations:(int)millisecond;
/** 自定义事件,时长统计.
 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
 */
+ (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes durations:(int)millisecond;
#pragma mark - user methods
/** active user sign-in.
 使用sign-In函数后,如果结束该PUID的统计,需要调用sign-Off函数
 @param puid : user's ID
 @param provider : 不能以下划线"_"开头,使用大写字母和数字标识; 如果是上市公司,建议使用股票代码。
 @return void.
 */
+ (void)profileSignInWithPUID:(NSString *)puid;
+ (void)profileSignInWithPUID:(NSString *)puid provider:(NSString *)provider;
/** active user sign-off.
 停止sign-in PUID的统计
 @return void.
 */
+ (void)profileSignOff;
///---------------------------------------------------------------------------------------
/// @name 地理位置设置
/// 需要链接 CoreLocation.framework 并且 #import <CoreLocation/CoreLocation.h>
///---------------------------------------------------------------------------------------
/** 设置经纬度信息
 @param latitude 纬度.
 @param longitude 经度.
 @return void
 */
+ (void)setLatitude:(double)latitude longitude:(double)longitude;
///---------------------------------------------------------------------------------------
/// @name Utility函数
///---------------------------------------------------------------------------------------
/** 判断设备是否越狱,依据是否存在apt和Cydia.app
 */
+ (BOOL)isJailbroken;
/** 判断App是否被破解
 */
+ (BOOL)isPirated;
/** 设置 app secret
 @param secret string
 @return void.
 */
+ (void)setSecret:(NSString *)secret;
/**
 * 设置预置事件属性 键值对 会覆盖同名的key
 */
+(void) registerPreProperties:(NSDictionary *)property;
/**
 *
 * 删除指定预置事件属性
 @param key
 */
+(void) unregisterPreProperty:(NSString *)propertyName;
/**
 * 获取预置事件所有属性;如果不存在,则返回空。
 */
+(NSDictionary *)getPreProperties;
/**
 *清空所有预置事件属性。
 */
+(void)clearPreProperties;
/**
 * 设置关注事件是否首次触发,只关注eventList前五个合法eventID.只要已经保存五个,此接口无效
 */
+(void)setFirstLaunchEvent:(NSArray *)eventList;
/** 设置是否自动采集页面, 默认NO(不自动采集).
 @param value 设置为YES, umeng SDK 会将自动采集页面信息
 */
+ (void)setAutoPageEnabled:(BOOL)value;
/**
 *集成测试。
 */
+ (BOOL)handleUrl:(NSURL *)url;
@end
DLL/UMeng/UMCommon.framework/Versions/Current/Headers/UMCommon.h
New file
@@ -0,0 +1,19 @@
//
//  UMCommon.h
//  UMCommon
//
//  Created by San Zhang on 11/2/16.
//  Copyright © 2016 UMeng. All rights reserved.
//
#import <UIKit/UIKit.h>
//! Project version number for UMCommon.
FOUNDATION_EXPORT double UMCommonVersionNumber;
//! Project version string for UMCommon.
FOUNDATION_EXPORT const unsigned char UMCommonVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <UMCommon/PublicHeader.h>
#import <UMCommon/UMConfigure.h>
DLL/UMeng/UMCommon.framework/Versions/Current/Headers/UMConfigure.h
New file
@@ -0,0 +1,45 @@
//
//  UMConfigure.h
//  UMCommon
//
//  Created by San Zhang on 9/6/16.
//  Copyright © 2016 UMeng. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface UMConfigure : NSObject
/** 初始化友盟所有组件产品
 @param appKey 开发者在友盟官网申请的appkey.
 @param channel 渠道标识,可设置nil表示"App Store".
 */
+ (void)initWithAppkey:(NSString *)appKey channel:(NSString *)channel;
/** 设置是否在console输出sdk的log信息.
 @param bFlag 默认NO(不输出log); 设置为YES, 输出可供调试参考的log信息. 发布产品时必须设置为NO.
 */
+ (void)setLogEnabled:(BOOL)bFlag;
/** 设置是否对日志信息进行加密, 默认NO(不加密).
 @param value 设置为YES, umeng SDK 会将日志信息做加密处理
 */
+ (void)setEncryptEnabled:(BOOL)value;
+ (NSString *)umidString;
/**
 集成测试需要device_id
 */
+ (NSString*)deviceIDForIntegration;
/** 是否开启统计,默认为YES(开启状态)
 @param value 设置为NO,可关闭友盟统计功能.
 @return void.
*/
+ (void)setAnalyticsEnabled:(BOOL)value;
//获取zid
+ (NSString *)getUmengZID;
@end
DLL/UMeng/UMCommon.framework/Versions/Current/UMCommon
Binary files differ
DLL/UMeng/UMDevice.framework/Headers/UMZid.h
New file
@@ -0,0 +1,29 @@
//
//  UMZid.h
//  UMZid
//
//  Created by UMZid on 8/29/20.
//  Copyright © 2020 UMZid. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface UMZid : NSObject
/// SDK初始化,异步请求uToken
/// @param appkey     appkey
/// @param completion 请求uToken的回调,uToken为返回值,如果失败,uToken为空字符串@“”
+ (void)initWithAppKey:(NSString *)appkey completion:(void (^)(NSString *uToken))completion;
/// 同步获得uToken,失败返回空字符串@“”
+ (NSString *)getZID;
/// 获取SDK版本号
+ (NSString *)getSDKVersion;
/// 获得resetToken
+ (NSString *)getResetToken;
/// 获得at
+ (NSString *)getATStr;
@end
DLL/UMeng/UMDevice.framework/UMDevice
Binary files differ
DLL/UMeng/libHDLUMSDK.a
Binary files differ
HDL-ON_Android/Assets/Language.ini
@@ -128,7 +128,7 @@
127=Mode
128=Fan speed
129=Are you sure to shut off all functions in the room?
130= already opened
130=already opened
131=Already added to favorites
132=Congratulations! Successful registration.
133=Automatic log-in soon…
@@ -512,6 +512,8 @@
524=Bypass
525=Enable
526=Cancel account
527=Homekit support notes
528=Firmware update
 
1000=Room Humidity
1001=V-chip
@@ -594,7 +596,6 @@
1078=Residual filter screen
1079=Energy
1080=Ventilated
;别看下面都一样,都是UI特殊要求整的,再加上考虑英文长度
1081=1st Gear
1082=2nd Gear
1083=3rd Gear
@@ -1042,9 +1043,9 @@
9011=Enter new password again
9012=Agree
9013=Service Agreement
9014=User information protection regulations
9014=Privacy Agreement
9015=and
9016=Please read and agree on User Service Agreement and User information protection regulations.
9016=Please read and agree on User Service Agreement and Privacy Agreement.
9017=Are you sure to log out?
9018=Please select country/region.
9019=Update now
@@ -1647,6 +1648,8 @@
524=停用
525=启用
526=注销账号
527=支持HomeKit说明
528=固件更新
 
1000=室内湿度
1001=童锁
@@ -1748,7 +1751,6 @@
1092=生效时间
1092=Effective time
1093=失效时间
1093=
1094=选择时间
1095=选择日期
1096=生成
@@ -2251,3 +2253,1138 @@
10031=设备不能为空
10032=用户没有设备的权限
10033=设备不存在
[russian]
1=Логин
2=Номер телефона
3=Освещение
4=Адрес электронной почты
5=Пожалуйста введите свою учетную запись
6=Пароль
7=Забыли
8=Зарегистрируйтесь
9=Проверочный код для логина
10=Пожалуйста подождите
11=Закрыть
12=Получить проверочный код
13=Пароль для логина
14=Регистрация
15=Номер телефона
16=Пожалуйста введите пароль
17=Пожалуйста введите пароль повторно
18=Проверочный код
19=Неверный номер телефона.Пожалуйста введите снова
20=Пароли не совпадают. Пожалуйста введите снова
21=Пароль не удовлетворяет требованиям. Пожалуйста введите снова
22=Пользователь отклонен.Повторная регистрация возможна через 24 часа.
23=Неверный проверочный код.Пожалуйста введите снова
24=Неверная  учетная запись. Пожалуйста введите верный  адрес электронной почты
25=Адрес электронной почты
26=Резиденция
27=Участник
28=Снять
29=Поставить
30=Резервное копирование данных
31=Вспомогательная функция
32=Добавить функции
33=Режим ночь
34=Основные настройки
35=Получить поддержку
36=Дом
37=Категория
38=Смарт
39=Индивидуальный
40=Неуспешная авторизация, неверна учетная запись или пароль
41=Не удалось отправить проверочный код
42=Ошибка сети
43=Не удалось зарегистрироваться
44=Подтвердите сброс
45=Учетная запись не существует, проверьте что она зарегистрирована
46=Неверное подтверждение о входе в систему, пожалуйста, войдите в систему еще раз.
47=Личный кабинет
48=Имя
49=QR код
50=Номер телефона
51=Адрес электронной почты
52=Не привязан
53=Разрешение третьей стороны
54=Сменить пароль
55=Настройка разблокировки
56=Установите пароль, жест, отпечаток пальца или распознания лица, чтобы защитить вашу конфиденциальность
57=Выйти из системы
58=Комната
59=Устройство
60=Функция
61=Яркость
62=Настройки
63=Локация
64=Поделиться
65=Добавить папку на главный экран
66=Сменить имя
67=Отменить
68=Подтвердить
69=Все
70=Шторы
71=Имя
72=Адрес
73=Управление этажами
74=Управление комнатами
75=Передать права администратора
76=Передать доступ
77=Доступ для отладки
78=Права администратора переданы другому пользователю.
79=Все данные о резиденции переданы новому пользователю.
80=Разрешить персоналу посещать ваш проект удаленно
81=Этаж
82=Добавить этаж
83=Изменить название этажа
84=Не удалось добавить, этаж уже существует
85=Сцена
86=Удалить
87=Подсказка
88=Удалить этаж или нет?
89=Добавить комнату
90=Изменить информацию для комнаты
91=Информация о комнате
92=Название
93=Этаж
94=Управление функциями
95=Сохранить
96=Удалить комнату
97=Галерея по умолчанию
98=Камера
99=Выбрать из галереи
100=Не присвоено
101=Привязано
102=Отвязано
103=Удалить комнату или нет?
104=Время перехода
105=Температура в помещении
106=Кондиционирование
107=Видеодомофон
108=Датчик
109=Монитор безопасности
110=Интеллектуальная панель
111=Музыка
112=Качество воздуха
113=Окружающая среда
114=Мониторинг энергопотребления
115=Бытовые приборы
116=Смарт замок
117=Подогрев пола
118=Открыть
119=Охлаждение
120=Отопление
121=Осушение воздуха
122=Авто
123=Подача Воздуха
124=Высокая
125=Средняя
126=Низкая
127=Режим
128=Скорость вентилятора
129=Вы уверены, что хотите отключить все функции в комнате?
130=Уже открыт
131=Уже добавлено в избранное
132=Поздравляем! Успешная регистрация.
133=Вход в систему поизойдет автоматически  в ближайшее время…
134=Номер учетной записи не зарегистрирован, пожалуйста, зарегистрируйтесь, а затем войдите в систему снова.
135=Пожалуйста, получите проверочный код.
136=Пароль был изменен.
137=Адрес резиденции не может быть пустым.
138=Название резиденции не может быть пустым.
139=Название комнаты не может быть пустым.
140=Название этажа не может быть пустым.
141=Не удалось исправить, этаж существует.
142=Имя устройства не может быть пустым.
143=Имя пользователя не может быть пустым.
144=Имя пользователя
145=Пожалуйста, выберите страницу для блокировки.
146=Вы можете выбрать несколько страниц, которыми хотите управлять.
147=Ошибка проверочного кода
148=Нет защиты
149=При запуске
150=Поставить/Снять
151=Разблокировать удаленно
152=Нет необходимости вводить пароль /сделайте жест при запуске программы
153=Касательно входа в систему через 5 минут после выхода со страницы, потребуется соответствующий метод разблокировки.
154=Личный кабинет пользователя - используется для разблокировки функции безопасности, такой как снять /поставить
155=Используется для разблокировки интеллектуального замка
156=Настройка разблокировки
157=Действителен только для собственника
158=Разблокировка с помощью пароля
159=Разблокировка жестом
160=Разблокировка с помощью отпечатков пальцев
161=Разблокировка с помощью распознания лица
162=Настройка цифрового пароля
163=Успешная настройка
164=Настройка жестов
165=Пожалуйста, нарисуйте узор для разблокировки.
166=Требуется соединить как минимум 4-точки, пожалуйста, нарисуйте еще раз.
167=Узор и его подтверждение, которые вы нарисовали, не совпадают. Пожалуйста, нарисуйте еще раз.
168=Пожалуйста, нарисуйте свой узор разблокировки еще раз.
169=Разблокировать с помощью отпечатков пальцев или нет?
170=Разблокировать с помощью распознания лица или нет?
171=Подтвердите цифровой пароль
172=Подтвердите жест
173=Пожалуйста, введите исходный жест.
174=Пожалуйста, введите исходный цифровой пароль.
175=Сбой проверки, ошибка пароля
176=Измените цифровой пароль
177=Изменить жест
178=Отключить настройку разблокировки или нет?
179=Пожалуйста, проверьте отпечатки пальцев.
180=Ошибка проверки, ошибка жеста
181=Общие сведения
182=День
183=Ночь
184=Я ушел
185=Пожалуйста привяжите этаж
186=Регулировка скорости вентилятора
187=Вентилятор
188=Розетка
189=Уровень
190=Канал
191=Громкость
192=ТВ
193=Комната уже существует, не удалось изменить.
194=Окружающая среда
195=Сильное загрязнение
196=Незначительное загрязнение
197=Хорошо
198=Отлично
199=Морозно
200=Холодно
201=прохладно
202=Комфортно
203=Тепло
204=Жарко
205=Очень жарко
206=Стандартно
207=Незначительное загрязнение
208=Среднее загрязнение
209=Сильное загрязнение
210=Свежий
211=Смог
212=Загрязнен
213=Сильно загрязнен
214=Высокая Влажность
215=Влажно
216=Сухо
217=Температура
218=Влажность
219=Диапазон
220=Уровень
221=Значение цвета
222=Ультрадисперсная пыль
223=Мелкодисперсная пыль
224=Шум
225=Сила ветра
226=Углекислый газ
227=ОЛОС
228=День
229=Неделя
230=Месяц
231=Другой регион
232=Управление участниками
233=Псевдоним
234=Полномочия администратора
235=Создать сцену
236=Псевдоним не может быть пустым.
237=Изменить псевдоним
238=Используемый регион
239=Добавить участника
240=Пожалуйста, введите учетную запись участника.
241=Сканировать QR-код
242=Подтвердить приглашение
243=Ошибка учетной записи, пожалуйста проверьте.
244=Участника успешно добавлен
245=Ошибка данных, попробуйте еще раз.
246=Не удалось добавить, учетная запись участника не зарегистрирована.
247=Не удалось добавить себя.
248=Пользователь не существует в этой резиденции.
249=Учетная запись участника была добавлена, поэтому ее нельзя добавить снова.
250=Сбой операции
251=Не удалось добавить, недостаточно полномочий
252=Успешно сохранено
253=Сохранение… пожалуйста, подождите.
254=Редактирование псевдонима
255=Удалить этого участника
256=Нет избранных
257=Пожалуйста, введите содержимое.
258=Приветствуем нового участника.
259=Вы уверены, что хотите удалить этого участника?
260=Пожалуйста, введите пароль для входа в систему.
261=Успешно сменена резиденция
262=Выбрать все
263=Поделиться функционалом
264=Подтвердить совместное использование
265=Поделиться с
266=Сбой совместного использования функций
267=Успешное совместное использование функций
268=Адрес электронной почты
269=Изменить привязку
270=Удалить привязку
271=Адрес электронной почты
272=Измените привязанный адрес электронной почты
273=Изменить метод проверки
274=Отправлен проверочный код, пожалуйста, введите его.
275=повторная отправка
276=Успешная проверка
277=Адрес электронной почты
278=Пожалуйста, введите новый адрес электронной почты.
279=ваш адрес электронной почты успешно привязан к вашей учетной записи
280=Не удается привязать  адрес электронной почты к вашей учетной записи
281=Удалите привязку к вашему адресу электронной почты
282=Успешное удаление привязки
283=Номер телефона
284=Номер телефона
285=Номер телефона
286=Номер вашего мобильного телефона успешно привязан  к вашей учетной записи
287=Не удается привязать номер вашего мобильного телефона к вашей учетной записи
288=Изменить Привязку
289=Удалить Привязку
290=Не удается получить историю
291=Нет избранных
292=О программе
293=Участник
294=Администратор
295=Сменить пароль
296=Перед сменой пароля для входа в систему
297=Пожалуйста, подтвердите идентификатор.
298=Проверка по телефону
299=Проверка по электронной почте
300=Не привязан к адресу электронной почты, не удалось подтвердить
301=Не привязан к номеру мобильного телефона, не удалось подтвердить
302=Продолжить привязку
303=Привязку к номеру вашего мобильного телефона успешно удалена
304=Проверочный код был отправлен на:
305=Номер телефона
306=Адрес электронной почты
307=Получены новые данные, вы уверены, что их нужно переписать?
308=Автоматизация
309=Создать сцену
310=Добавить сцену
311=Базовая конфигурация
312=Имя
313=Регион
314=Завершить
315=Полный вид на резиденцию
316=Выбрать
317=Уже добавлено
318=Переключить
319=Скорость вентилятора
320=Режим
321=Вкл.
322=Выкл.
323=Сцена
324=Задержка выполнения сцены
325=Настройка задержки
326=Задержка
327=Захват сцены
328=Записать сцену
329=Общие сведения
330=Автоматический режим
331=Мощность подогрева пола
332=Охлаждение пола
333=Мощность охлаждения пола
334=Регулировка процентного соотношения
335=Без задержки
336=Нет доступных сцен. Добавьте одну!
337=Редактировать сцену
338=Название сцены не может быть пустым.
339=Название сцены уже существует, пожалуйста, исправьте.
340=Название комнаты уже существует, пожалуйста, исправьте
341=Удалять эту сцену или нет?
342=Шлюз не доступен, сбой удаленного подключения.
343=Ошибка MAC адреса, сбой удаленного подключения.
344=Сбой удаленного подключения
345=Номер телефона
346=Адрес электронной почты
347=Пожалуйста, введите новый номер мобильного телефона.
348=Был использован номер мобильного телефона.
349=Был использован адрес электронной почты.
350=Адрес электронной почты совпадает с текущим, менять не нужно.
351=Номер мобильного телефона совпадает с текущим, менять не нужно.
352=Назначение этажа
353=Разделить
354=Закрыть
355=Про
356=Номер версии
357=Эта функция недоступна!
358=Телефон:
359=Электронная почта:
360=Сцена панели управления
361=Не добавлено
362=Выбрать все
363=Не удается установить связь с сервером, не удается отредактировать информацию об устройстве
364=Не удается установить связь с сервером, не удается отредактировать информацию о комнате
365=Не удается установить связь с сервером, не удается отредактировать информацию о сцене
366=Не удается установить связь с сервером, не удается удалить сцену
367=Не удается установить связь с сервером, не удается удалить этаж
368=Добро пожаловать,наслаждайтесь On Pro
369=Добавить новую резиденцию
370=Стать членом семьи
371=Невозможно использовать функцию, пожалуйста, привяжите шлюз
372=Не удается создать сцену, пожалуйста, привяжите шлюз
373=Не удалось добавить этаж
374=Данные о резиденции были удалены, приложение автоматически переключится на другую резиденцию.
375=Шлюз не подключен к серверу, не удается создать сцену.
376=Не удается ввести специальный символ
377=Вся резиденция
378=Время перехода
379=Скорость перехода
380=Эта функция недоступна!
381=Перезагрузка
400=Добро пожаловать домой
401=Неверный штрих-код, пожалуйста, повторите попытку
402=Повторите попытку
403=Цветовая температура
404=Быстрая настройка
405=Уютный
406=Встреча
407=Чтение
408=Добавить
409=Функция марки оборудования
410=В настоящее время вы не добавили ни одного платформенного устройства
411=Другие платформенные устройства поддерживаются сторонними провайдерами
412=Добавить
413=Контроллер не включен
414=Контроллер включен
415=Кто-то
416=Журнал
417=Утечка воды
418=В Состоянии тревоги
419=Нормальный
420=Горячий сухой
421=Сухой воздух
422=Дезинфицировать
423=Освещение
424=Время
425=Время горячей просушки
426=Время просушки
427=Время дезинфекции
428=Время анионизации
429=Ч
430=Мин
431=В настоящее время вы добавляете какие-либо платформенные устройства в
432=Другие платформенное оборудование поддерживается сторонними провайдерами
433=Водяной клапан
434=Переключатель времени
435=Дистанционное управление
436=Добавленные устройства
437=Список устройств
438=влажность:{0}% воздух:{1} ветер:{2}
439=В реальном времени: {0} кВт
440=Следующий шаг
441=Пожалуйста, выберите все области для сбора статусов
442=Создать сцену
443=Пользовательское размещение
444=Центр безопасности
445=Защита дома
446=Защита при нахождении дома
447=Защита при отсутствии дома
448=Фиксированное развертывание
449=*Отмена защиты не влияет
450=Защита от стихийных бедствий
451=24-часовая защита
452=Охранная сигнализация
453=Отключение сигнала тревоги
454=Информация о размещении
455=Имя не может быть пустым.
456=Изображение
457=Потребление энергии
458=Дата
459=Потребление энергии в реальном времени
460=Потребление энергии в этом месяце
461=Наружный /Внутренний
462=Вы еще не добавили никаких устройств
463=Пожалуйста, введите SN-код устройства
464=Можно начать использование СВЧ датчика
465=Удалить устройство
466=Приставка
467=Проектор
468=Кто-то вышел
469=Кто-то внутри
470=Под защитой
471=СВЧ датчик
472=Наружный
473=Качание
474=Качание вверх и вниз
475=Поворот влево и вправо
476=Добавить резиденцию
477=Качание
478=Узор
479=Скорость
480=Датчик окружающей среды
481=Можно начать использование датчика окружающей среды
482=Газовый датчик
483=Пожалуйста, введите MAC-код устройства
484=Открыто
485=Проверка/Изменение
486=Функция защиты / Состояние тревоги
487=Цель тревоги после срабатывания
488=Доступ по распознанию лица
489=Применить распознание лица к:
490=Контроль общего доступа
491=О распознании лица и конфиденциальности
492=Стереть данные
493=Сброс идентификатора лица
494=Установить идентификатор лица
495=Настройки доступа по распознанию лица
496=Нет связанной задачи статуса постановки
497=Пользовательский
498=Отложенная постановка
499=Добавить функцию защиты
500=Добавить цель тревоги
501=Охранная сигнализация: {0} запущена
502=Отключить охранную сигнализацию?
503=Превышение стандарта
504=Хорошо
505=Отлично
506=Ввод лица выполнен успешно
507=Ошибка ввода лица
508=Формальдегид
509=Пожалуйста, введите название охранной функции.
510=Пожалуйста, выберите цель постановки.
511=Комбинированное диммирование
512=Отправка сообщений не включена, пожалуйста, перейдите в настройки.
513=Пожалуйста, введите код сопряжения
514=Информация о местоположении шлюза не настроена
515=Добавить охранную функцию
516=выход
517=мгновенное значение
518=накопленная мощность
519=напряжение (V)
520=текущий (а)
521=мощность (п)
522=обновить
523=задержка напоминания
524=байпас
525=включено
526=аннулировать счёт
527=инструкция по поддержке набора инструментальных средств для семей
528=обновление прошивки
1000=Влажность в Помещении
1001=V-образный чип
1002=Анион
1003=Стерилизация
1004=Увлажнение воздуха
1005=Сброс Фильтрующего Элемента
1006=Освещение
1007=Автоматический
1008=Ручной
1009=Сильный
1010=Режим сна
1011=Отсчет времени
1012=Скорость ветра
1013=Передача
1014=Пожалуйста, подтвердите, был ли сброшен фильтрующий элемент, и управляйте оборудованием в соответствии с инструкцией по эксплуатации, чтобы рассчитать срок службы фильтрующего элемента
1015=Низкая передача
1016=Средняя передача
1017=Высокая Передача
1018=Настройка отсчета времени
1019=Час
1020=Время работы Фильтрующего Элемента:
1021=Воздухоочиститель
1022=Текущая скорость ветра
1023=Отмена отсчета времени
1024=Робот пылесос
1025=Всасывающий
1026=1-я передача
1027=2-я передача
1028=3-я передача
1029=Зарядка
1030=Голос
1031=Отключение звука
1032=Режим Очистки
1033=Управление расходными материалами
1034=История
1035=Автоматический
1036=Случайный
1037=Стена
1038=Спираль
1039=Общая площадь очистки
1040=Общее время Очистки
1041=Оставшийся срок службы боковой щетки
1042=Оставшийся срок службы роликовой щетки
1043=Оставшийся срок службы фильтрующего экрана
1044=Сбросить краевую щетку
1045=Сбросить роликовую щетку
1046=Сбросить Экран
1047=Подтверждаете сброс краевой щетки?
1048=Подтверждаете сброс роликовой щетки?
1049=Подтверждаете сброс экрана?
1050=Добавить устройство
1051= Смарт минипульт управления
1052=Добавить инфракрасный пульт управления
1053=Нажмите кнопку {0} на инфракрасном пульте управления в течение 3 секунд, и индикатор {0} быстро замигает синим цветом
1054=Пожалуйста, убедитесь, что ваше Bluetooth устройство {0} включено и доступно для поиска.
1055=Следующий шаг
1056=Поиск устройства...
1057=Инфракрасный пульт управления не найден
1058=1.Пожалуйста, проверьте, включено ли устройство {0} 2.Пожалуйста, проверьте, включена ли функция Bluetooth устройства{0} 3.Пожалуйста, проверьте, мигает ли индикатор устройства{0} синим цветом
1059=Повторите Поиск
1060=Подключите Wi Fi
1061=В настоящее время  поддерживается только сеть Wi-Fi 2,4 ГГц {0} и не поддерживаются имена сетей Wi-Fi {0} с китайскими иероглифами
1062=Пароль
1063=Подключение...
1064=Пожалуйста, расположите инфракрасный пульт управления {0} как можно ближе к маршрутизатору Wi-Fi
1065=Сетевое соединение
1066=Загрузка в облако
1067=Успешное подключение
1068=1.Пожалуйста, проверьте, включено ли устройство{0}2.Пожалуйста, включите функцию Bluetooth{0}3.Нажмите кнопку в течение 10 секунд, и загорится индикатор {0}.
1069=Ошибка добавления
1070=Добавлено успешно
1071=Вы можете начать использовать инфракрасный пульт управления {0}!
1072=Начать использовать
1073=Пожалуйста, включите Bluetooth
1074=Информация о местоположении (GBS) недоступна
1075=Сеть недоступна
1076=Выберите инфракрасный пульт управления
1077=Свежий воздух
1078=Остаточный фильтрующий экран
1079=Энергия
1080=Вентилируемый
1081=1-я передача
1082=2-я передача
1083=3-я передача
1084=1-я передача
1085=2-я передача
1086=3-я передача
1087=Разблокировать
1088=Температура. Пароль
1089=Подключено
1090=Отключено
1091=Сгенерируйте
1092=Время вступления в силу
1093=Время истечения срока действия
1094=Выберите время
1095=Выберите дату
1096=Сгенерируйте
1097=временный пароль скопирован
1098=Очистить пароль?
1099=Время истечения срока действия должно быть позже времени вступления в силу
1100=Способ разблокировки
1101=Это синхронизирует с фактической блокировкой, подтверждаете удаление?
1102=Удалить
1103=Примечание
1104=Примечание не может быть пустым.
1105=Присвоить
1106=Целевая сцена не существует
1107=Выберите сцену
1108=Разблокировать
1109=Всегда включено
1110=Настройка
1111=Автоматизация
1112=Включить режим "Всегда включен"
1113=Отключить режим "Всегда включен"
1114=Редактировать
1115=Режим "Всегда включен" будет выключен в {0}
1116=Условие
1117=Движение
1118=Всегда включен
1119=Блокировка
1120=Пользователь
1121=Способ разблокировки
1122=Отпечаток пальца
1123=Карта
1124=Ключ
1125=Информация
1126=Разблокировать
1127=Сигнал тревоги
1128=Оффлайн
1129=Для первого пользователя, пожалуйста, привяжите пароль блокировки
1130=Пожалуйста, введите пароль администратора
1131=Привязка выполнена успешно
1132=Перейти к личному паролю для разблокировки
1133=Пропустить
1134=Пожалуйста, нарисуйте свой узор
1135=Блокировка будет всегда включена после настройки, подтвердите, чтобы продолжить
1136=Подтвердить
1137=Истечет
1138=Режим "Всегда включен" истечет через {0} часов
1139=Пожалуйста, введите время истечения срока
1140=Время истечения срока не должно превышать 72 часов
1141=Время истечения срока не должно быть менее 1 часа
1142=Не удалось установить, пожалуйста, повторите попытку
1143=Не удается подтвердить идентификатор администратора, пожалуйста, войдите в учетную запись снова
1144=Ваша резиденция переносится в другой аккаунт
1145=Примечание:
1146=1. Все ваши данные о резиденции будут переданы новому пользователю.{0}2. После передачи первоначальный участник будет автоматически {0} отвязан от этой резиденции.{0}3. Новая учетная запись является действительной учетной записью.{0} 4. Учетная запись получателя не может быть такой же{0}, как первоначальная.
1147=Подтвердить
1148=введите учетную запись получателя
1149=Профиль
1150=Подтвердите перенос администратора с {0} на {1}
1151=Учетная запись не существует.
1152=Не удается передать право собственности самому себе
1153=Завершить
1154=Передача пользователю, пожалуйста, подождите…
1155={0} стал администратором резиденции
1156=Данные о резиденции будут удалены из вашей учетной записи
1157=Не удалось выполнить передачу
1158=Пожалуйста, попробуйте еще раз
1159=Передача полномочий администратора
1160=Ваши полномочия администратора передаются другим участникам
1161=1.Ваши данные (облачные данные) резиденции будут{0} переданы новому администратору{0}2.Ваши данные будут заменены данными целевого участника {0}, и ваше разрешение будет изменено на целевого участника {0}
1162=Подтвердить
1163=Нет участников для выбора
1164=Подтвердите передачу полномочий администратора с {0} на {1}
1165=Успешная передача
1166=Не удается выполнить передачу
1167=Передача прошла успешно, ваши разрешения станут доступными для участников
4000=Видеодомофон
4001=Запись вызова
4002=*Облачные записи хранятся только в течение 30 дней
4003=Звонок в дверь
4004=Отвечено
4005=Разблокировано
4006=год
4007=От
4008=Вызов
4009=Разблокирован
4010=Пропущено
4011=Отклонено
4012=Параметры конфигурации неверны!
4013=QR-код контроля доступа
4014=Временный пароль
5000=Музыка
5001=Группа
5002=Настройка
5003=Общая информация
5004=Медиаплеер
5005=Bluetooth
5006=Регион
5007=Список песен
5008=Мои любимые
5009=Мой список
5010=Выберите источник
5011=Локальный
5012=USB
5013=Онлайн-радио
5014=Музыка QQ
5015=Bluetooth
5016=Линейный вход
5017=Изменить название
5018=Одиночный
5019=Воспроизвести в случайном порядке
5020=Список
5021=Сместился на
5022=Отмена
5023=Удалить
5024=Редактировать
5025=Название списка совпадает.
5026=Название списка пустое.
5027=Пожалуйста, введите название списка.
5028=Добавить новый список
5029=Подсказка
5030=Удалить папку или нет?
5031=Подтвердить
5032=Название пустое
5033=Добавлено в список песен
5034=Радио
5035=Выберите группу
5036=Воспроизвести
5037=Выберите не менее 2-х медиаплееров
5038=Не удается выбрать 2 или более 2-х основных медиаплееров, чтобы стать группой
5039=Не выбран медиаплеер
5040=Выберите для удаления медиаплеера
5041=Не выбран для удаления медиаплеера
5042=Настройка…
5043=Удаление…
5044=Громкость
5045=Основная громкость
5046=Регулировка громкости
5047=Сервис"QQ music" не установлен на вашем мобильном телефоне, пожалуйста, перейдите в центр приложений.
6000=Нормальный
6001=Состояние устройства
6002=шт
6003=Текущее устройство ИК-управления
6004=Добавлен пульт дистанционного управления
6005=Кондиционирование
6006=ТВ
6007=Вентилятор
6008=Телевизионная приставка
6009=DVD
6010=Проектор
6011=Пользовательский
6012=ИК-управление
6013=Управление устройствами
6014=Добавить пульт дистанционного управления
6015=Онлайн
6016=Оффлайн
6017=Номер версии
6018=Пожалуйста, введите название пульта дистанционного управления
6019=Напоминание: После создания пульта дистанционного управления его можно найти и использовать в категории Функции-Электрические {\ r\n}
6020=Рекомендуемая кнопка
6021=Пожалуйста, введите название кнопки
6022=Далее
6023=Мощность
6024=Громкость+
6025=Громкость-
6026=Канал+
6027=Канал-
6028=Вверх
6029=Вниз
6030=Влево
6031=Вправо
6032=Отключение звука
6034=Подтверждение
6035=Воспроизведение
6037=Выход
6038=Меню
6039=Пауза
6040=Назад
6041=Стоп
6042=Главная страница
6043=Перемотка вперед
6044=Перемотка назад
6045=Отсчет времени
6046=Скопировать функцию пульта управления
6047=Наведите курсор на центр пульта дистанционного управления и нажмите ту же кнопку
6048=Смарт пульт дистанционного управления
6049=Добавить кнопку
6050=* Длительное нажатие для пользовательской сортировки
6051=Выполнено
6052=Добавлено успешно
6053=Может быть классифицировано -функция-электрическое управление и использование
6054=Классификация
6055=Название пульта дистанционного управления
6056=Регион
6057=Продолжить для  добавления
6058=Электрические
6059=Не удалось добавить
6060=Повторная попытка
6061=Соответствует пульту дистанционного управления
6062=Пожалуйста, нажмите кнопку ниже
6063=Подтвердите, отвечает ли устройство
6064=Сбой управления
6065=Управление выполнено успешно
6066=Включение питания
6067=Режим охлаждения
6068=Скорость ветра
6069=Температура 26℃
6070=Удалить устройство
6071=Изменить название
6072=Подтвердить удаление
6073=Отмена
6074=Количество пультов дистанционного управления не может превышать 10 шт.
6075=Область, в которой находится пульт дистанционного управления:
6076=Информация для редактирования
6077=Обновление версии
6078=Система находится на обслуживании ~ Пожалуйста, повторите попытку позже ~
6079=Не удалось получить данные
6080=Эта функция временно не поддерживается
6081=Выберите марку ИК управления
6082=Встряхивание
6083=Низкая скорость
6084=Переключатель скорости ветра
6085=Высокая скорость
6086=Авто
6087=Температура +
6088=Температура-
6089=Очиститель воздуха
6090=Водонагреватель
6091=Продукт, которого не существует
6092=Устройство не существует
6093=Устройство не подключено к сети
6094=Устройство шлюза не существует
6095=Добавить более 30 кнопок
6000=Переименовать
6001=Пожалуйста, введите название
6002=марка Xiaodu
6003=Распознаватель речи
6004="Для отмены привязки требуется стороннее приложение ", "передать в стороннее приложение"
6005=Отвязать
6006=Умный динамик
6007=Управление содержимым
6008=Не удалось загрузить данные
6009=Не удалось настроить данные
6010="Динамик еще не установлен", "Пожалуйста, перейдите в стороннее приложение, чтобы привязать смарт динамик".
6011=Изменение примечаний не удалось!
6012=Вы хотите отменить привязку?
6013=Отвязывание...
6014=переход в стороннее приложение
6015=Добавить динамики
7000=Создать автоматизацию
7001=Редактировать автоматизацию
7002=Если
7003=Когда это одновременно удовлетворяет следующим условиям
7004=Когда это удовлетворяет одному из следующих условий
7005=Продолжить выполнение
7006=Следующее действие
7007=Способ обработки
7008=Выполнить один раз
7009=Каждый день
7010=Каждую неделю
7011=Каждый месяц
7012=Сохранить
7013=Отправить сообщение
7014=Отправить уведомление
7015=Выберите условие
7016=Момент
7017=Выберите условие времени
7018=Час
7019=Диапазон времени
7020=Час
7021=Минута
7022=Секунда
7023=Отмена
7024=Уверены
7025=*Это должно выполнить заданную вами автоматизацию один раз в течение заданного вами диапазона времени.
7026=Время начала
7027=Время окончания
7028=Функция
7029=Выберите функциональное условие
7030=Весь регион
7031=Все функции
7032=Вкл.
7033=Выкл
7034=Переключатель
7035=Завершено
7036=Добавить выполнение
7037=Понедельник
7038=Вторник
7039=Среда
7040=Четверг
7041=Пятница
7042=Суббота
7043=Воскресенье
7044=Соответствует условию
7045=Настройка
7046=Название
7047=Изменить название
7048=Название автоматизации уже существует.
7049=Удалиять автоматизацию или нет?
7050=Добавить сцену
7051=Задержка
7052=Не удалось сохранить, пожалуйста, попробуйте еще раз.
7053=Не удается удалить, пожалуйста, попробуйте еще раз.
7054=Пауза
7055=Яркость
7056=Процентное соотношение
7057=Режим
7058=Охлаждение
7059=Отопление
7060=Автоматический
7061=Осушение воздуха
7062=Температура
7063=Скорость вентилятора
7064=День
7065=Ночь
7066=Я ушел
7067=Основной
7068=Время
7069=Автоматизация не настроена , пожалуйста, продолжайте настройку.
7070=Здесь ничего нет.
7071=Время начала не было установлено, пожалуйста, установите.
7072=Время окончания не установлено, пожалуйста, установите.
7073=Время начала и время окончания не должны совпадать.
7074=Время начала не должно быть больше времени окончания.
7075=Условие не должно быть пустым.
7076=Цель не должна быть пустой.
7077=Время не было установлено, пожалуйста, установите.
7078=Условие или цель не должны быть пустыми.
7079=Шлюз недоступен
7080=Восход/Закат/Полдень
7081=Восход солнца
7082=Закат
7083=Полдень
7084=Вовремя
7085=С опережением
7086=Минуты
7087=Изменение внешней среды
7088=Выберите условие изменения внешней среды
7089=Изменение температуры наружного воздуха, влажности, PM2.5
7090=Изменение погоды (в черте города)
7091=Изменение внешней среды
7092=Температура выше
7093=Температура ниже
7094=Влажность выше
7095=Влажность ниже
7096=PM2.5 выше, чем
7097=PM2.5 ниже
7098=Солнечный день
7099=Облачно
7100=Непогода
7101=*Пожалуйста, установите значение в этом диапазоне (1 ~ 100).
7102=Заданное значение отсутствует.
7103=Отлично: 0 ~ 35 мкг/м3
7104=Хорошо: 36 ~ 75 мкг/м3
7105=Легкое загрязнение: 76 ~ 115 мкг/м3
7106=Умеренное загрязнение: 116 ~ 150 мкг/м3
7107=Сильное загрязнение: > 150 мкг/м3
7108=Утечка/Отсутствие утечки
7109=Утечка
7110=Нет утечки
7111=Утечка воды / нет утечки воды
7112=Утечка воды
7113=Нет утечки воды
7114=Кто-то/Никто
7115=Кто-то
7116=Никто
7117=Открыть/Закрыть
7118=Вкл.
7119=Закрыть
7120=Функция защиты от снятия
7121=Онлайн
7122=Нет в сети
7123=Качество воздуха
7124=Отлично
7125=Хорошо
7126=Слабо
7127=Отправить уведомление
7128=Содержание уведомления
7129=(в пределах 100 символов)
7130=Выбор учетной записи
7131=уведомление приложения
7132=Автоматизация
7133=Выполнено
7134=Состояние цели
7135=Падение
7136=Температура
7137=Влажность
7138=PM2.5
7139=CO2
7140=TVOC
7141=Превышеное
7142=Опасное
7143=Высокое
7144=Идеальное
7145=Безопасность
7146=Добавить функцию безопасности
7147=Поставить
7148=Снять
7149=Вручную
7150=Смарт
7151=Хороший
7152=Покинуть или прибыть
7153=Покинуть
7154=Прибыть
9000=Пожалуйста, войдите в систему с новым номером мобильного телефона.
9001=Пожалуйста, войдите в систему с новым адресом электронной почты.
9002=Новый номер мобильного телефона изменен
9003=Новый номер мобильного телефона привязан
9004=Новый адрес электронной почты изменен
9005=Новый адрес электронной почты привязан
9006=Код подтверждения может быть отправлен позже, пожалуйста, подождите.
9007=Пожалуйста, подождите.
9008=Назад
9009=Пользователь, который не хочет, чтобы его называли
9010=Новый пароль
9011=Введите новый пароль снова
9012=Согласиться
9013=Соглашение об обслуживании
9014=Правила защиты информации пользователя
9015=и
9016=Пожалуйста, прочтите и согласитесь с Пользовательским Соглашением об обслуживании и Правилами защиты пользовательской информации.
9017=Вы уверены, что хотите выйти из системы?
9018=Пожалуйста, выберите страну/регион.
9019=Обновить сейчас
9020=Не сейчас
9021=Страна/регион
9022=Информация о сервере
9023=Текущий сервер:
9024=*Сервер ссылается на базу данных для облака, без необходимости выполнять передачу данных не рекомендуется.
9025=Если требуется передача данных, пожалуйста, наберите
9026=Введение в функцию
9027=Жалобы
9028=Обновление версии
9029=(пожалуйста, укажите "жалобы" в названии, тогда мы обработаем в приоритетном порядке.)
9030=Копирование выполнено
9031=Здесь ничего нет.
9032=Получить новую версию
9033=Последняя версию
9034=Что я могу для вас сделать?
9035=Проблема с функцией
9036=Проблема со сценой
9037=Поддержка приложения
9038=(Часто задаваемые вопросы)
9039=Совместное использование и функция
9040=Оповещения
9041=Информация о системе
9042=Информационный центр
9043=Пожалуйста, обратите внимание, что номер вашей учетной записи зарегистрирован в другом месте. Если это сделано не вами, пожалуйста, немедленно измените пароль.
9044=Успешно загружено
9045=Не удается загрузить
9046=Успешно изменен
9047=Пароль, который вы изменили, вступил в силу, пожалуйста, войдите в систему снова.
9048=Войдите в систему с паролем номера учетной записи
9049=Неправильный пароль введен много раз, номер учетной записи заблокирован!
9050=Проверка распознания лица
9051=Не удается сохранить идентификатор лица пользователя
9052=Доступно push-уведомление о регистрации.
9053=Push-уведомление о регистрации является ненормальным.
9054=Проверка цифрового пароля
9055=Проверка жестов
9056=Год
9057=Нет региональной функции
9058=Сохранить или нет?
9059=Сейчас нет общего доступа
9060=Разрешение на использование
9061=Найдите свой пароль, нажав на "Забыли пароль", или повторите попытку через {0} минуту.
9062=Проверьте
9063=У вас \еще есть {0} попыток
9064=Смарт динамик
9065=Управление данными
9066=Примечания
9067=Примечания не могут быть пустыми.
9068=Вы хотите отменить привязку?
9069=Уведомление о собственности
10000=Неверный пароль, пожалуйста, войдите в систему еще раз.
10001=Не удается запросить сервер, пожалуйста, повторите попытку позже.
10002=Обслуживание системы, пожалуйста, повторите попытку позже.
10003=Не удается войти в систему, пожалуйста, сначала добавьте резиденцию.
10004=Номер учетной записи существует.
10005=Вы отправляете проверочный код слишком часто, пожалуйста, повторите попытку позже.
10006=Ошибка подписи
10007=Система занята, пожалуйста, повторите попытку позже!
10008=Неверный пароль для входа в систему
10009=Пользователь был отключен.
10010=Ошибка исходного пароля
10011=Дополнительная учетная запись существует.
10012=Дополнительная учетная запись не существует.
10013=Не разрешается добавлять себя в качестве участника.
10014=Текущая резиденция не относится к этой учетной записи.
10015=Название резиденции существует.
10016=Резиденция не существует
10017=Ошибка запроса, ненормальный параметр!
10018=Номер, который вы привязали, является дубликатом.
10019=Пожалуйста, сначала привяжите шлюз.
10020=Шлюз не существует.
10021=Шлюз не доступен.
10022=Устройство находится в оффлайн
10023=Сбой управления
10024=Сцена существует.
10025=Автоматизация существует.
10026=Spk не поддерживает эту функцию.
10027=Spk не поддерживает это функциональное значение.
10028=У вас нет разрешения.
10029=Целевое устройство продублировано
10030=У вас нет разрешения на удаленное управление.
10031=Устройство не должно быть пустым.
10032=У пользователя нет разрешения.
10033=Устройство не существует.
HDL-ON_Android/HDL-ON_Android.csproj
@@ -46,6 +46,7 @@
    <BundleAssemblies>false</BundleAssemblies>
    <AndroidEnableMultiDex>false</AndroidEnableMultiDex>
    <AndroidUseAapt2>true</AndroidUseAapt2>
    <EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugSymbols>True</DebugSymbols>
HDL-ON_Android/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="202202281" android:versionName="1.5.2" package="com.hdl.onpro" xmlns:tools="http://schemas.android.com/tools">
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="202202281" android:versionName="1.5.4" package="com.hdl.onpro" xmlns:tools="http://schemas.android.com/tools">
    <uses-sdk android:minSdkVersion="28" android:targetSdkVersion="30" />
    <!--友盟-->
    <!--<uses-sdk android:minSdkVersion="8"></uses-sdk>-->
@@ -88,7 +88,7 @@
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <!-- 极光推送结束 -->
    <application android:allowBackup="true" android:debuggable="true" android:icon="@drawable/Icon" android:networkSecurityConfig="@xml/network_security_config" android:largeHeap="true" android:label="On Pro">
    <application android:allowBackup="true" android:debuggable="false" android:icon="@drawable/Icon" android:networkSecurityConfig="@xml/network_security_config" android:largeHeap="true" android:label="On Pro">
        <!--/扫描二维码activity-->
        <!--<activity
            android:name="com.journeyapps.barcodescanner.CaptureActivity"
HDL-ON_Android/SplashActivity.cs
@@ -28,10 +28,6 @@
                {
                    if (!OnAppConfig.Instance.FirstRunApp)
                    {
                        //初始化友盟sdk
                        Com.Hdl.Umsdk.UmSdk.InitUmSdk(this, "61d565d9e0f9bb492bbc3d5a", "Android");
                        //初始化友盟sdk config
                        Com.Hdl.Umsdk.UmSdk.InitUMConfigure(this, "61d565d9e0f9bb492bbc3d5a", "Android", "");
                        ////打开baseActivity
                        Intent i = new Intent(this, typeof(BaseActivity));//Intent intent=new Intent( 起始组件对象 , 目标 Service.class);
                        StartActivityForResult(i, 1);
@@ -65,10 +61,6 @@
            }
            else
            {
                //初始化友盟sdk
                Com.Hdl.Umsdk.UmSdk.InitUmSdk(this, "61d565d9e0f9bb492bbc3d5a", "Android");
                //初始化友盟sdk config
                Com.Hdl.Umsdk.UmSdk.InitUMConfigure(this, "61d565d9e0f9bb492bbc3d5a", "Android","");
                ////打开baseActivity
                Intent i = new Intent(this, typeof(BaseActivity));//Intent intent=new Intent( 起始组件对象 , 目标 Service.class);
                StartActivityForResult(i, 1);
@@ -99,6 +91,10 @@
            };
            //初始化友盟sdk
            Com.Hdl.Umsdk.UmSdk.InitUmSdk(this, "61d565d9e0f9bb492bbc3d5a", "Android");
            //初始化友盟sdk config
            Com.Hdl.Umsdk.UmSdk.InitUMConfigure(this, "61d565d9e0f9bb492bbc3d5a", "Android", "");
        }
HDL-ON_iOS/AppDelegate.cs
@@ -233,6 +233,10 @@
                {
                    Language.CurrentLanguage = "Czech";
                }
                else if (NSLocale.PreferredLanguages[0].Contains("ru-"))
                {
                    Language.CurrentLanguage = "russian";
                }
                else
                {
                    Language.CurrentLanguage = "English";
HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -38,8 +38,9 @@
        <WarningLevel>4</WarningLevel>
        <MtouchLink>SdkOnly</MtouchLink>
        <MtouchArch>x86_64</MtouchArch>
<CodesignKey>iPhone Developer</CodesignKey>
<CodesignKey>Apple Distribution: HDL Automation Co., Ltd (BVTA78PRYA)</CodesignKey>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<CodesignProvision>ComHdlOnProAdHoc20220117-1</CodesignProvision>
    </PropertyGroup>
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' ">
        <DebugSymbols>true</DebugSymbols>
@@ -56,7 +57,6 @@
        <MtouchLink>SdkOnly</MtouchLink>
        <MtouchExtraArgs>-gcc_flags="-dead_strip -ObjC"</MtouchExtraArgs>
        <MtouchEnableSGenConc>false</MtouchEnableSGenConc>
<CodesignProvision>OnPro211201-1-Dev</CodesignProvision>
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
    </PropertyGroup>
@@ -73,6 +73,7 @@
        <MtouchExtraArgs>-gcc_flags="-dead_strip -ObjC"</MtouchExtraArgs>
        <MtouchI18n>cjk</MtouchI18n>
        <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
        <CodesignProvision>ComHdlOnProAdHoc20220117-1</CodesignProvision>
    </PropertyGroup>
    <ItemGroup>
        <Reference Include="System" />
@@ -109,9 +110,6 @@
        </Reference>
        <Reference Include="Shared.IOS.HDLSceneSiri">
          <HintPath>..\..\HDLXamarinSceneSiri\Shared.IOS.HDLSceneSiri\Shared.IOS.HDLSceneSiri\bin\Release\Shared.IOS.HDLSceneSiri.dll</HintPath>
        </Reference>
        <Reference Include="UMSdk">
          <HintPath>..\DLL\UMeng\UMSdk.dll</HintPath>
        </Reference>
    </ItemGroup>
    <ItemGroup>
@@ -1431,6 +1429,10 @@
        <Project>{8B1652FA-5158-4D57-B90D-07BB91766625}</Project>
        <Name>SiriKit</Name>
      </ProjectReference>
      <ProjectReference Include="..\UMSdk\UMSdk.csproj">
        <Project>{5CD1B2DE-1ABD-4B46-8C97-CCB6EA90346A}</Project>
        <Name>UMSdk</Name>
      </ProjectReference>
    </ItemGroup>
    <ItemGroup>
      <Content Include="Base.lproj\Intents.intentdefinition" />
HDL-ON_iOS/Info.plist
@@ -100,9 +100,9 @@
    <key>UIStatusBarStyle</key>
    <string>UIStatusBarStyleLightContent</string>
    <key>CFBundleShortVersionString</key>
    <string>1.5.102101121</string>
    <string>1.5.402203011</string>
    <key>CFBundleVersion</key>
    <string>1.5.101121</string>
    <string>1.5.403011</string>
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>Use geographic location to provide services such as weather</string>
    <key>NSAppleMusicUsageDescription</key>
@@ -120,6 +120,7 @@
    <key>UIBackgroundModes</key>
    <array>
        <string>audio</string>
        <string>location</string>
        <string>voip</string>
        <string>remote-notification</string>
    </array>
HDL-ON_iOS/Resources/Language.ini
@@ -128,7 +128,7 @@
127=Mode
128=Fan speed
129=Are you sure to shut off all functions in the room?
130= already opened
130=already opened
131=Already added to favorites
132=Congratulations! Successful registration.
133=Automatic log-in soon…
@@ -512,6 +512,8 @@
524=Bypass
525=Enable
526=Cancel account
527=Homekit support notes
528=Firmware update
 
1000=Room Humidity
1001=V-chip
@@ -594,7 +596,6 @@
1078=Residual filter screen
1079=Energy
1080=Ventilated
;别看下面都一样,都是UI特殊要求整的,再加上考虑英文长度
1081=1st Gear
1082=2nd Gear
1083=3rd Gear
@@ -1042,9 +1043,9 @@
9011=Enter new password again
9012=Agree
9013=Service Agreement
9014=User information protection regulations
9014=Privacy Agreement
9015=and
9016=Please read and agree on User Service Agreement and User information protection regulations.
9016=Please read and agree on User Service Agreement and Privacy Agreement.
9017=Are you sure to log out?
9018=Please select country/region.
9019=Update now
@@ -1647,6 +1648,8 @@
524=停用
525=启用
526=注销账号
527=支持HomeKit说明
528=固件更新
 
1000=室内湿度
1001=童锁
@@ -2250,3 +2253,1138 @@
10031=设备不能为空
10032=用户没有设备的权限
10033=设备不存在
[russian]
1=Логин
2=Номер телефона
3=Освещение
4=Адрес электронной почты
5=Пожалуйста введите свою учетную запись
6=Пароль
7=Забыли
8=Зарегистрируйтесь
9=Проверочный код для логина
10=Пожалуйста подождите
11=Закрыть
12=Получить проверочный код
13=Пароль для логина
14=Регистрация
15=Номер телефона
16=Пожалуйста введите пароль
17=Пожалуйста введите пароль повторно
18=Проверочный код
19=Неверный номер телефона.Пожалуйста введите снова
20=Пароли не совпадают. Пожалуйста введите снова
21=Пароль не удовлетворяет требованиям. Пожалуйста введите снова
22=Пользователь отклонен.Повторная регистрация возможна через 24 часа.
23=Неверный проверочный код.Пожалуйста введите снова
24=Неверная  учетная запись. Пожалуйста введите верный  адрес электронной почты
25=Адрес электронной почты
26=Резиденция
27=Участник
28=Снять
29=Поставить
30=Резервное копирование данных
31=Вспомогательная функция
32=Добавить функции
33=Режим ночь
34=Основные настройки
35=Получить поддержку
36=Дом
37=Категория
38=Смарт
39=Индивидуальный
40=Неуспешная авторизация, неверна учетная запись или пароль
41=Не удалось отправить проверочный код
42=Ошибка сети
43=Не удалось зарегистрироваться
44=Подтвердите сброс
45=Учетная запись не существует, проверьте что она зарегистрирована
46=Неверное подтверждение о входе в систему, пожалуйста, войдите в систему еще раз.
47=Личный кабинет
48=Имя
49=QR код
50=Номер телефона
51=Адрес электронной почты
52=Не привязан
53=Разрешение третьей стороны
54=Сменить пароль
55=Настройка разблокировки
56=Установите пароль, жест, отпечаток пальца или распознания лица, чтобы защитить вашу конфиденциальность
57=Выйти из системы
58=Комната
59=Устройство
60=Функция
61=Яркость
62=Настройки
63=Локация
64=Поделиться
65=Добавить папку на главный экран
66=Сменить имя
67=Отменить
68=Подтвердить
69=Все
70=Шторы
71=Имя
72=Адрес
73=Управление этажами
74=Управление комнатами
75=Передать права администратора
76=Передать доступ
77=Доступ для отладки
78=Права администратора переданы другому пользователю.
79=Все данные о резиденции переданы новому пользователю.
80=Разрешить персоналу посещать ваш проект удаленно
81=Этаж
82=Добавить этаж
83=Изменить название этажа
84=Не удалось добавить, этаж уже существует
85=Сцена
86=Удалить
87=Подсказка
88=Удалить этаж или нет?
89=Добавить комнату
90=Изменить информацию для комнаты
91=Информация о комнате
92=Название
93=Этаж
94=Управление функциями
95=Сохранить
96=Удалить комнату
97=Галерея по умолчанию
98=Камера
99=Выбрать из галереи
100=Не присвоено
101=Привязано
102=Отвязано
103=Удалить комнату или нет?
104=Время перехода
105=Температура в помещении
106=Кондиционирование
107=Видеодомофон
108=Датчик
109=Монитор безопасности
110=Интеллектуальная панель
111=Музыка
112=Качество воздуха
113=Окружающая среда
114=Мониторинг энергопотребления
115=Бытовые приборы
116=Смарт замок
117=Подогрев пола
118=Открыть
119=Охлаждение
120=Отопление
121=Осушение воздуха
122=Авто
123=Подача Воздуха
124=Высокая
125=Средняя
126=Низкая
127=Режим
128=Скорость вентилятора
129=Вы уверены, что хотите отключить все функции в комнате?
130=Уже открыт
131=Уже добавлено в избранное
132=Поздравляем! Успешная регистрация.
133=Вход в систему поизойдет автоматически  в ближайшее время…
134=Номер учетной записи не зарегистрирован, пожалуйста, зарегистрируйтесь, а затем войдите в систему снова.
135=Пожалуйста, получите проверочный код.
136=Пароль был изменен.
137=Адрес резиденции не может быть пустым.
138=Название резиденции не может быть пустым.
139=Название комнаты не может быть пустым.
140=Название этажа не может быть пустым.
141=Не удалось исправить, этаж существует.
142=Имя устройства не может быть пустым.
143=Имя пользователя не может быть пустым.
144=Имя пользователя
145=Пожалуйста, выберите страницу для блокировки.
146=Вы можете выбрать несколько страниц, которыми хотите управлять.
147=Ошибка проверочного кода
148=Нет защиты
149=При запуске
150=Поставить/Снять
151=Разблокировать удаленно
152=Нет необходимости вводить пароль /сделайте жест при запуске программы
153=Касательно входа в систему через 5 минут после выхода со страницы, потребуется соответствующий метод разблокировки.
154=Личный кабинет пользователя - используется для разблокировки функции безопасности, такой как снять /поставить
155=Используется для разблокировки интеллектуального замка
156=Настройка разблокировки
157=Действителен только для собственника
158=Разблокировка с помощью пароля
159=Разблокировка жестом
160=Разблокировка с помощью отпечатков пальцев
161=Разблокировка с помощью распознания лица
162=Настройка цифрового пароля
163=Успешная настройка
164=Настройка жестов
165=Пожалуйста, нарисуйте узор для разблокировки.
166=Требуется соединить как минимум 4-точки, пожалуйста, нарисуйте еще раз.
167=Узор и его подтверждение, которые вы нарисовали, не совпадают. Пожалуйста, нарисуйте еще раз.
168=Пожалуйста, нарисуйте свой узор разблокировки еще раз.
169=Разблокировать с помощью отпечатков пальцев или нет?
170=Разблокировать с помощью распознания лица или нет?
171=Подтвердите цифровой пароль
172=Подтвердите жест
173=Пожалуйста, введите исходный жест.
174=Пожалуйста, введите исходный цифровой пароль.
175=Сбой проверки, ошибка пароля
176=Измените цифровой пароль
177=Изменить жест
178=Отключить настройку разблокировки или нет?
179=Пожалуйста, проверьте отпечатки пальцев.
180=Ошибка проверки, ошибка жеста
181=Общие сведения
182=День
183=Ночь
184=Я ушел
185=Пожалуйста привяжите этаж
186=Регулировка скорости вентилятора
187=Вентилятор
188=Розетка
189=Уровень
190=Канал
191=Громкость
192=ТВ
193=Комната уже существует, не удалось изменить.
194=Окружающая среда
195=Сильное загрязнение
196=Незначительное загрязнение
197=Хорошо
198=Отлично
199=Морозно
200=Холодно
201=прохладно
202=Комфортно
203=Тепло
204=Жарко
205=Очень жарко
206=Стандартно
207=Незначительное загрязнение
208=Среднее загрязнение
209=Сильное загрязнение
210=Свежий
211=Смог
212=Загрязнен
213=Сильно загрязнен
214=Высокая Влажность
215=Влажно
216=Сухо
217=Температура
218=Влажность
219=Диапазон
220=Уровень
221=Значение цвета
222=Ультрадисперсная пыль
223=Мелкодисперсная пыль
224=Шум
225=Сила ветра
226=Углекислый газ
227=ОЛОС
228=День
229=Неделя
230=Месяц
231=Другой регион
232=Управление участниками
233=Псевдоним
234=Полномочия администратора
235=Создать сцену
236=Псевдоним не может быть пустым.
237=Изменить псевдоним
238=Используемый регион
239=Добавить участника
240=Пожалуйста, введите учетную запись участника.
241=Сканировать QR-код
242=Подтвердить приглашение
243=Ошибка учетной записи, пожалуйста проверьте.
244=Участника успешно добавлен
245=Ошибка данных, попробуйте еще раз.
246=Не удалось добавить, учетная запись участника не зарегистрирована.
247=Не удалось добавить себя.
248=Пользователь не существует в этой резиденции.
249=Учетная запись участника была добавлена, поэтому ее нельзя добавить снова.
250=Сбой операции
251=Не удалось добавить, недостаточно полномочий
252=Успешно сохранено
253=Сохранение… пожалуйста, подождите.
254=Редактирование псевдонима
255=Удалить этого участника
256=Нет избранных
257=Пожалуйста, введите содержимое.
258=Приветствуем нового участника.
259=Вы уверены, что хотите удалить этого участника?
260=Пожалуйста, введите пароль для входа в систему.
261=Успешно сменена резиденция
262=Выбрать все
263=Поделиться функционалом
264=Подтвердить совместное использование
265=Поделиться с
266=Сбой совместного использования функций
267=Успешное совместное использование функций
268=Адрес электронной почты
269=Изменить привязку
270=Удалить привязку
271=Адрес электронной почты
272=Измените привязанный адрес электронной почты
273=Изменить метод проверки
274=Отправлен проверочный код, пожалуйста, введите его.
275=повторная отправка
276=Успешная проверка
277=Адрес электронной почты
278=Пожалуйста, введите новый адрес электронной почты.
279=ваш адрес электронной почты успешно привязан к вашей учетной записи
280=Не удается привязать  адрес электронной почты к вашей учетной записи
281=Удалите привязку к вашему адресу электронной почты
282=Успешное удаление привязки
283=Номер телефона
284=Номер телефона
285=Номер телефона
286=Номер вашего мобильного телефона успешно привязан  к вашей учетной записи
287=Не удается привязать номер вашего мобильного телефона к вашей учетной записи
288=Изменить Привязку
289=Удалить Привязку
290=Не удается получить историю
291=Нет избранных
292=О программе
293=Участник
294=Администратор
295=Сменить пароль
296=Перед сменой пароля для входа в систему
297=Пожалуйста, подтвердите идентификатор.
298=Проверка по телефону
299=Проверка по электронной почте
300=Не привязан к адресу электронной почты, не удалось подтвердить
301=Не привязан к номеру мобильного телефона, не удалось подтвердить
302=Продолжить привязку
303=Привязку к номеру вашего мобильного телефона успешно удалена
304=Проверочный код был отправлен на:
305=Номер телефона
306=Адрес электронной почты
307=Получены новые данные, вы уверены, что их нужно переписать?
308=Автоматизация
309=Создать сцену
310=Добавить сцену
311=Базовая конфигурация
312=Имя
313=Регион
314=Завершить
315=Полный вид на резиденцию
316=Выбрать
317=Уже добавлено
318=Переключить
319=Скорость вентилятора
320=Режим
321=Вкл.
322=Выкл.
323=Сцена
324=Задержка выполнения сцены
325=Настройка задержки
326=Задержка
327=Захват сцены
328=Записать сцену
329=Общие сведения
330=Автоматический режим
331=Мощность подогрева пола
332=Охлаждение пола
333=Мощность охлаждения пола
334=Регулировка процентного соотношения
335=Без задержки
336=Нет доступных сцен. Добавьте одну!
337=Редактировать сцену
338=Название сцены не может быть пустым.
339=Название сцены уже существует, пожалуйста, исправьте.
340=Название комнаты уже существует, пожалуйста, исправьте
341=Удалять эту сцену или нет?
342=Шлюз не доступен, сбой удаленного подключения.
343=Ошибка MAC адреса, сбой удаленного подключения.
344=Сбой удаленного подключения
345=Номер телефона
346=Адрес электронной почты
347=Пожалуйста, введите новый номер мобильного телефона.
348=Был использован номер мобильного телефона.
349=Был использован адрес электронной почты.
350=Адрес электронной почты совпадает с текущим, менять не нужно.
351=Номер мобильного телефона совпадает с текущим, менять не нужно.
352=Назначение этажа
353=Разделить
354=Закрыть
355=Про
356=Номер версии
357=Эта функция недоступна!
358=Телефон:
359=Электронная почта:
360=Сцена панели управления
361=Не добавлено
362=Выбрать все
363=Не удается установить связь с сервером, не удается отредактировать информацию об устройстве
364=Не удается установить связь с сервером, не удается отредактировать информацию о комнате
365=Не удается установить связь с сервером, не удается отредактировать информацию о сцене
366=Не удается установить связь с сервером, не удается удалить сцену
367=Не удается установить связь с сервером, не удается удалить этаж
368=Добро пожаловать,наслаждайтесь On Pro
369=Добавить новую резиденцию
370=Стать членом семьи
371=Невозможно использовать функцию, пожалуйста, привяжите шлюз
372=Не удается создать сцену, пожалуйста, привяжите шлюз
373=Не удалось добавить этаж
374=Данные о резиденции были удалены, приложение автоматически переключится на другую резиденцию.
375=Шлюз не подключен к серверу, не удается создать сцену.
376=Не удается ввести специальный символ
377=Вся резиденция
378=Время перехода
379=Скорость перехода
380=Эта функция недоступна!
381=Перезагрузка
400=Добро пожаловать домой
401=Неверный штрих-код, пожалуйста, повторите попытку
402=Повторите попытку
403=Цветовая температура
404=Быстрая настройка
405=Уютный
406=Встреча
407=Чтение
408=Добавить
409=Функция марки оборудования
410=В настоящее время вы не добавили ни одного платформенного устройства
411=Другие платформенные устройства поддерживаются сторонними провайдерами
412=Добавить
413=Контроллер не включен
414=Контроллер включен
415=Кто-то
416=Журнал
417=Утечка воды
418=В Состоянии тревоги
419=Нормальный
420=Горячий сухой
421=Сухой воздух
422=Дезинфицировать
423=Освещение
424=Время
425=Время горячей просушки
426=Время просушки
427=Время дезинфекции
428=Время анионизации
429=Ч
430=Мин
431=В настоящее время вы добавляете какие-либо платформенные устройства в
432=Другие платформенное оборудование поддерживается сторонними провайдерами
433=Водяной клапан
434=Переключатель времени
435=Дистанционное управление
436=Добавленные устройства
437=Список устройств
438=влажность:{0}% воздух:{1} ветер:{2}
439=В реальном времени: {0} кВт
440=Следующий шаг
441=Пожалуйста, выберите все области для сбора статусов
442=Создать сцену
443=Пользовательское размещение
444=Центр безопасности
445=Защита дома
446=Защита при нахождении дома
447=Защита при отсутствии дома
448=Фиксированное развертывание
449=*Отмена защиты не влияет
450=Защита от стихийных бедствий
451=24-часовая защита
452=Охранная сигнализация
453=Отключение сигнала тревоги
454=Информация о размещении
455=Имя не может быть пустым.
456=Изображение
457=Потребление энергии
458=Дата
459=Потребление энергии в реальном времени
460=Потребление энергии в этом месяце
461=Наружный /Внутренний
462=Вы еще не добавили никаких устройств
463=Пожалуйста, введите SN-код устройства
464=Можно начать использование СВЧ датчика
465=Удалить устройство
466=Приставка
467=Проектор
468=Кто-то вышел
469=Кто-то внутри
470=Под защитой
471=СВЧ датчик
472=Наружный
473=Качание
474=Качание вверх и вниз
475=Поворот влево и вправо
476=Добавить резиденцию
477=Качание
478=Узор
479=Скорость
480=Датчик окружающей среды
481=Можно начать использование датчика окружающей среды
482=Газовый датчик
483=Пожалуйста, введите MAC-код устройства
484=Открыто
485=Проверка/Изменение
486=Функция защиты / Состояние тревоги
487=Цель тревоги после срабатывания
488=Доступ по распознанию лица
489=Применить распознание лица к:
490=Контроль общего доступа
491=О распознании лица и конфиденциальности
492=Стереть данные
493=Сброс идентификатора лица
494=Установить идентификатор лица
495=Настройки доступа по распознанию лица
496=Нет связанной задачи статуса постановки
497=Пользовательский
498=Отложенная постановка
499=Добавить функцию защиты
500=Добавить цель тревоги
501=Охранная сигнализация: {0} запущена
502=Отключить охранную сигнализацию?
503=Превышение стандарта
504=Хорошо
505=Отлично
506=Ввод лица выполнен успешно
507=Ошибка ввода лица
508=Формальдегид
509=Пожалуйста, введите название охранной функции.
510=Пожалуйста, выберите цель постановки.
511=Комбинированное диммирование
512=Отправка сообщений не включена, пожалуйста, перейдите в настройки.
513=Пожалуйста, введите код сопряжения
514=Информация о местоположении шлюза не настроена
515=Добавить охранную функцию
516=выход
517=мгновенное значение
518=накопленная мощность
519=напряжение (V)
520=текущий (а)
521=мощность (п)
522=обновить
523=задержка напоминания
524=байпас
525=включено
526=аннулировать счёт
527=инструкция по поддержке набора инструментальных средств для семей
528=обновление прошивки
1000=Влажность в Помещении
1001=V-образный чип
1002=Анион
1003=Стерилизация
1004=Увлажнение воздуха
1005=Сброс Фильтрующего Элемента
1006=Освещение
1007=Автоматический
1008=Ручной
1009=Сильный
1010=Режим сна
1011=Отсчет времени
1012=Скорость ветра
1013=Передача
1014=Пожалуйста, подтвердите, был ли сброшен фильтрующий элемент, и управляйте оборудованием в соответствии с инструкцией по эксплуатации, чтобы рассчитать срок службы фильтрующего элемента
1015=Низкая передача
1016=Средняя передача
1017=Высокая Передача
1018=Настройка отсчета времени
1019=Час
1020=Время работы Фильтрующего Элемента:
1021=Воздухоочиститель
1022=Текущая скорость ветра
1023=Отмена отсчета времени
1024=Робот пылесос
1025=Всасывающий
1026=1-я передача
1027=2-я передача
1028=3-я передача
1029=Зарядка
1030=Голос
1031=Отключение звука
1032=Режим Очистки
1033=Управление расходными материалами
1034=История
1035=Автоматический
1036=Случайный
1037=Стена
1038=Спираль
1039=Общая площадь очистки
1040=Общее время Очистки
1041=Оставшийся срок службы боковой щетки
1042=Оставшийся срок службы роликовой щетки
1043=Оставшийся срок службы фильтрующего экрана
1044=Сбросить краевую щетку
1045=Сбросить роликовую щетку
1046=Сбросить Экран
1047=Подтверждаете сброс краевой щетки?
1048=Подтверждаете сброс роликовой щетки?
1049=Подтверждаете сброс экрана?
1050=Добавить устройство
1051= Смарт минипульт управления
1052=Добавить инфракрасный пульт управления
1053=Нажмите кнопку {0} на инфракрасном пульте управления в течение 3 секунд, и индикатор {0} быстро замигает синим цветом
1054=Пожалуйста, убедитесь, что ваше Bluetooth устройство {0} включено и доступно для поиска.
1055=Следующий шаг
1056=Поиск устройства...
1057=Инфракрасный пульт управления не найден
1058=1.Пожалуйста, проверьте, включено ли устройство {0} 2.Пожалуйста, проверьте, включена ли функция Bluetooth устройства{0} 3.Пожалуйста, проверьте, мигает ли индикатор устройства{0} синим цветом
1059=Повторите Поиск
1060=Подключите Wi Fi
1061=В настоящее время  поддерживается только сеть Wi-Fi 2,4 ГГц {0} и не поддерживаются имена сетей Wi-Fi {0} с китайскими иероглифами
1062=Пароль
1063=Подключение...
1064=Пожалуйста, расположите инфракрасный пульт управления {0} как можно ближе к маршрутизатору Wi-Fi
1065=Сетевое соединение
1066=Загрузка в облако
1067=Успешное подключение
1068=1.Пожалуйста, проверьте, включено ли устройство{0}2.Пожалуйста, включите функцию Bluetooth{0}3.Нажмите кнопку в течение 10 секунд, и загорится индикатор {0}.
1069=Ошибка добавления
1070=Добавлено успешно
1071=Вы можете начать использовать инфракрасный пульт управления {0}!
1072=Начать использовать
1073=Пожалуйста, включите Bluetooth
1074=Информация о местоположении (GBS) недоступна
1075=Сеть недоступна
1076=Выберите инфракрасный пульт управления
1077=Свежий воздух
1078=Остаточный фильтрующий экран
1079=Энергия
1080=Вентилируемый
1081=1-я передача
1082=2-я передача
1083=3-я передача
1084=1-я передача
1085=2-я передача
1086=3-я передача
1087=Разблокировать
1088=Температура. Пароль
1089=Подключено
1090=Отключено
1091=Сгенерируйте
1092=Время вступления в силу
1093=Время истечения срока действия
1094=Выберите время
1095=Выберите дату
1096=Сгенерируйте
1097=временный пароль скопирован
1098=Очистить пароль?
1099=Время истечения срока действия должно быть позже времени вступления в силу
1100=Способ разблокировки
1101=Это синхронизирует с фактической блокировкой, подтверждаете удаление?
1102=Удалить
1103=Примечание
1104=Примечание не может быть пустым.
1105=Присвоить
1106=Целевая сцена не существует
1107=Выберите сцену
1108=Разблокировать
1109=Всегда включено
1110=Настройка
1111=Автоматизация
1112=Включить режим "Всегда включен"
1113=Отключить режим "Всегда включен"
1114=Редактировать
1115=Режим "Всегда включен" будет выключен в {0}
1116=Условие
1117=Движение
1118=Всегда включен
1119=Блокировка
1120=Пользователь
1121=Способ разблокировки
1122=Отпечаток пальца
1123=Карта
1124=Ключ
1125=Информация
1126=Разблокировать
1127=Сигнал тревоги
1128=Оффлайн
1129=Для первого пользователя, пожалуйста, привяжите пароль блокировки
1130=Пожалуйста, введите пароль администратора
1131=Привязка выполнена успешно
1132=Перейти к личному паролю для разблокировки
1133=Пропустить
1134=Пожалуйста, нарисуйте свой узор
1135=Блокировка будет всегда включена после настройки, подтвердите, чтобы продолжить
1136=Подтвердить
1137=Истечет
1138=Режим "Всегда включен" истечет через {0} часов
1139=Пожалуйста, введите время истечения срока
1140=Время истечения срока не должно превышать 72 часов
1141=Время истечения срока не должно быть менее 1 часа
1142=Не удалось установить, пожалуйста, повторите попытку
1143=Не удается подтвердить идентификатор администратора, пожалуйста, войдите в учетную запись снова
1144=Ваша резиденция переносится в другой аккаунт
1145=Примечание:
1146=1. Все ваши данные о резиденции будут переданы новому пользователю.{0}2. После передачи первоначальный участник будет автоматически {0} отвязан от этой резиденции.{0}3. Новая учетная запись является действительной учетной записью.{0} 4. Учетная запись получателя не может быть такой же{0}, как первоначальная.
1147=Подтвердить
1148=введите учетную запись получателя
1149=Профиль
1150=Подтвердите перенос администратора с {0} на {1}
1151=Учетная запись не существует.
1152=Не удается передать право собственности самому себе
1153=Завершить
1154=Передача пользователю, пожалуйста, подождите…
1155={0} стал администратором резиденции
1156=Данные о резиденции будут удалены из вашей учетной записи
1157=Не удалось выполнить передачу
1158=Пожалуйста, попробуйте еще раз
1159=Передача полномочий администратора
1160=Ваши полномочия администратора передаются другим участникам
1161=1.Ваши данные (облачные данные) резиденции будут{0} переданы новому администратору{0}2.Ваши данные будут заменены данными целевого участника {0}, и ваше разрешение будет изменено на целевого участника {0}
1162=Подтвердить
1163=Нет участников для выбора
1164=Подтвердите передачу полномочий администратора с {0} на {1}
1165=Успешная передача
1166=Не удается выполнить передачу
1167=Передача прошла успешно, ваши разрешения станут доступными для участников
4000=Видеодомофон
4001=Запись вызова
4002=*Облачные записи хранятся только в течение 30 дней
4003=Звонок в дверь
4004=Отвечено
4005=Разблокировано
4006=год
4007=От
4008=Вызов
4009=Разблокирован
4010=Пропущено
4011=Отклонено
4012=Параметры конфигурации неверны!
4013=QR-код контроля доступа
4014=Временный пароль
5000=Музыка
5001=Группа
5002=Настройка
5003=Общая информация
5004=Медиаплеер
5005=Bluetooth
5006=Регион
5007=Список песен
5008=Мои любимые
5009=Мой список
5010=Выберите источник
5011=Локальный
5012=USB
5013=Онлайн-радио
5014=Музыка QQ
5015=Bluetooth
5016=Линейный вход
5017=Изменить название
5018=Одиночный
5019=Воспроизвести в случайном порядке
5020=Список
5021=Сместился на
5022=Отмена
5023=Удалить
5024=Редактировать
5025=Название списка совпадает.
5026=Название списка пустое.
5027=Пожалуйста, введите название списка.
5028=Добавить новый список
5029=Подсказка
5030=Удалить папку или нет?
5031=Подтвердить
5032=Название пустое
5033=Добавлено в список песен
5034=Радио
5035=Выберите группу
5036=Воспроизвести
5037=Выберите не менее 2-х медиаплееров
5038=Не удается выбрать 2 или более 2-х основных медиаплееров, чтобы стать группой
5039=Не выбран медиаплеер
5040=Выберите для удаления медиаплеера
5041=Не выбран для удаления медиаплеера
5042=Настройка…
5043=Удаление…
5044=Громкость
5045=Основная громкость
5046=Регулировка громкости
5047=Сервис"QQ music" не установлен на вашем мобильном телефоне, пожалуйста, перейдите в центр приложений.
6000=Нормальный
6001=Состояние устройства
6002=шт
6003=Текущее устройство ИК-управления
6004=Добавлен пульт дистанционного управления
6005=Кондиционирование
6006=ТВ
6007=Вентилятор
6008=Телевизионная приставка
6009=DVD
6010=Проектор
6011=Пользовательский
6012=ИК-управление
6013=Управление устройствами
6014=Добавить пульт дистанционного управления
6015=Онлайн
6016=Оффлайн
6017=Номер версии
6018=Пожалуйста, введите название пульта дистанционного управления
6019=Напоминание: После создания пульта дистанционного управления его можно найти и использовать в категории Функции-Электрические {\ r\n}
6020=Рекомендуемая кнопка
6021=Пожалуйста, введите название кнопки
6022=Далее
6023=Мощность
6024=Громкость+
6025=Громкость-
6026=Канал+
6027=Канал-
6028=Вверх
6029=Вниз
6030=Влево
6031=Вправо
6032=Отключение звука
6034=Подтверждение
6035=Воспроизведение
6037=Выход
6038=Меню
6039=Пауза
6040=Назад
6041=Стоп
6042=Главная страница
6043=Перемотка вперед
6044=Перемотка назад
6045=Отсчет времени
6046=Скопировать функцию пульта управления
6047=Наведите курсор на центр пульта дистанционного управления и нажмите ту же кнопку
6048=Смарт пульт дистанционного управления
6049=Добавить кнопку
6050=* Длительное нажатие для пользовательской сортировки
6051=Выполнено
6052=Добавлено успешно
6053=Может быть классифицировано -функция-электрическое управление и использование
6054=Классификация
6055=Название пульта дистанционного управления
6056=Регион
6057=Продолжить для  добавления
6058=Электрические
6059=Не удалось добавить
6060=Повторная попытка
6061=Соответствует пульту дистанционного управления
6062=Пожалуйста, нажмите кнопку ниже
6063=Подтвердите, отвечает ли устройство
6064=Сбой управления
6065=Управление выполнено успешно
6066=Включение питания
6067=Режим охлаждения
6068=Скорость ветра
6069=Температура 26℃
6070=Удалить устройство
6071=Изменить название
6072=Подтвердить удаление
6073=Отмена
6074=Количество пультов дистанционного управления не может превышать 10 шт.
6075=Область, в которой находится пульт дистанционного управления:
6076=Информация для редактирования
6077=Обновление версии
6078=Система находится на обслуживании ~ Пожалуйста, повторите попытку позже ~
6079=Не удалось получить данные
6080=Эта функция временно не поддерживается
6081=Выберите марку ИК управления
6082=Встряхивание
6083=Низкая скорость
6084=Переключатель скорости ветра
6085=Высокая скорость
6086=Авто
6087=Температура +
6088=Температура-
6089=Очиститель воздуха
6090=Водонагреватель
6091=Продукт, которого не существует
6092=Устройство не существует
6093=Устройство не подключено к сети
6094=Устройство шлюза не существует
6095=Добавить более 30 кнопок
6000=Переименовать
6001=Пожалуйста, введите название
6002=марка Xiaodu
6003=Распознаватель речи
6004="Для отмены привязки требуется стороннее приложение ", "передать в стороннее приложение"
6005=Отвязать
6006=Умный динамик
6007=Управление содержимым
6008=Не удалось загрузить данные
6009=Не удалось настроить данные
6010="Динамик еще не установлен", "Пожалуйста, перейдите в стороннее приложение, чтобы привязать смарт динамик".
6011=Изменение примечаний не удалось!
6012=Вы хотите отменить привязку?
6013=Отвязывание...
6014=переход в стороннее приложение
6015=Добавить динамики
7000=Создать автоматизацию
7001=Редактировать автоматизацию
7002=Если
7003=Когда это одновременно удовлетворяет следующим условиям
7004=Когда это удовлетворяет одному из следующих условий
7005=Продолжить выполнение
7006=Следующее действие
7007=Способ обработки
7008=Выполнить один раз
7009=Каждый день
7010=Каждую неделю
7011=Каждый месяц
7012=Сохранить
7013=Отправить сообщение
7014=Отправить уведомление
7015=Выберите условие
7016=Момент
7017=Выберите условие времени
7018=Час
7019=Диапазон времени
7020=Час
7021=Минута
7022=Секунда
7023=Отмена
7024=Уверены
7025=*Это должно выполнить заданную вами автоматизацию один раз в течение заданного вами диапазона времени.
7026=Время начала
7027=Время окончания
7028=Функция
7029=Выберите функциональное условие
7030=Весь регион
7031=Все функции
7032=Вкл.
7033=Выкл
7034=Переключатель
7035=Завершено
7036=Добавить выполнение
7037=Понедельник
7038=Вторник
7039=Среда
7040=Четверг
7041=Пятница
7042=Суббота
7043=Воскресенье
7044=Соответствует условию
7045=Настройка
7046=Название
7047=Изменить название
7048=Название автоматизации уже существует.
7049=Удалиять автоматизацию или нет?
7050=Добавить сцену
7051=Задержка
7052=Не удалось сохранить, пожалуйста, попробуйте еще раз.
7053=Не удается удалить, пожалуйста, попробуйте еще раз.
7054=Пауза
7055=Яркость
7056=Процентное соотношение
7057=Режим
7058=Охлаждение
7059=Отопление
7060=Автоматический
7061=Осушение воздуха
7062=Температура
7063=Скорость вентилятора
7064=День
7065=Ночь
7066=Я ушел
7067=Основной
7068=Время
7069=Автоматизация не настроена , пожалуйста, продолжайте настройку.
7070=Здесь ничего нет.
7071=Время начала не было установлено, пожалуйста, установите.
7072=Время окончания не установлено, пожалуйста, установите.
7073=Время начала и время окончания не должны совпадать.
7074=Время начала не должно быть больше времени окончания.
7075=Условие не должно быть пустым.
7076=Цель не должна быть пустой.
7077=Время не было установлено, пожалуйста, установите.
7078=Условие или цель не должны быть пустыми.
7079=Шлюз недоступен
7080=Восход/Закат/Полдень
7081=Восход солнца
7082=Закат
7083=Полдень
7084=Вовремя
7085=С опережением
7086=Минуты
7087=Изменение внешней среды
7088=Выберите условие изменения внешней среды
7089=Изменение температуры наружного воздуха, влажности, PM2.5
7090=Изменение погоды (в черте города)
7091=Изменение внешней среды
7092=Температура выше
7093=Температура ниже
7094=Влажность выше
7095=Влажность ниже
7096=PM2.5 выше, чем
7097=PM2.5 ниже
7098=Солнечный день
7099=Облачно
7100=Непогода
7101=*Пожалуйста, установите значение в этом диапазоне (1 ~ 100).
7102=Заданное значение отсутствует.
7103=Отлично: 0 ~ 35 мкг/м3
7104=Хорошо: 36 ~ 75 мкг/м3
7105=Легкое загрязнение: 76 ~ 115 мкг/м3
7106=Умеренное загрязнение: 116 ~ 150 мкг/м3
7107=Сильное загрязнение: > 150 мкг/м3
7108=Утечка/Отсутствие утечки
7109=Утечка
7110=Нет утечки
7111=Утечка воды / нет утечки воды
7112=Утечка воды
7113=Нет утечки воды
7114=Кто-то/Никто
7115=Кто-то
7116=Никто
7117=Открыть/Закрыть
7118=Вкл.
7119=Закрыть
7120=Функция защиты от снятия
7121=Онлайн
7122=Нет в сети
7123=Качество воздуха
7124=Отлично
7125=Хорошо
7126=Слабо
7127=Отправить уведомление
7128=Содержание уведомления
7129=(в пределах 100 символов)
7130=Выбор учетной записи
7131=уведомление приложения
7132=Автоматизация
7133=Выполнено
7134=Состояние цели
7135=Падение
7136=Температура
7137=Влажность
7138=PM2.5
7139=CO2
7140=TVOC
7141=Превышеное
7142=Опасное
7143=Высокое
7144=Идеальное
7145=Безопасность
7146=Добавить функцию безопасности
7147=Поставить
7148=Снять
7149=Вручную
7150=Смарт
7151=Хороший
7152=Покинуть или прибыть
7153=Покинуть
7154=Прибыть
9000=Пожалуйста, войдите в систему с новым номером мобильного телефона.
9001=Пожалуйста, войдите в систему с новым адресом электронной почты.
9002=Новый номер мобильного телефона изменен
9003=Новый номер мобильного телефона привязан
9004=Новый адрес электронной почты изменен
9005=Новый адрес электронной почты привязан
9006=Код подтверждения может быть отправлен позже, пожалуйста, подождите.
9007=Пожалуйста, подождите.
9008=Назад
9009=Пользователь, который не хочет, чтобы его называли
9010=Новый пароль
9011=Введите новый пароль снова
9012=Согласиться
9013=Соглашение об обслуживании
9014=Правила защиты информации пользователя
9015=и
9016=Пожалуйста, прочтите и согласитесь с Пользовательским Соглашением об обслуживании и Правилами защиты пользовательской информации.
9017=Вы уверены, что хотите выйти из системы?
9018=Пожалуйста, выберите страну/регион.
9019=Обновить сейчас
9020=Не сейчас
9021=Страна/регион
9022=Информация о сервере
9023=Текущий сервер:
9024=*Сервер ссылается на базу данных для облака, без необходимости выполнять передачу данных не рекомендуется.
9025=Если требуется передача данных, пожалуйста, наберите
9026=Введение в функцию
9027=Жалобы
9028=Обновление версии
9029=(пожалуйста, укажите "жалобы" в названии, тогда мы обработаем в приоритетном порядке.)
9030=Копирование выполнено
9031=Здесь ничего нет.
9032=Получить новую версию
9033=Последняя версию
9034=Что я могу для вас сделать?
9035=Проблема с функцией
9036=Проблема со сценой
9037=Поддержка приложения
9038=(Часто задаваемые вопросы)
9039=Совместное использование и функция
9040=Оповещения
9041=Информация о системе
9042=Информационный центр
9043=Пожалуйста, обратите внимание, что номер вашей учетной записи зарегистрирован в другом месте. Если это сделано не вами, пожалуйста, немедленно измените пароль.
9044=Успешно загружено
9045=Не удается загрузить
9046=Успешно изменен
9047=Пароль, который вы изменили, вступил в силу, пожалуйста, войдите в систему снова.
9048=Войдите в систему с паролем номера учетной записи
9049=Неправильный пароль введен много раз, номер учетной записи заблокирован!
9050=Проверка распознания лица
9051=Не удается сохранить идентификатор лица пользователя
9052=Доступно push-уведомление о регистрации.
9053=Push-уведомление о регистрации является ненормальным.
9054=Проверка цифрового пароля
9055=Проверка жестов
9056=Год
9057=Нет региональной функции
9058=Сохранить или нет?
9059=Сейчас нет общего доступа
9060=Разрешение на использование
9061=Найдите свой пароль, нажав на "Забыли пароль", или повторите попытку через {0} минуту.
9062=Проверьте
9063=У вас \еще есть {0} попыток
9064=Смарт динамик
9065=Управление данными
9066=Примечания
9067=Примечания не могут быть пустыми.
9068=Вы хотите отменить привязку?
9069=Уведомление о собственности
10000=Неверный пароль, пожалуйста, войдите в систему еще раз.
10001=Не удается запросить сервер, пожалуйста, повторите попытку позже.
10002=Обслуживание системы, пожалуйста, повторите попытку позже.
10003=Не удается войти в систему, пожалуйста, сначала добавьте резиденцию.
10004=Номер учетной записи существует.
10005=Вы отправляете проверочный код слишком часто, пожалуйста, повторите попытку позже.
10006=Ошибка подписи
10007=Система занята, пожалуйста, повторите попытку позже!
10008=Неверный пароль для входа в систему
10009=Пользователь был отключен.
10010=Ошибка исходного пароля
10011=Дополнительная учетная запись существует.
10012=Дополнительная учетная запись не существует.
10013=Не разрешается добавлять себя в качестве участника.
10014=Текущая резиденция не относится к этой учетной записи.
10015=Название резиденции существует.
10016=Резиденция не существует
10017=Ошибка запроса, ненормальный параметр!
10018=Номер, который вы привязали, является дубликатом.
10019=Пожалуйста, сначала привяжите шлюз.
10020=Шлюз не существует.
10021=Шлюз не доступен.
10022=Устройство находится в оффлайн
10023=Сбой управления
10024=Сцена существует.
10025=Автоматизация существует.
10026=Spk не поддерживает эту функцию.
10027=Spk не поддерживает это функциональное значение.
10028=У вас нет разрешения.
10029=Целевое устройство продублировано
10030=У вас нет разрешения на удаленное управление.
10031=Устройство не должно быть пустым.
10032=У пользователя нет разрешения.
10033=Устройство не существует.
HDL-ON_iOS/ViewController.cs
@@ -54,8 +54,9 @@
                {
                    if (OnAppConfig.Instance.IsLogin)
                    {
                        var um = new UMSdk.HDLUMSDK();
                        um.InitUMSDKWithAppKey("61d56642e0f9bb492bbc3e72", "IOS");
                        //var um = new UMSdk.HDLUMSDK();
                        UMSdk.HDLUMSDK.InitUMSDKWithAppKey("61d56642e0f9bb492bbc3e72", "IOS");
                        break;
                    }
                    System.Threading.Thread.Sleep(1000);
                }
HDL_APP_Project.sln
@@ -16,6 +16,8 @@
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SiriIntents", "SiriIntents\SiriIntents.csproj", "{760980F5-1CD3-4F4F-9134-34D87BECD790}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UMSdk", "UMSdk\UMSdk.csproj", "{5CD1B2DE-1ABD-4B46-8C97-CCB6EA90346A}"
EndProject
Global
    GlobalSection(SharedMSBuildProjectFiles) = preSolution
        HDL_ON\HDL_ON.projitems*{09712674-2a38-407b-b1e2-560b2c352f9a}*SharedItemsImports = 4
@@ -105,6 +107,18 @@
        {760980F5-1CD3-4F4F-9134-34D87BECD790}.Release|iPhone.Build.0 = Release|iPhone
        {760980F5-1CD3-4F4F-9134-34D87BECD790}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
        {760980F5-1CD3-4F4F-9134-34D87BECD790}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
        {5CD1B2DE-1ABD-4B46-8C97-CCB6EA90346A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {5CD1B2DE-1ABD-4B46-8C97-CCB6EA90346A}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {5CD1B2DE-1ABD-4B46-8C97-CCB6EA90346A}.Debug|iPhone.ActiveCfg = Debug|Any CPU
        {5CD1B2DE-1ABD-4B46-8C97-CCB6EA90346A}.Debug|iPhone.Build.0 = Debug|Any CPU
        {5CD1B2DE-1ABD-4B46-8C97-CCB6EA90346A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
        {5CD1B2DE-1ABD-4B46-8C97-CCB6EA90346A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
        {5CD1B2DE-1ABD-4B46-8C97-CCB6EA90346A}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {5CD1B2DE-1ABD-4B46-8C97-CCB6EA90346A}.Release|Any CPU.Build.0 = Release|Any CPU
        {5CD1B2DE-1ABD-4B46-8C97-CCB6EA90346A}.Release|iPhone.ActiveCfg = Release|Any CPU
        {5CD1B2DE-1ABD-4B46-8C97-CCB6EA90346A}.Release|iPhone.Build.0 = Release|Any CPU
        {5CD1B2DE-1ABD-4B46-8C97-CCB6EA90346A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
        {5CD1B2DE-1ABD-4B46-8C97-CCB6EA90346A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
HDL_ON/Common/ApiUtlis.cs
@@ -153,10 +153,10 @@
                        MainPage.Log($"读取房间数据失败:Code:{roomResult.Code}; msg:{roomResult.message}");
                    }
                    //===================设备=======================
                    var deviceResult = Ins.HttpRequest.GetDeviceList();
                    var deviceResult = Ins.HttpRequest.GetDeviceList("30","1");
                    if (deviceResult.Code == StateCode.SUCCESS)
                    {
                        endTime = DateTime.Now.AddSeconds(100);
                        endTime = DateTime.Now.AddSeconds(5);
                        MainPage.Log($"读取设备信息成功");
                        var deviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<DevcieApiPack>(deviceResult.Data.ToString());
@@ -164,6 +164,23 @@
                        {
                            deviceList = new DevcieApiPack();
                        }
                        try
                        {
                            while (deviceList.totalPage != deviceList.pageNo)
                            {
                                var deviceResult2 = Ins.HttpRequest.GetDeviceList("30", Convert.ToInt32(deviceList.pageNo) + 1 + "");
                                if (deviceResult2.Code == StateCode.SUCCESS)
                                {
                                    var deviceList2 = Newtonsoft.Json.JsonConvert.DeserializeObject<DevcieApiPack>(deviceResult.Data.ToString());
                                    deviceList.pageNo = deviceList2.pageNo;
                                    deviceList.list.AddRange(deviceList2.list);
                                }
                            }
                        }catch(Exception ex)
                        {
                        }
                        string delFile = "";
                        if (FunctionList.List.GetDeviceFunctionList().Count > 0)
                        {
HDL_ON/Common/R.cs
@@ -4,7 +4,14 @@
{
    public static class StringId
    {
        /// <summary>
        /// 固件更新
        /// </summary>
        public const int FirmwareUpdate = 528;
        /// <summary>
        /// 支持HomeKit说明
        /// </summary>
        public const int SupportHomeKitNotes = 527;
        /// <summary>
        /// 注销账号
        /// </summary>
HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -153,6 +153,10 @@
                sdm.RefreshToken = UserInfo.Current.RefreshToken;
#endif
            }
            else if (revertObj.Code == StateCode.PasswrodError)
            {
                UserInfo.Current.LastTime = DateTime.MinValue;
            }
            return revertObj.Code;
        }
@@ -1946,15 +1950,18 @@
        /// 获取设备列表
        /// </summary>
        /// <returns></returns>
        public ResponsePackNew GetDeviceList()
        public ResponsePackNew GetDeviceList(string pageSize="",string pageNo ="")
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
            //d.Add("gatewayId", DB_ResidenceData.residenceData.HomeGateway.gatewayId);
            //d.Add("roomId", DB_ResidenceData.residenceData.residecenInfo.RegionID);//可控参数,当需要分页获取,怎么知道分页总数
            //d.Add("searchType", DB_ResidenceData.residenceData.residecenInfo.RegionID);
            //d.Add("pageSize", DB_ResidenceData.residenceData.residecenInfo.RegionID);
            //d.Add("pageNo", DB_ResidenceData.residenceData.residecenInfo.RegionID);
            if (!string.IsNullOrEmpty(pageSize))
            {
                d.Add("pageSize", pageSize);
                d.Add("pageNo", pageNo);
            }
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetDevcieList, requestJson);
HDL_ON/DAL/Server/HttpUtil.cs
@@ -17,8 +17,8 @@
        /// 固定域名,正式环境
        /// 公共域名就近解析
        /// </summary>
        //public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com";
        public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";//mmmm
        public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com";
        //public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";//mmmm
        /// <summary>
        /// RegionMark
        /// </summary>
@@ -305,6 +305,10 @@
                    sdm.RefreshToken = UserInfo.Current.RefreshToken;
#endif
                }
                else if (revertObj.Code == StateCode.PasswrodError)
                {
                    UserInfo.Current.LastTime = DateTime.MinValue;
                }
                return false;
            }
            catch
HDL_ON/DAL/Server/IMessageCommon.cs
@@ -358,6 +358,10 @@
        /// 密码输入错误超过10次,请30分钟后重试!
        /// </summary>
        public const string AccountLoginLock = "10019";
        /// <summary>
        /// 密码错误
        /// </summary>
        public const string PasswrodError = "100008";
        
HDL_ON/Entity/Function/Function.cs
@@ -556,6 +556,13 @@
                SaveFunctionFile();
                if (pack.Code == StateCode.SUCCESS)
                {
                    if (UI.RoomPage.bodyView != null)
                    {
                        Application.RunOnMainThread(() =>
                        {
                            UI.RoomPage.bodyView.ReLoadPage();
                        });
                    }
                }
                else
                {
HDL_ON/Entity/Function/SecurityAlarm.cs
@@ -474,11 +474,11 @@
    {
        /// <summary>
        /// 控制目标类型
        /// 0:设备
        /// 1:场景
        /// 2:自动化
        /// 1:设备
        /// 2:场景
        /// 3:自动化
        /// </summary>
        public string target_type = "0";
        public string target_type = "1";
        /// <summary>
        /// 输出目标的sid
        /// </summary>
@@ -600,7 +600,7 @@
        public string StateText()
        {
            string text = "";
            if (target_type == "0")
            if (target_type == "1")
            {
                switch (spk)
                {
@@ -635,7 +635,7 @@
                        }
                        break;
                }
            }else if(target_type == "1")
            }else if(target_type == "2")
            {
                text = Language.StringByID(StringId.Open);
            }
HDL_ON/Entity/Integratedbrand/IntegratedBrand.cs
@@ -1,4 +1,6 @@
using System;
using Shared;
namespace HDL_ON.Entity
{
    /// <summary>
@@ -42,6 +44,22 @@
        /// 产品名称
        /// </summary>
        public string productName;
        public string productNameEn;
        public string ProductShowName
        {
            get
            {
                if(Language.CurrentLanguage == "Chinese")
                {
                    return productName;
                }
                else
                {
                    return productNameEn;
                }
            }
        }
        /// <summary>
        /// 产品厂商
HDL_ON/HDL_ON.projitems
@@ -486,6 +486,8 @@
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31MusicFileList.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31SongPlay.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\MusicProperty.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AboutOn\SupportHomeKitNotesPage.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AboutOn\FirmwareUpdateView.cs" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="$(MSBuildThisFileDirectory)Entity\Device\" />
HDL_ON/UI/MainPage.cs
@@ -26,7 +26,7 @@
    /// <summary>
    /// 版本号
    /// </summary>
    public static string VersionString = "1.5.2";
    public static string VersionString = "1.5.4";
    ///// <summary>
    ///// 客户端类型
    ///// </summary>
HDL_ON/UI/UI1-Login/LoginPage.cs
@@ -244,12 +244,13 @@
                    //etAccount.Text = "551775569@qq.com";//wcf
                    etAccount.Text = "15626203746";
                    etAccount.Text = "zhangquansongjava@163.com";
                    etAccount.Text = "s.savinov@hdlautomation.ru";
                }
                b = !b;
                etPassword.Text = "123456";
                if(etAccount.Text == "zhangquansongjava@163.com")
                if(etAccount.Text == "s.savinov@hdlautomation.ru")
                {
                    etPassword.Text = "BVVEAAMZ";
                    etPassword.Text = "BWGVOFCJ";
                }
                //etPassword.Text = "Hdl85521566";
                btnLogin.IsSelected = true;
HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -161,23 +161,9 @@
                };
                topView.AddChidren(btnTop);
                btnLinkStateTip = new Button()
                {
                    X = Application.GetRealWidth(16),
                    Y = Application.GetRealHeight(46),
                    Width = Application.GetRealWidth(6),
                    Height = Application.GetRealWidth(6),
                    BackgroundColor = CSS_Color.LinkTipFail,
                    Radius = (uint)Application.GetRealWidth(3),
                };
                topView.AddChidren(btnLinkStateTip);
                //更新链接状态icon颜色
                CheckLinkStatus();//2020-12-22
                btnResidenceName = new Button()
                {
                    X = Application.GetRealWidth(26),
                    X = Application.GetRealWidth(16),
                    Y = Application.GetRealHeight(32),
                    Width = Application.GetRealWidth(300),
                    Height = Application.GetRealHeight(33),
@@ -188,12 +174,25 @@
                    IsBold = true
                };
                topView.AddChidren(btnResidenceName);
                btnLinkStateTip = new Button()
                {
                    //X = Application.GetRealWidth(16),
                    Y = btnResidenceName.Bottom,
                    Height = Application.GetRealWidth(14),
                    BackgroundColor = CSS_Color.LinkTipFail,
                    TextAlignment = TextAlignment.Center,
                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                    TextColor = CSS_Color.MainBackgroundColor,
                };
                topView.AddChidren(btnLinkStateTip);
                //btnLinkStateTip.Width = btnLinkStateTip.GetTextWidth();
                //更新链接状态icon颜色
#if DEBUG
                int msdId = 111;
                btnResidenceName.MouseUpEventHandler = (sender, e) =>
                {
                    Control.Ins.AuthGateway();
                };
#endif
@@ -203,6 +202,8 @@
                    Height = Application.GetRealHeight(32),
                };
                topView.AddChidren(environmentalView);
                CheckLinkStatus();//2020-12-22
                #region 环境数据
                var tempSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorTemperature);
                var humiSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorHumidity);
@@ -1186,6 +1187,7 @@
                {
                    btnIcon.UnSelectedImagePath = "FunctionIcon/Music/MusicIcon.png";
                    btnIcon.SelectedImagePath = "FunctionIcon/Music/MusicOnIcon.png";
                    btnCollection.Visible = false;
                    Button btnPower;
                    btnPower = new Button()
                    {
HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
@@ -199,24 +199,20 @@
            //Dome模式
            if (MainPage.NoLoginMode)
            {
                bodyView.btnLinkStateTip.BackgroundColor = CSS.CSS_Color.MainColor;
                return;
            }
            if (!Control.Ins.GatewayOnline_Local && !Control.Ins.GatewayOnline_Cloud)
            {
                bodyView.btnLinkStateTip.BackgroundColor = CSS.CSS_Color.LinkTipFail;
                bodyView.btnLinkStateTip.TextID = StringId.NetworkAnomaly;
                bodyView.environmentalView.Y = Application.GetRealHeight(8) + btnResidenceName.Bottom;
            }
            else
            {
                if (Control.Ins.GatewayOnline_Local)
                {
                    bodyView.btnLinkStateTip.BackgroundColor = CSS.CSS_Color.LinkTipLocal;
                }
                else
                {
                    bodyView.btnLinkStateTip.BackgroundColor = CSS.CSS_Color.MainColor;
                }
                bodyView.btnLinkStateTip.BackgroundColor = 0x00000000;
                bodyView.btnLinkStateTip.Text = "";
                bodyView.environmentalView.Y = Application.GetRealHeight(1) + btnResidenceName.Bottom;
            }
        }
HDL_ON/UI/UI2/2-Classification/RoomPage.cs
@@ -12,7 +12,7 @@
        /// <summary>
        /// 当前窗体
        /// </summary>
        static FrameLayout bodyView;
        public static RoomPage bodyView;
        /// <summary>
        /// 功能列表集合显示区域
        /// </summary>
@@ -56,10 +56,13 @@
        /// <summary>
        /// 重载界面
        /// </summary>
        void ReLoadPage()
        public void ReLoadPage()
        {
            bodyView.RemoveAll();
            LoadPage();
            if (bodyView != null)
            {
                bodyView.RemoveAll();
                LoadPage();
            }
        }
        public void LoadPage()
HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
@@ -695,7 +695,7 @@
                    btnAutomationTitle.TextSize = CSS_FontSize.TextFontSize;
                    btnSceneTilte.IsSelected = false;
                    btnSceneTilte.TextSize = CSS_FontSize.TextFontSize;
                    contentPageView.PageIndex = 2;
                    contentPageView.PageIndex = contentPageView.ChildrenCount - 1;
                };
            }
        }
HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs
@@ -436,7 +436,10 @@
                        var tempScene = sceneList.Find((obj) => obj.userSceneId == scene.userSceneId);
                        if (tempScene != null)
                        {
                            scene = tempScene;
                            scene.name = tempScene.name;
                            scene.delay = tempScene.delay;
                            scene.roomIds = tempScene.roomIds;
                            scene.functions = tempScene.functions;
                        }
                        Application.RunOnMainThread(() =>
                        {
@@ -839,6 +842,12 @@
            UploadImage(selectImagePath, addSceneImageView, scene, uploadSuccessAction);
        }
        public override void RemoveFromParent()
        {
            backAction();
            base.RemoveFromParent();
        }
        /// <summary>
        /// 完成按钮点击事件
        /// </summary>
@@ -868,7 +877,7 @@
                    }
                    scene.EditScene();
                    FunctionList.List.scenes.Add(scene);
                    backAction();
                    //backAction();
                    this.RemoveFromParent();
                }
                if (btnComplete.TextID == StringId.Del)
@@ -876,7 +885,7 @@
                    Action action = () =>
                    {
                        FunctionList.List.DeleteScene(scene,true);
                        backAction();
                        //backAction();
                        this.RemoveFromParent();
                    };
                    new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.DeleteSceneTip, action);
HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs
@@ -148,7 +148,15 @@
                
                if (temp != null)
                {
                    temp = sceneFunction;
                    temp.delay = sceneFunction.delay;
                    foreach(var attr in sceneFunction.status)
                    {
                        var keva = temp.status.Find((obj) => obj.key == attr.key);
                        if (keva != null)
                        {
                            keva.value = attr.value;
                        }
                    }
                }
                else
                {
HDL_ON/UI/UI2/4-PersonalCenter/AboutOn/AboutOnPage.cs
@@ -184,6 +184,43 @@
            #endregion
            privacyPolicyView.GoAction = privacyPolicyAction;
            CheckIfNeedUpdateAsync();
#if __IOS__
            #region 固件升级
            var firUpdateView = new ListCellView()
            {
                Y = privacyPolicyView.Bottom,
            };
            firUpdateView.BtnTilte.TextID = StringId.FirmwareUpdate;
            bodyView.AddChidren(firUpdateView);
            Action firmwareUpdateAction = () =>
            {
                var mPage = new HDL_ON.UI.UI2.PersonalCenter.AboutOn.FirmwareUpdateView();
                MainPage.BasePageView.AddChidren(mPage);
                mPage.ShowPage();
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            };
            firUpdateView.GoAction = firmwareUpdateAction;
            #endregion
            #region HomeKit支持说明
            var homeKitView = new ListCellView()
            {
                Y = firUpdateView.Bottom,
            };
            bodyView.AddChidren(homeKitView);
            homeKitView.BtnTilte.TextID = StringId.SupportHomeKitNotes;
            Action homeKitSupportViewAction = () => {
                var mPage = new HDL_ON.UI.UI2.PersonalCenter.AboutOn.SupportHomeKitNotesPage();
                MainPage.BasePageView.AddChidren(mPage);
                mPage.ShowPage();
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            };
            homeKitView.GoAction = homeKitSupportViewAction;
            #endregion
#endif
        }
HDL_ON/UI/UI2/4-PersonalCenter/AboutOn/FirmwareUpdateView.cs
New file
@@ -0,0 +1,63 @@
using System;
using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI.UI2.PersonalCenter.AboutOn
{
    public class FirmwareUpdateView : FrameLayout
    {
        FirmwareUpdateView bodyView;
        public FirmwareUpdateView()
        {
            bodyView = this;
        }
        public void ShowPage()
        {
            new TopViewDiv(bodyView, Language.StringByID(StringId.FirmwareUpdate)).LoadTopView();
            var contentView = new VerticalScrolViewLayout()
            {
                X = Application.GetRealWidth(12),
                Y = Application.GetRealHeight(90),
                Height = bodyView.Height,
                BackgroundColor = CSS_Color.MainBackgroundColor,
            };
            bodyView.AddChidren(contentView);
            var waitPage = new Loading();
            bodyView.AddChidren(waitPage);
            waitPage.Start();
            new System.Threading.Thread(() =>
            {
                System.Threading.Thread.Sleep(2000);
                Application.RunOnMainThread(() =>
                {
                    string msg = "";
                    if (Language.CurrentLanguage == "Chinese")
                    {
                        msg = "当前所有设备已经是最新固件版本。";
                    }
                    else
                    {
                        msg = "Currently, all devices have the latest firmware version.";
                    }
                    var msgTv = new Button()
                    {
                        Text = msg,
                        TextColor = CSS_Color.FirstLevelTitleColor,
                        TextSize = CSS_FontSize.SubheadingFontSize,
                        IsMoreLines = true,
                        TextAlignment = TextAlignment.TopLeft
                    };
                    contentView.AddChidren(msgTv);
                    waitPage.Hide();
                    waitPage.RemoveFromParent();
                });
            }).Start();
        }
    }
}
HDL_ON/UI/UI2/4-PersonalCenter/AboutOn/SupportHomeKitNotesPage.cs
New file
@@ -0,0 +1,69 @@
using System;
using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI.UI2.PersonalCenter.AboutOn
{
    public class SupportHomeKitNotesPage : FrameLayout
    {
        SupportHomeKitNotesPage bodyView;
        public SupportHomeKitNotesPage()
        {
            bodyView = this;
        }
        public void ShowPage()
        {
            new TopViewDiv(bodyView, Language.StringByID(StringId.SupportHomeKitNotes)).LoadTopView();
            var contentView = new VerticalScrolViewLayout()
            {
                Y = Application.GetRealHeight(90),
                Height = bodyView.Height ,
                BackgroundColor = CSS_Color.MainBackgroundColor,
            };
            bodyView.AddChidren(contentView);
            string msg = "";
            if (Language.CurrentLanguage == "Chinese")
            {
                msg = "目前HDL平台已支持向苹果应用“家庭”App 添加 HomeKit 配件。" + "\r\n" +
                        "目前支持添加到“家庭”的配件有HDL gateway、HDL light等。" + "\r\n" +
                        "您可以使用 iPhone、iPad 或 iPod touch,按照以下步骤操作,向“家庭”App 添加配件:" + "\r\n" +
                        "1、打开“家庭”App,然后轻点“添加配件” 或“添加”。" + "\r\n" +
                        "2、轻点“添加配件”。" + "\r\n" +
                        "3、使用 iPhone、iPad 或 iPod touch 上的摄像头扫描配件或配件文稿中的八位 HomeKit 代码或二维码。如果您使用的是 iPhone 7 或更新机型,并在您的配件上看到了 NFC 兼容符号,请将您的 iPhone 靠近这个配件以进行添加。" + "\r\n" +
                        "4、在配件出现时轻点它。如果系统询问您要不要“将配件添加到网络”,请轻点“允许”。" + "\r\n" +
                        "5、为配件命名并将配件分配给某个房间,以协助您在“家庭”App 中识别它和使用 Siri 对它进行控制。" + "\r\n" +
                        "6、轻点“下一步”,然后轻点“完成”。";
            }
            else
            {
                msg = "At present, the HDL platform has supported adding homekit accessories to Apple's \"home\" app." + "\r\n" +
                        "At present, HDL gateway, HDL light and other accessories can be added to \"home\"." + "\r\n" +
                        "You can use iPhone, iPad or iPod touch to add accessories to the home app by following these steps: " + "\r\n" +
                        "1.Open the home app and tap add accessories or add." + "\r\n" +
                        "2.Tap add fitting." + "\r\n" +
                        "3.Use the camera on iPhone, iPad or iPod touch to scan the eight digit homekit code or QR code in the accessory or accessory manuscript.If you are using iPhone 7 or later and see the NFC compatibility symbol on your accessory, please put your iPhone close to this accessory to add it." + "\r\n" +
                        "4.Tap the accessory when it appears.If the system asks you whether you want to \"add accessories to the network\", tap \"allow\"." + "\r\n" +
                        "5.Name the accessory and assign it to a room to help you identify it in the home app and use Siri to control it." + "\r\n" +
                        "6.Tap next, then finish.";
            }
            var msgTv = new Button()
            {
                X = Application.GetRealWidth(35),
                Y = Application.GetRealHeight(12),
                Width = Application.GetRealWidth(300),
                IsMoreLines = true,
                Text = msg,
                TextAlignment = TextAlignment.TopLeft,
                TextColor = CSS_Color.TextualColor,
                TextSize = CSS_FontSize.TextFontSize,
            };
            contentView.AddChidren(msgTv);
        }
    }
}
HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/SenesorEnvironment/AddQingpingSensorEnvirTipPage.cs
@@ -29,11 +29,11 @@
            if (Language.CurrentLanguage == "Chinese")
            {
                //设置头部信息
                base.SetTitleText(Language.StringByID(StringId.Add) + device.productName);
                base.SetTitleText(Language.StringByID(StringId.Add) + device.ProductShowName);
            }
            else
            {
                base.SetTitleText(Language.StringByID(StringId.Add) + " " + device.productName);
                base.SetTitleText(Language.StringByID(StringId.Add) + " " + device.ProductShowName);
            }
            //这个界面的背景需要白色
            bodyFrameLayout.BackgroundColor = UI.CSS.CSS_Color.MainBackgroundColor;
HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/SenesorEnvironment/AddSensorEnvironmentPage.cs
@@ -32,11 +32,11 @@
            if (Language.CurrentLanguage == "Chinese")
            {
                //设置头部信息
                base.SetTitleText(Language.StringByID(StringId.Add) + device.productName);
                base.SetTitleText(Language.StringByID(StringId.Add) + device.ProductShowName);
            }
            else
            {
                base.SetTitleText(Language.StringByID(StringId.Add) + " " + device.productName);
                base.SetTitleText(Language.StringByID(StringId.Add) + " " + device.ProductShowName);
            }
            //这个界面的背景需要白色
            bodyFrameLayout.BackgroundColor = UI.CSS.CSS_Color.MainBackgroundColor;
@@ -160,7 +160,7 @@
                        try
                        {
                            var pm = new HttpServerRequest();
                            var pack = pm.IndependentRegister3TyDevcie(integratedDevice.spk, snCode,integratedDevice.productName,pairString);// Language.StringByID(StringId.SensorEnvironment)
                            var pack = pm.IndependentRegister3TyDevcie(integratedDevice.spk, snCode,integratedDevice.ProductShowName, pairString);// Language.StringByID(StringId.SensorEnvironment)
                            if (pack.Code == StateCode.SUCCESS)
                            {
                                //var revData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<IntegratedBrandDevice>>(pack.Data.ToString());
HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/SenesorMegahealth/AddSenesorMegahealthDirection1Page.cs
@@ -31,11 +31,11 @@
            if (Language.CurrentLanguage == "Chinese")
            {
                //设置头部信息
                base.SetTitleText(Language.StringByID(StringId.Add) + device.productName);
                base.SetTitleText(Language.StringByID(StringId.Add) + device.ProductShowName);
            }
            else
            {
                base.SetTitleText(Language.StringByID(StringId.Add) + " " + device.productName);
                base.SetTitleText(Language.StringByID(StringId.Add) + " " + device.ProductShowName);
            }
            //这个界面的背景需要白色
            bodyFrameLayout.BackgroundColor = UI.CSS.CSS_Color.MainBackgroundColor;
HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddDevciePage.cs
@@ -139,7 +139,7 @@
                    TextAlignment = TextAlignment.CenterLeft,
                    TextColor = CSS_Color.FirstLevelTitleColor,
                    TextSize = CSS_FontSize.TextFontSize,
                    Text = device.productName,
                    Text = device.ProductShowName,
                };
                row.AddChidren(btnName);
HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddAlarmDeploymentPage.cs
@@ -657,7 +657,7 @@
                                securityAlarm.output.Remove(delTemp);
                            }
                            outputRow.RemoveFromParent();
                            outputTargetView.Height = Application.GetRealHeight(65 * securityAlarm.output.Count);
                            outputTargetView.Height = Application.GetRealHeight(65 * securityAlarm.output.Count + 50 );
                        };
                        outputRow.SetDelClickeEvent(eventHandler);
                    }
HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddOutputPage.cs
@@ -157,7 +157,7 @@
                tempStatus.Add(new SecurityOutputStatus() { key = FunctionAttributeKey.OnOff, value = "on" });
                allocatedList.Add(new SecurityOutput
                {
                    target_type = "0",
                    target_type = "1",
                    sid = function.sid,
                    status = tempStatus,
                    name = function.name,
@@ -184,7 +184,7 @@
                tempStatus.Add(new SecurityOutputStatus() { key = "value", value = "0" });
                allocatedList.Add(new SecurityOutput
                {
                    target_type = "1",
                    target_type = "2",
                    sid = scene.sid,
                    status = tempStatus,
                    name = scene.name,
@@ -204,20 +204,12 @@
            functionListView.RemoveAll();
            foreach (var function in allocatedList)
            {
                var output = alarm.output.Find((obj) => obj.sid == function.sid);
                if (output == null)
                {
                    output = new SecurityOutput();
                    //{
                    //    status = new List<SecurityOutputStatus> { new SecurityOutputStatus {
                    //             key = FunctionAttributeKey.OnOff,
                    //             value = "on"
                    //        }
                    //    }
                    //};
                    output.sid = function.sid;
                }
                //var output = alarm.output.Find((obj) => obj.sid == function.sid);
                //if (output == null)
                //{
                //    output = new SecurityOutput();
                //    output.sid = function.sid;
                //}
                FrameLayout functionRow = new FrameLayout()
                {
@@ -257,7 +249,7 @@
                    TextAlignment = TextAlignment.CenterRight,
                    TextSize = CSS_FontSize.TextFontSize,
                    TextColor = CSS_Color.PromptingColor1,
                    Text = output.StateText()
                    Text = function.StateText()
                };
                functionRow.AddChidren(btnState);
@@ -275,36 +267,43 @@
                btnChooseIcon.MouseUpEventHandler = (sender, e) => {
                    btnChooseIcon.IsSelected = !btnChooseIcon.IsSelected;
                    var tempLocal = alarm.output.Find((obj) =>
                        obj.sid == output.sid
                        obj.sid == function.sid
                    );
                    if (tempLocal == null && !string.IsNullOrEmpty(output.spk))
                    {
                        ShowStateDialog(output, btnState, btnChooseIcon);
                    }
                    //if (tempLocal == null && !string.IsNullOrEmpty(output.spk))
                    //{
                    //    ShowStateDialog(output, btnState, btnChooseIcon);
                    //}
                    if (btnChooseIcon.IsSelected)
                    {
                        if (tempLocal == null)
                            alarm.output.Add(output);
                            alarm.output.Add(function);
                        ShowStateDialog(function, btnState, btnChooseIcon);
                    }
                    else
                    {
                        if (tempLocal != null)
                        {
                            alarm.output.Remove(output);
                            alarm.output.Remove(function);
                        }
                    }
                };
                btnState.MouseUpEventHandler = (sender, e) =>
                {
                    ShowStateDialog(output, btnState, btnChooseIcon);
                    btnChooseIcon.IsSelected = true;
                    var tempLocal = alarm.output.Find((obj) =>
                        obj.sid == function.sid
                    );
                    if (tempLocal == null)
                        alarm.output.Add(function);
                    ShowStateDialog(function, btnState, btnChooseIcon);
                };
                var localOutput = alarm.output.Find((obj) => obj.sid == output.sid);
                var localOutput = alarm.output.Find((obj) => obj.sid == function.sid);
                if (localOutput != null)
                {
                    btnChooseIcon.IsSelected = true;
                    btnState.Text = output.StateText();
                    btnState.Text = function.StateText();
                }
@@ -394,6 +393,7 @@
                TextID = StringId.Cancel,
                TextColor = CSS_Color.WarningColor,
                IsBold = true,
                TextSize = CSS_FontSize.SubheadingFontSize,
            };
            contentView.AddChidren(btnCancel);
HDL_ON/UI/UI2/FuntionControlView/Electrical/SocketPage.cs
@@ -180,7 +180,7 @@
                    Text = function.GetAttrState("total_electricity"),
                    TextAlignment = TextAlignment.BottomLeft,
                };
                btnTotalElectricity.Width = btnTotalElectricity.GetTextWidth();
                btnTotalElectricity.Width = btnTotalElectricity.GetTextWidth()+ Application.GetRealWidth(5);
                controlView.AddChidren(btnTotalElectricity);
                var btnTotalElectricityUnit = new Button()
                {
HDL_ON/UI/UI2/FuntionControlView/Electrical/SocketPage_InstantaneousValue.cs
@@ -97,45 +97,47 @@
        public static void UpdataView(Function updata)
        {
            if(bodyView!=null)
            if (bodyView != null)
            {
                for (int i = 0; i < bodyView.instantaneousValueView.ChildrenCount; i++)
                Application.RunOnMainThread(() =>
                {
                    var view = bodyView.instantaneousValueView.GetChildren(i);
                    if(null != view.Tag )
                    for (int i = 0; i < bodyView.instantaneousValueView.ChildrenCount; i++)
                    {
                        if (view.GetType() == typeof(InstantaneousValueView))
                        var view = bodyView.instantaneousValueView.GetChildren(i);
                        if (null != view.Tag)
                        {
                           var view2 = view as InstantaneousValueView;
                            switch (view.Tag.ToString())
                            if (view.GetType() == typeof(InstantaneousValueView))
                            {
                                case "active_power":
                                    var attr = updata.GetAttribute("active_power");
                                    if (attr != null)
                                    {
                                        view2.btnValue.Text = attr.curValue.ToString();
                                    }
                                    break;
                                case "voltage":
                                    var attr1 = updata.GetAttribute("voltage");
                                    if (attr1 != null)
                                    {
                                        view2.btnValue.Text = attr1.curValue.ToString();
                                    }
                                    break;
                                case "current":
                                    var attr2 = updata.GetAttribute("current");
                                    if (attr2 != null)
                                    {
                                        view2.btnValue.Text = attr2.curValue.ToString();
                                    }
                                    break;
                                var view2 = view as InstantaneousValueView;
                                switch (view.Tag.ToString())
                                {
                                    case "active_power":
                                        var attr = updata.GetAttribute("active_power");
                                        if (attr != null)
                                        {
                                            view2.btnValue.Text = attr.curValue.ToString();
                                        }
                                        break;
                                    case "voltage":
                                        var attr1 = updata.GetAttribute("voltage");
                                        if (attr1 != null)
                                        {
                                            view2.btnValue.Text = attr1.curValue.ToString();
                                        }
                                        break;
                                    case "current":
                                        var attr2 = updata.GetAttribute("current");
                                        if (attr2 != null)
                                        {
                                            view2.btnValue.Text = attr2.curValue.ToString();
                                        }
                                        break;
                                }
                            }
                        }
                    }
                }
                });
            }
        }
    }
HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs
@@ -243,7 +243,7 @@
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(50),
                Height = Application.GetRealHeight(400),
                Height = Application.GetRealHeight(390),
                Radius = (uint)Application.GetRealWidth(12),
                BorderColor = 0x00000000,
                BorderWidth = 0,
HDL_ON/UI/UI2/FuntionControlView/FoolHeating/FloorHeatingPage.cs
@@ -150,7 +150,10 @@
            var minValue = function.GetAttribute(FunctionAttributeKey.SetTemp).min;
            var maxValue = function.GetAttribute(FunctionAttributeKey.SetTemp).max;
            var progress = (int)Convert.ToDouble(function.GetAttrState(FunctionAttributeKey.SetTemp));
            double progressDouble = 0;
            var ddd = function.GetAttrState(FunctionAttributeKey.SetTemp);
            double.TryParse(ddd,out progressDouble);
            int progress = (int)progressDouble;
            arcBar = new DiyArcSeekBar()
            {
HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs
@@ -123,9 +123,9 @@
                for (int i = 0; i < musicListFunction.Count; i++)
                {
                    var function = musicListFunction[i];
                    var music = A31MusicModel.A31MusicModelList.Find((music) =>
                   (music.functionMusic.deviceId == function.deviceId && function.spk == "music.standard") || (
                     music.functionMusic.deviceId == function.deviceId && function.spk == "av.music")
                    var music = A31MusicModel.A31MusicModelList.Find((obj) =>
                   (obj.functionMusic.deviceId == function.deviceId && function.spk == "music.standard") || (
                     obj.functionMusic.deviceId == function.deviceId && function.spk == "av.music")
                    );
                    if (music == null)
                    {
SiriIntents/SiriIntents.csproj
@@ -36,7 +36,7 @@
    <DefineConstants></DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <CodesignKey>iPhone Developer</CodesignKey>
    <CodesignKey>iPhone Distribution</CodesignKey>
    <MtouchUseLlvm>true</MtouchUseLlvm>
    <MtouchFloat32>true</MtouchFloat32>
    <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
SiriIntentsUI/SiriIntentsUI.csproj
@@ -37,7 +37,7 @@
    <DefineConstants></DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <CodesignKey>iPhone Developer</CodesignKey>
    <CodesignKey>iPhone Distribution</CodesignKey>
    <MtouchUseLlvm>true</MtouchUseLlvm>
    <MtouchFloat32>true</MtouchFloat32>
    <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
UMSdk/ApiDefinition.cs
New file
@@ -0,0 +1,20 @@
using System;
using ObjCRuntime;
using Foundation;
using UIKit;
namespace UMSdk
{
    // @interface HDLUMSDK : NSObject
    [BaseType(typeof(NSObject))]
    [Protocol]
    interface HDLUMSDK
    {
        // +(void)initUMSDKWithAppKey:(NSString *)appKey channel:(NSString *)channel;
        [Static]
        [Export("initUMSDKWithAppKey:channel:")]
        void InitUMSDKWithAppKey(string appKey, string channel);
    }
}
UMSdk/Properties/AssemblyInfo.cs
New file
@@ -0,0 +1,34 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using Foundation;
// This attribute allows you to mark your assemblies as “safe to link”.
// When the attribute is present, the linker—if enabled—will process the assembly
// even if you’re using the “Link SDK assemblies only” option, which is the default for device builds.
[assembly: LinkerSafe]
// Information about this assembly is defined by the following attributes.
// Change them to the values specific to your project.
[assembly: AssemblyTitle("UMSdk")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("UMSdk")]
[assembly: AssemblyCopyright("Copyright ©  2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
// The form "{Major}.{Minor}.*" will automatically update the build and revision,
// and "{Major}.{Minor}.{Build}.*" will update just the revision.
[assembly: AssemblyVersion("1.0.3")]
// The following attributes are used to specify the signing key for the assembly,
// if desired. See the Mono documentation for more information about signing.
//[assembly: AssemblyDelaySign(false)]
//[assembly: AssemblyKeyFile("")]
UMSdk/Structs.cs
New file
@@ -0,0 +1,6 @@
using System;
namespace UMSdk
{
}
UMSdk/UMSdk.csproj
New file
@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectTypeGuids>{8FFB629D-F513-41CE-95D2-7ECE97B6EEEC};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
    <ProjectGuid>{5CD1B2DE-1ABD-4B46-8C97-CCB6EA90346A}</ProjectGuid>
    <TemplateGuid>{b6f3ff35-79b2-4f25-a2fc-60a7cf61013b}</TemplateGuid>
    <OutputType>Library</OutputType>
    <RootNamespace>NativeLibrary</RootNamespace>
    <IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
    <AssemblyName>NativeLibrary</AssemblyName>
    <RestoreProjectStyle>PackageReference</RestoreProjectStyle>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>portable</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug</OutputPath>
    <DefineConstants>DEBUG;</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>portable</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release</OutputPath>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="Xamarin.iOS" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="Resources\" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <ItemGroup>
    <ObjcBindingApiDefinition Include="ApiDefinition.cs" />
  </ItemGroup>
  <ItemGroup>
    <ObjcBindingCoreSource Include="Structs.cs" />
  </ItemGroup>
  <ItemGroup>
    <NativeReference Include="..\..\..\Downloads\HDLUM\HDLUMDemo\HDLUMDemo\HDLUMDemo\UMSDK\UMCommon.framework">
      <Kind>Framework</Kind>
      <SmartLink>False</SmartLink>
    </NativeReference>
    <NativeReference Include="..\DLL\UMeng\libHDLUMSDK.a">
      <Kind>Static</Kind>
      <SmartLink>False</SmartLink>
    </NativeReference>
    <NativeReference Include="..\DLL\UMeng\UMCommon.framework">
      <Kind>Framework</Kind>
      <SmartLink>False</SmartLink>
    </NativeReference>
    <NativeReference Include="..\DLL\UMeng\UMDevice.framework">
      <Kind>Framework</Kind>
      <SmartLink>False</SmartLink>
    </NativeReference>
  </ItemGroup>
  <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.ObjCBinding.CSharp.targets" />
</Project>