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/UMCommonBinary 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/UMCommonBinary 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/UMCommonBinary 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/UMDeviceBinary files differ
DLL/UMeng/libHDLUMSDK.aBinary 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>