From 9c16d3614d9b88c637f967518a329f239fcd3aaf Mon Sep 17 00:00:00 2001
From: lss <316519258@qq.com>
Date: 星期五, 12 六月 2020 09:22:04 +0800
Subject: [PATCH] 2020.06.12

---
 ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs                      |  497 +++++++++++++++-------------
 ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundListForm.cs               |  171 ++++++---
 ZigbeeApp/Shared/DLL/IOS/Shared.IOS.dll                                     |    0 
 ZigbeeApp/ShardLib/ShardLib.csproj                                          |    2 
 ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj                                |   23 
 ZigbeeApp/Shared/DLL/Android/Shared.Droid.dll                               |    0 
 ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundControlForm.cs            |    2 
 ZigbeeApp/Shared/Phone/SmartSound/Util/MyHttpWebResponse.cs                 |   44 ++
 ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundContentForDevice.cs       |    2 
 ZigbeeApp/Shared/Phone/SmartSound/SmartSoundInfo.cs                         |    2 
 ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundContentForDeviceChange.cs |   55 +-
 ZigbeeApp/GateWay.Droid/packages.config                                     |  128 +++---
 ZigbeeApp/Shared/Phone/SmartSound/Widget/SoundRowLayout.cs                  |   44 +-
 ZigbeeApp/Home.Ios/Info.plist                                               |    4 
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs              |    5 
 ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundControlContentForm.cs     |   13 
 16 files changed, 565 insertions(+), 427 deletions(-)

diff --git a/ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj b/ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj
index 3401b54..28aed13 100644
--- a/ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj
+++ b/ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj
@@ -37,10 +37,9 @@
     <MandroidI18n>CJK</MandroidI18n>
     <AndroidTlsProvider>btls</AndroidTlsProvider>
     <AndroidEnableSGenConcurrent>true</AndroidEnableSGenConcurrent>
-    <EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
-    <AndroidSupportedAbis />
     <AndroidDexTool>d8</AndroidDexTool>
     <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
+<AndroidKeyStore></AndroidKeyStore>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugSymbols>true</DebugSymbols>
@@ -56,13 +55,12 @@
     <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
     <AndroidDexTool>d8</AndroidDexTool>
     <AndroidUseAapt2>false</AndroidUseAapt2>
+<AndroidKeyStore>True</AndroidKeyStore>
+<AndroidSigningKeyStore>/Users/hdl/Desktop/HDL Home.keystore</AndroidSigningKeyStore>
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="BouncyCastle.Crypto, Version=1.8.1.0, Culture=neutral, PublicKeyToken=0e99375e54769942">
       <HintPath>..\packages\BouncyCastle.Crypto.dll.1.8.1\lib\BouncyCastle.Crypto.dll</HintPath>
-    </Reference>
-    <Reference Include="FastAndroidCamera, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\packages\FastAndroidCamera.2.0.0\lib\MonoAndroid403\FastAndroidCamera.dll</HintPath>
     </Reference>
     <Reference Include="Microsoft.AppCenter, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\packages\Microsoft.AppCenter.1.14.0\lib\MonoAndroid403\Microsoft.AppCenter.dll</HintPath>
@@ -113,7 +111,7 @@
       <HintPath>..\packages\MQTTnet.2.4.0\lib\netstandard1.3\MQTTnet.Core.dll</HintPath>
     </Reference>
     <Reference Include="MQTTnet">
-      <HintPath>..\packages\MQTTnet.3.0.8\lib\netstandard2.0\MQTTnet.dll</HintPath>
+      <HintPath>..\packages\MQTTnet.3.0.11\lib\netstandard2.1\MQTTnet.dll</HintPath>
     </Reference>
     <Reference Include="BouncyCastle.Crypto">
       <HintPath>..\packages\BouncyCastle.Crypto.dll.1.8.1\lib\BouncyCastle.Crypto.dll</HintPath>
@@ -181,13 +179,16 @@
     <Reference Include="Xamarin.Android.Support.Vector.Drawable">
       <HintPath>..\Shared\DLL\Android\Xamarin.Android.Support.Vector.Drawable.dll</HintPath>
     </Reference>
-    <Reference Include="ZXing.Net.Mobile.Core, Version=2.4.1.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="FastAndroidCamera">
+      <HintPath>..\packages\FastAndroidCamera.2.0.0\lib\MonoAndroid403\FastAndroidCamera.dll</HintPath>
+    </Reference>
+    <Reference Include="ZXing.Net.Mobile.Core">
       <HintPath>..\packages\ZXing.Net.Mobile.2.4.1\lib\MonoAndroid71\ZXing.Net.Mobile.Core.dll</HintPath>
     </Reference>
-    <Reference Include="zxing.portable, Version=0.16.2.0, Culture=neutral, PublicKeyToken=830ae994e36ac27d, processorArchitecture=MSIL">
+    <Reference Include="zxing.portable">
       <HintPath>..\packages\ZXing.Net.Mobile.2.4.1\lib\MonoAndroid71\zxing.portable.dll</HintPath>
     </Reference>
-    <Reference Include="ZXingNetMobile, Version=2.4.1.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="ZXingNetMobile">
       <HintPath>..\packages\ZXing.Net.Mobile.2.4.1\lib\MonoAndroid71\ZXingNetMobile.dll</HintPath>
     </Reference>
   </ItemGroup>
@@ -1197,6 +1198,10 @@
       <Project>{47eff987-3192-4a56-a463-a940f245ff7d}</Project>
       <Name>DroidLib</Name>
     </ProjectReference>
+    <ProjectReference Include="..\ShardLib\ShardLib.csproj">
+      <Project>{FB4A45BC-A09B-48F9-BE46-2CCA96F57749}</Project>
+      <Name>ShardLib</Name>
+    </ProjectReference>
   </ItemGroup>
   <ItemGroup>
     <AndroidAsset Include="Assets\Phone\Item\MessageManagement.png" />
diff --git a/ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs b/ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs
index 012ca3c..9942dbc 100644
--- a/ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs
+++ b/ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs
@@ -2,7 +2,6 @@
 //------------------------------------------------------------------------------
 // <auto-generated>
 //     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
 //
 //     Changes to this file may cause incorrect behavior and will be lost if
 //     the code is regenerated.
@@ -15,7 +14,7 @@
 {
 	
 	
-	[System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
+	[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
 	public partial class Resource
 	{
 		
@@ -3003,6 +3002,12 @@
 			// aapt resource value: 0x7f090028
 			public const int CTRL = 2131296296;
 			
+			// aapt resource value: 0x7f09008e
+			public const int Custom = 2131296398;
+			
+			// aapt resource value: 0x7f09008d
+			public const int CustomLabel = 2131296397;
+			
 			// aapt resource value: 0x7f090054
 			public const int FILL = 2131296340;
 			
@@ -3024,8 +3029,23 @@
 			// aapt resource value: 0x7f090051
 			public const int MatchLayout = 2131296337;
 			
+			// aapt resource value: 0x7f090088
+			public const int Notice = 2131296392;
+			
+			// aapt resource value: 0x7f09008c
+			public const int Password = 2131296396;
+			
+			// aapt resource value: 0x7f09008b
+			public const int PasswordLabel = 2131296395;
+			
 			// aapt resource value: 0x7f09002b
 			public const int SHIFT = 2131296299;
+			
+			// aapt resource value: 0x7f09008a
+			public const int SSID = 2131296394;
+			
+			// aapt resource value: 0x7f090089
+			public const int SSIDLabel = 2131296393;
 			
 			// aapt resource value: 0x7f090056
 			public const int STROKE = 2131296342;
@@ -3039,8 +3059,8 @@
 			// aapt resource value: 0x7f090053
 			public const int Translate = 2131296339;
 			
-			// aapt resource value: 0x7f0900c0
-			public const int action0 = 2131296448;
+			// aapt resource value: 0x7f0900cb
+			public const int action0 = 2131296459;
 			
 			// aapt resource value: 0x7f090079
 			public const int action_bar = 2131296377;
@@ -3063,17 +3083,17 @@
 			// aapt resource value: 0x7f090057
 			public const int action_bar_title = 2131296343;
 			
-			// aapt resource value: 0x7f0900bd
-			public const int action_container = 2131296445;
+			// aapt resource value: 0x7f0900c8
+			public const int action_container = 2131296456;
 			
 			// aapt resource value: 0x7f09007a
 			public const int action_context_bar = 2131296378;
 			
-			// aapt resource value: 0x7f0900c4
-			public const int action_divider = 2131296452;
+			// aapt resource value: 0x7f0900cf
+			public const int action_divider = 2131296463;
 			
-			// aapt resource value: 0x7f0900be
-			public const int action_image = 2131296446;
+			// aapt resource value: 0x7f0900c9
+			public const int action_image = 2131296457;
 			
 			// aapt resource value: 0x7f090003
 			public const int action_menu_divider = 2131296259;
@@ -3090,11 +3110,11 @@
 			// aapt resource value: 0x7f090059
 			public const int action_mode_close_button = 2131296345;
 			
-			// aapt resource value: 0x7f0900bf
-			public const int action_text = 2131296447;
+			// aapt resource value: 0x7f0900ca
+			public const int action_text = 2131296458;
 			
-			// aapt resource value: 0x7f0900cd
-			public const int actions = 2131296461;
+			// aapt resource value: 0x7f0900d8
+			public const int actions = 2131296472;
 			
 			// aapt resource value: 0x7f09005a
 			public const int activity_chooser_view_content = 2131296346;
@@ -3126,17 +3146,17 @@
 			// aapt resource value: 0x7f090032
 			public const int bottom = 2131296306;
 			
-			// aapt resource value: 0x7f0900a8
-			public const int btnCancel = 2131296424;
+			// aapt resource value: 0x7f0900b3
+			public const int btnCancel = 2131296435;
 			
-			// aapt resource value: 0x7f0900aa
-			public const int btnSubmit = 2131296426;
+			// aapt resource value: 0x7f0900b5
+			public const int btnSubmit = 2131296437;
 			
 			// aapt resource value: 0x7f090060
 			public const int buttonPanel = 2131296352;
 			
-			// aapt resource value: 0x7f0900c1
-			public const int cancel_action = 2131296449;
+			// aapt resource value: 0x7f0900cc
+			public const int cancel_action = 2131296460;
 			
 			// aapt resource value: 0x7f09003a
 			public const int center = 2131296314;
@@ -3150,8 +3170,8 @@
 			// aapt resource value: 0x7f090070
 			public const int checkbox = 2131296368;
 			
-			// aapt resource value: 0x7f0900c9
-			public const int chronometer = 2131296457;
+			// aapt resource value: 0x7f0900d4
+			public const int chronometer = 2131296468;
 			
 			// aapt resource value: 0x7f090043
 			public const int clip_horizontal = 2131296323;
@@ -3162,20 +3182,20 @@
 			// aapt resource value: 0x7f09002e
 			public const int collapseActionView = 2131296302;
 			
-			// aapt resource value: 0x7f09008e
-			public const int container = 2131296398;
+			// aapt resource value: 0x7f090099
+			public const int container = 2131296409;
 			
-			// aapt resource value: 0x7f0900d9
-			public const int contentFrame = 2131296473;
+			// aapt resource value: 0x7f0900e4
+			public const int contentFrame = 2131296484;
 			
 			// aapt resource value: 0x7f090063
 			public const int contentPanel = 2131296355;
 			
-			// aapt resource value: 0x7f0900ac
-			public const int content_container = 2131296428;
+			// aapt resource value: 0x7f0900b7
+			public const int content_container = 2131296439;
 			
-			// aapt resource value: 0x7f09008f
-			public const int coordinator = 2131296399;
+			// aapt resource value: 0x7f09009a
+			public const int coordinator = 2131296410;
 			
 			// aapt resource value: 0x7f09006a
 			public const int custom = 2131296362;
@@ -3183,8 +3203,8 @@
 			// aapt resource value: 0x7f090069
 			public const int customPanel = 2131296361;
 			
-			// aapt resource value: 0x7f0900b8
-			public const int day = 2131296440;
+			// aapt resource value: 0x7f0900c3
+			public const int day = 2131296451;
 			
 			// aapt resource value: 0x7f090077
 			public const int decor_content_parent = 2131296375;
@@ -3192,23 +3212,23 @@
 			// aapt resource value: 0x7f09005d
 			public const int default_activity_button = 2131296349;
 			
-			// aapt resource value: 0x7f090089
-			public const int description = 2131296393;
+			// aapt resource value: 0x7f090094
+			public const int description = 2131296404;
 			
-			// aapt resource value: 0x7f090091
-			public const int design_bottom_sheet = 2131296401;
+			// aapt resource value: 0x7f09009c
+			public const int design_bottom_sheet = 2131296412;
 			
-			// aapt resource value: 0x7f090098
-			public const int design_menu_item_action_area = 2131296408;
+			// aapt resource value: 0x7f0900a3
+			public const int design_menu_item_action_area = 2131296419;
 			
-			// aapt resource value: 0x7f090097
-			public const int design_menu_item_action_area_stub = 2131296407;
+			// aapt resource value: 0x7f0900a2
+			public const int design_menu_item_action_area_stub = 2131296418;
 			
-			// aapt resource value: 0x7f090096
-			public const int design_menu_item_text = 2131296406;
+			// aapt resource value: 0x7f0900a1
+			public const int design_menu_item_text = 2131296417;
 			
-			// aapt resource value: 0x7f090095
-			public const int design_navigation_view = 2131296405;
+			// aapt resource value: 0x7f0900a0
+			public const int design_navigation_view = 2131296416;
 			
 			// aapt resource value: 0x7f090015
 			public const int disableHome = 2131296277;
@@ -3219,8 +3239,8 @@
 			// aapt resource value: 0x7f090025
 			public const int end = 2131296293;
 			
-			// aapt resource value: 0x7f0900cf
-			public const int end_padder = 2131296463;
+			// aapt resource value: 0x7f0900da
+			public const int end_padder = 2131296474;
 			
 			// aapt resource value: 0x7f090034
 			public const int enterAlways = 2131296308;
@@ -3246,8 +3266,8 @@
 			// aapt resource value: 0x7f09003d
 			public const int fill_vertical = 2131296317;
 			
-			// aapt resource value: 0x7f09008a
-			public const int fingerprint_icon = 2131296394;
+			// aapt resource value: 0x7f090095
+			public const int fingerprint_icon = 2131296405;
 			
 			// aapt resource value: 0x7f090049
 			public const int @fixed = 2131296329;
@@ -3255,56 +3275,56 @@
 			// aapt resource value: 0x7f09004d
 			public const int forever = 2131296333;
 			
-			// aapt resource value: 0x7f09009d
-			public const int gd_btn_back = 2131296413;
+			// aapt resource value: 0x7f0900a8
+			public const int gd_btn_back = 2131296424;
 			
-			// aapt resource value: 0x7f0900a6
-			public const int gd_btn_myLocation = 2131296422;
-			
-			// aapt resource value: 0x7f0900a5
-			public const int gd_btn_save = 2131296421;
-			
-			// aapt resource value: 0x7f0900a2
-			public const int gd_img_search_delete = 2131296418;
-			
-			// aapt resource value: 0x7f0900a4
-			public const int gd_ll_myhome = 2131296420;
-			
-			// aapt resource value: 0x7f0900a0
-			public const int gd_ll_search = 2131296416;
-			
-			// aapt resource value: 0x7f09009f
-			public const int gd_mapView = 2131296415;
-			
-			// aapt resource value: 0x7f09009c
-			public const int gd_rl_topview = 2131296412;
-			
-			// aapt resource value: 0x7f09009e
-			public const int gd_tv_activity_title = 2131296414;
-			
-			// aapt resource value: 0x7f0900a3
-			public const int gd_tv_radius = 2131296419;
-			
-			// aapt resource value: 0x7f0900a1
-			public const int gd_tv_search_title = 2131296417;
-			
-			// aapt resource value: 0x7f09009a
-			public const int hdl_gallery_rootView = 2131296410;
-			
-			// aapt resource value: 0x7f09009b
-			public const int hdl_gallery_viewPager = 2131296411;
-			
-			// aapt resource value: 0x7f0900ae
-			public const int hdl_options1 = 2131296430;
-			
-			// aapt resource value: 0x7f0900af
-			public const int hdl_options2 = 2131296431;
+			// aapt resource value: 0x7f0900b1
+			public const int gd_btn_myLocation = 2131296433;
 			
 			// aapt resource value: 0x7f0900b0
-			public const int hdl_options3 = 2131296432;
+			public const int gd_btn_save = 2131296432;
 			
 			// aapt resource value: 0x7f0900ad
-			public const int hdl_pickerview_ll = 2131296429;
+			public const int gd_img_search_delete = 2131296429;
+			
+			// aapt resource value: 0x7f0900af
+			public const int gd_ll_myhome = 2131296431;
+			
+			// aapt resource value: 0x7f0900ab
+			public const int gd_ll_search = 2131296427;
+			
+			// aapt resource value: 0x7f0900aa
+			public const int gd_mapView = 2131296426;
+			
+			// aapt resource value: 0x7f0900a7
+			public const int gd_rl_topview = 2131296423;
+			
+			// aapt resource value: 0x7f0900a9
+			public const int gd_tv_activity_title = 2131296425;
+			
+			// aapt resource value: 0x7f0900ae
+			public const int gd_tv_radius = 2131296430;
+			
+			// aapt resource value: 0x7f0900ac
+			public const int gd_tv_search_title = 2131296428;
+			
+			// aapt resource value: 0x7f0900a5
+			public const int hdl_gallery_rootView = 2131296421;
+			
+			// aapt resource value: 0x7f0900a6
+			public const int hdl_gallery_viewPager = 2131296422;
+			
+			// aapt resource value: 0x7f0900b9
+			public const int hdl_options1 = 2131296441;
+			
+			// aapt resource value: 0x7f0900ba
+			public const int hdl_options2 = 2131296442;
+			
+			// aapt resource value: 0x7f0900bb
+			public const int hdl_options3 = 2131296443;
+			
+			// aapt resource value: 0x7f0900b8
+			public const int hdl_pickerview_ll = 2131296440;
 			
 			// aapt resource value: 0x7f090005
 			public const int home = 2131296261;
@@ -3312,14 +3332,14 @@
 			// aapt resource value: 0x7f090016
 			public const int homeAsUp = 2131296278;
 			
-			// aapt resource value: 0x7f0900b9
-			public const int hour = 2131296441;
+			// aapt resource value: 0x7f0900c4
+			public const int hour = 2131296452;
 			
 			// aapt resource value: 0x7f09005f
 			public const int icon = 2131296351;
 			
-			// aapt resource value: 0x7f0900ce
-			public const int icon_group = 2131296462;
+			// aapt resource value: 0x7f0900d9
+			public const int icon_group = 2131296473;
 			
 			// aapt resource value: 0x7f09002f
 			public const int ifRoom = 2131296303;
@@ -3327,8 +3347,8 @@
 			// aapt resource value: 0x7f09005c
 			public const int image = 2131296348;
 			
-			// aapt resource value: 0x7f0900ca
-			public const int info = 2131296458;
+			// aapt resource value: 0x7f0900d5
+			public const int info = 2131296469;
 			
 			// aapt resource value: 0x7f09004e
 			public const int italic = 2131296334;
@@ -3336,8 +3356,8 @@
 			// aapt resource value: 0x7f090000
 			public const int item_touch_helper_previous_elevation = 2131296256;
 			
-			// aapt resource value: 0x7f09008d
-			public const int largeLabel = 2131296397;
+			// aapt resource value: 0x7f090098
+			public const int largeLabel = 2131296408;
 			
 			// aapt resource value: 0x7f09003e
 			public const int left = 2131296318;
@@ -3354,35 +3374,35 @@
 			// aapt resource value: 0x7f09005e
 			public const int list_item = 2131296350;
 			
-			// aapt resource value: 0x7f0900db
-			public const int masked = 2131296475;
+			// aapt resource value: 0x7f0900e6
+			public const int masked = 2131296486;
 			
-			// aapt resource value: 0x7f0900c3
-			public const int media_actions = 2131296451;
+			// aapt resource value: 0x7f0900ce
+			public const int media_actions = 2131296462;
 			
-			// aapt resource value: 0x7f0900d5
-			public const int message = 2131296469;
+			// aapt resource value: 0x7f0900e0
+			public const int message = 2131296480;
 			
 			// aapt resource value: 0x7f090026
 			public const int middle = 2131296294;
 			
-			// aapt resource value: 0x7f0900ba
-			public const int min = 2131296442;
+			// aapt resource value: 0x7f0900c5
+			public const int min = 2131296453;
 			
 			// aapt resource value: 0x7f090048
 			public const int mini = 2131296328;
 			
-			// aapt resource value: 0x7f0900b7
-			public const int month = 2131296439;
+			// aapt resource value: 0x7f0900c2
+			public const int month = 2131296450;
 			
 			// aapt resource value: 0x7f09001c
 			public const int multiply = 2131296284;
 			
-			// aapt resource value: 0x7f0900bc
-			public const int myButton = 2131296444;
+			// aapt resource value: 0x7f0900c7
+			public const int myButton = 2131296455;
 			
-			// aapt resource value: 0x7f090094
-			public const int navigation_header_container = 2131296404;
+			// aapt resource value: 0x7f09009f
+			public const int navigation_header_container = 2131296415;
 			
 			// aapt resource value: 0x7f090030
 			public const int never = 2131296304;
@@ -3393,29 +3413,29 @@
 			// aapt resource value: 0x7f090013
 			public const int normal = 2131296275;
 			
-			// aapt resource value: 0x7f0900cc
-			public const int notification_background = 2131296460;
+			// aapt resource value: 0x7f0900d7
+			public const int notification_background = 2131296471;
 			
-			// aapt resource value: 0x7f0900c6
-			public const int notification_main_column = 2131296454;
+			// aapt resource value: 0x7f0900d1
+			public const int notification_main_column = 2131296465;
 			
-			// aapt resource value: 0x7f0900c5
-			public const int notification_main_column_container = 2131296453;
+			// aapt resource value: 0x7f0900d0
+			public const int notification_main_column_container = 2131296464;
 			
-			// aapt resource value: 0x7f0900b2
-			public const int options1 = 2131296434;
+			// aapt resource value: 0x7f0900bd
+			public const int options1 = 2131296445;
 			
-			// aapt resource value: 0x7f0900b3
-			public const int options2 = 2131296435;
+			// aapt resource value: 0x7f0900be
+			public const int options2 = 2131296446;
 			
-			// aapt resource value: 0x7f0900b4
-			public const int options3 = 2131296436;
+			// aapt resource value: 0x7f0900bf
+			public const int options3 = 2131296447;
 			
-			// aapt resource value: 0x7f0900b1
-			public const int optionspicker = 2131296433;
+			// aapt resource value: 0x7f0900bc
+			public const int optionspicker = 2131296444;
 			
-			// aapt resource value: 0x7f0900ab
-			public const int outmost_container = 2131296427;
+			// aapt resource value: 0x7f0900b6
+			public const int outmost_container = 2131296438;
 			
 			// aapt resource value: 0x7f090041
 			public const int parallax = 2131296321;
@@ -3438,14 +3458,14 @@
 			// aapt resource value: 0x7f09003f
 			public const int right = 2131296319;
 			
-			// aapt resource value: 0x7f0900cb
-			public const int right_icon = 2131296459;
+			// aapt resource value: 0x7f0900d6
+			public const int right_icon = 2131296470;
 			
-			// aapt resource value: 0x7f0900c7
-			public const int right_side = 2131296455;
+			// aapt resource value: 0x7f0900d2
+			public const int right_side = 2131296466;
 			
-			// aapt resource value: 0x7f0900a7
-			public const int rv_topbar = 2131296423;
+			// aapt resource value: 0x7f0900b2
+			public const int rv_topbar = 2131296434;
 			
 			// aapt resource value: 0x7f09001d
 			public const int screen = 2131296285;
@@ -3495,8 +3515,8 @@
 			// aapt resource value: 0x7f090086
 			public const int search_voice_btn = 2131296390;
 			
-			// aapt resource value: 0x7f0900bb
-			public const int second = 2131296443;
+			// aapt resource value: 0x7f0900c6
+			public const int second = 2131296454;
 			
 			// aapt resource value: 0x7f090087
 			public const int select_dialog_listview = 2131296391;
@@ -3513,14 +3533,14 @@
 			// aapt resource value: 0x7f09001a
 			public const int showTitle = 2131296282;
 			
-			// aapt resource value: 0x7f09008c
-			public const int smallLabel = 2131296396;
+			// aapt resource value: 0x7f090097
+			public const int smallLabel = 2131296407;
 			
-			// aapt resource value: 0x7f090093
-			public const int snackbar_action = 2131296403;
+			// aapt resource value: 0x7f09009e
+			public const int snackbar_action = 2131296414;
 			
-			// aapt resource value: 0x7f090092
-			public const int snackbar_text = 2131296402;
+			// aapt resource value: 0x7f09009d
+			public const int snackbar_text = 2131296413;
 			
 			// aapt resource value: 0x7f090038
 			public const int snap = 2131296312;
@@ -3540,29 +3560,41 @@
 			// aapt resource value: 0x7f090020
 			public const int src_over = 2131296288;
 			
-			// aapt resource value: 0x7f0900d0
-			public const int srl_classics_arrow = 2131296464;
+			// aapt resource value: 0x7f0900db
+			public const int srl_classics_arrow = 2131296475;
 			
-			// aapt resource value: 0x7f0900d3
-			public const int srl_classics_center = 2131296467;
+			// aapt resource value: 0x7f0900de
+			public const int srl_classics_center = 2131296478;
 			
-			// aapt resource value: 0x7f0900d2
-			public const int srl_classics_progress = 2131296466;
+			// aapt resource value: 0x7f0900dd
+			public const int srl_classics_progress = 2131296477;
 			
-			// aapt resource value: 0x7f0900d1
-			public const int srl_classics_title = 2131296465;
+			// aapt resource value: 0x7f0900dc
+			public const int srl_classics_title = 2131296476;
 			
-			// aapt resource value: 0x7f0900d4
-			public const int srl_classics_update = 2131296468;
+			// aapt resource value: 0x7f0900df
+			public const int srl_classics_update = 2131296479;
 			
 			// aapt resource value: 0x7f090040
 			public const int start = 2131296320;
 			
-			// aapt resource value: 0x7f09008b
-			public const int status = 2131296395;
+			// aapt resource value: 0x7f09008f
+			public const int startV1 = 2131296399;
 			
-			// aapt resource value: 0x7f0900c2
-			public const int status_bar_latest_event_content = 2131296450;
+			// aapt resource value: 0x7f090091
+			public const int startV1V4 = 2131296401;
+			
+			// aapt resource value: 0x7f090090
+			public const int startV4 = 2131296400;
+			
+			// aapt resource value: 0x7f090096
+			public const int status = 2131296406;
+			
+			// aapt resource value: 0x7f0900cd
+			public const int status_bar_latest_event_content = 2131296461;
+			
+			// aapt resource value: 0x7f090092
+			public const int stop = 2131296402;
 			
 			// aapt resource value: 0x7f090073
 			public const int submenuarrow = 2131296371;
@@ -3570,8 +3602,8 @@
 			// aapt resource value: 0x7f090084
 			public const int submit_area = 2131296388;
 			
-			// aapt resource value: 0x7f090088
-			public const int subtitle = 2131296392;
+			// aapt resource value: 0x7f090093
+			public const int subtitle = 2131296403;
 			
 			// aapt resource value: 0x7f090014
 			public const int tabMode = 2131296276;
@@ -3588,8 +3620,8 @@
 			// aapt resource value: 0x7f090066
 			public const int textSpacerNoTitle = 2131296358;
 			
-			// aapt resource value: 0x7f090099
-			public const int text_input_password_toggle = 2131296409;
+			// aapt resource value: 0x7f0900a4
+			public const int text_input_password_toggle = 2131296420;
 			
 			// aapt resource value: 0x7f09000a
 			public const int textinput_counter = 2131296266;
@@ -3597,11 +3629,11 @@
 			// aapt resource value: 0x7f09000b
 			public const int textinput_error = 2131296267;
 			
-			// aapt resource value: 0x7f0900c8
-			public const int time = 2131296456;
+			// aapt resource value: 0x7f0900d3
+			public const int time = 2131296467;
 			
-			// aapt resource value: 0x7f0900b5
-			public const int timepicker = 2131296437;
+			// aapt resource value: 0x7f0900c0
+			public const int timepicker = 2131296448;
 			
 			// aapt resource value: 0x7f090011
 			public const int title = 2131296273;
@@ -3618,20 +3650,20 @@
 			// aapt resource value: 0x7f09006b
 			public const int topPanel = 2131296363;
 			
-			// aapt resource value: 0x7f090090
-			public const int touch_outside = 2131296400;
+			// aapt resource value: 0x7f09009b
+			public const int touch_outside = 2131296411;
 			
-			// aapt resource value: 0x7f0900a9
-			public const int tvTitle = 2131296425;
+			// aapt resource value: 0x7f0900b4
+			public const int tvTitle = 2131296436;
 			
-			// aapt resource value: 0x7f0900d7
-			public const int tv_zxing_back = 2131296471;
+			// aapt resource value: 0x7f0900e2
+			public const int tv_zxing_back = 2131296482;
 			
-			// aapt resource value: 0x7f0900d8
-			public const int tv_zxing_flash = 2131296472;
+			// aapt resource value: 0x7f0900e3
+			public const int tv_zxing_flash = 2131296483;
 			
-			// aapt resource value: 0x7f0900d6
-			public const int tv_zxing_scan = 2131296470;
+			// aapt resource value: 0x7f0900e1
+			public const int tv_zxing_scan = 2131296481;
 			
 			// aapt resource value: 0x7f090022
 			public const int uniform = 2131296290;
@@ -3645,8 +3677,8 @@
 			// aapt resource value: 0x7f09000c
 			public const int view_offset_helper = 2131296268;
 			
-			// aapt resource value: 0x7f0900da
-			public const int visible = 2131296474;
+			// aapt resource value: 0x7f0900e5
+			public const int visible = 2131296485;
 			
 			// aapt resource value: 0x7f090031
 			public const int withText = 2131296305;
@@ -3654,8 +3686,8 @@
 			// aapt resource value: 0x7f090023
 			public const int wrap_content = 2131296291;
 			
-			// aapt resource value: 0x7f0900b6
-			public const int year = 2131296438;
+			// aapt resource value: 0x7f0900c1
+			public const int year = 2131296449;
 			
 			static Id()
 			{
@@ -3798,154 +3830,157 @@
 			public const int abc_select_dialog_material = 2130968602;
 			
 			// aapt resource value: 0x7f04001b
-			public const int biometric_prompt_dialog_content = 2130968603;
+			public const int activity_elian = 2130968603;
 			
 			// aapt resource value: 0x7f04001c
-			public const int design_bottom_navigation_item = 2130968604;
+			public const int biometric_prompt_dialog_content = 2130968604;
 			
 			// aapt resource value: 0x7f04001d
-			public const int design_bottom_sheet_dialog = 2130968605;
+			public const int design_bottom_navigation_item = 2130968605;
 			
 			// aapt resource value: 0x7f04001e
-			public const int design_layout_snackbar = 2130968606;
+			public const int design_bottom_sheet_dialog = 2130968606;
 			
 			// aapt resource value: 0x7f04001f
-			public const int design_layout_snackbar_include = 2130968607;
+			public const int design_layout_snackbar = 2130968607;
 			
 			// aapt resource value: 0x7f040020
-			public const int design_layout_tab_icon = 2130968608;
+			public const int design_layout_snackbar_include = 2130968608;
 			
 			// aapt resource value: 0x7f040021
-			public const int design_layout_tab_text = 2130968609;
+			public const int design_layout_tab_icon = 2130968609;
 			
 			// aapt resource value: 0x7f040022
-			public const int design_menu_item_action_area = 2130968610;
+			public const int design_layout_tab_text = 2130968610;
 			
 			// aapt resource value: 0x7f040023
-			public const int design_navigation_item = 2130968611;
+			public const int design_menu_item_action_area = 2130968611;
 			
 			// aapt resource value: 0x7f040024
-			public const int design_navigation_item_header = 2130968612;
+			public const int design_navigation_item = 2130968612;
 			
 			// aapt resource value: 0x7f040025
-			public const int design_navigation_item_separator = 2130968613;
+			public const int design_navigation_item_header = 2130968613;
 			
 			// aapt resource value: 0x7f040026
-			public const int design_navigation_item_subheader = 2130968614;
+			public const int design_navigation_item_separator = 2130968614;
 			
 			// aapt resource value: 0x7f040027
-			public const int design_navigation_menu = 2130968615;
+			public const int design_navigation_item_subheader = 2130968615;
 			
 			// aapt resource value: 0x7f040028
-			public const int design_navigation_menu_item = 2130968616;
+			public const int design_navigation_menu = 2130968616;
 			
 			// aapt resource value: 0x7f040029
-			public const int design_text_input_password_icon = 2130968617;
+			public const int design_navigation_menu_item = 2130968617;
 			
 			// aapt resource value: 0x7f04002a
-			public const int hdl_gallery_banner_view_layout = 2130968618;
+			public const int design_text_input_password_icon = 2130968618;
 			
 			// aapt resource value: 0x7f04002b
-			public const int hdl_widget_activity_crop_image = 2130968619;
+			public const int hdl_gallery_banner_view_layout = 2130968619;
 			
 			// aapt resource value: 0x7f04002c
-			public const int hdl_widget_activity_geofence_round = 2130968620;
+			public const int hdl_widget_activity_crop_image = 2130968620;
 			
 			// aapt resource value: 0x7f04002d
-			public const int hdl_widget_air_button = 2130968621;
+			public const int hdl_widget_activity_geofence_round = 2130968621;
 			
 			// aapt resource value: 0x7f04002e
-			public const int hdl_widget_include_pickerview_topbar = 2130968622;
+			public const int hdl_widget_air_button = 2130968622;
 			
 			// aapt resource value: 0x7f04002f
-			public const int hdl_widget_layout_basepickerview = 2130968623;
+			public const int hdl_widget_include_pickerview_topbar = 2130968623;
 			
 			// aapt resource value: 0x7f040030
-			public const int hdl_widget_pickerview = 2130968624;
+			public const int hdl_widget_layout_basepickerview = 2130968624;
 			
 			// aapt resource value: 0x7f040031
-			public const int hdl_widget_pickerview_options = 2130968625;
+			public const int hdl_widget_pickerview = 2130968625;
 			
 			// aapt resource value: 0x7f040032
-			public const int hdl_widget_pickerview_time = 2130968626;
+			public const int hdl_widget_pickerview_options = 2130968626;
 			
 			// aapt resource value: 0x7f040033
-			public const int Main = 2130968627;
+			public const int hdl_widget_pickerview_time = 2130968627;
 			
 			// aapt resource value: 0x7f040034
-			public const int notification_action = 2130968628;
+			public const int Main = 2130968628;
 			
 			// aapt resource value: 0x7f040035
-			public const int notification_action_tombstone = 2130968629;
+			public const int notification_action = 2130968629;
 			
 			// aapt resource value: 0x7f040036
-			public const int notification_media_action = 2130968630;
+			public const int notification_action_tombstone = 2130968630;
 			
 			// aapt resource value: 0x7f040037
-			public const int notification_media_cancel_action = 2130968631;
+			public const int notification_media_action = 2130968631;
 			
 			// aapt resource value: 0x7f040038
-			public const int notification_template_big_media = 2130968632;
+			public const int notification_media_cancel_action = 2130968632;
 			
 			// aapt resource value: 0x7f040039
-			public const int notification_template_big_media_custom = 2130968633;
+			public const int notification_template_big_media = 2130968633;
 			
 			// aapt resource value: 0x7f04003a
-			public const int notification_template_big_media_narrow = 2130968634;
+			public const int notification_template_big_media_custom = 2130968634;
 			
 			// aapt resource value: 0x7f04003b
-			public const int notification_template_big_media_narrow_custom = 2130968635;
+			public const int notification_template_big_media_narrow = 2130968635;
 			
 			// aapt resource value: 0x7f04003c
-			public const int notification_template_custom_big = 2130968636;
+			public const int notification_template_big_media_narrow_custom = 2130968636;
 			
 			// aapt resource value: 0x7f04003d
-			public const int notification_template_icon_group = 2130968637;
+			public const int notification_template_custom_big = 2130968637;
 			
 			// aapt resource value: 0x7f04003e
-			public const int notification_template_lines_media = 2130968638;
+			public const int notification_template_icon_group = 2130968638;
 			
 			// aapt resource value: 0x7f04003f
-			public const int notification_template_media = 2130968639;
+			public const int notification_template_lines_media = 2130968639;
 			
 			// aapt resource value: 0x7f040040
-			public const int notification_template_media_custom = 2130968640;
+			public const int notification_template_media = 2130968640;
 			
 			// aapt resource value: 0x7f040041
-			public const int notification_template_part_chronometer = 2130968641;
+			public const int notification_template_media_custom = 2130968641;
 			
 			// aapt resource value: 0x7f040042
-			public const int notification_template_part_time = 2130968642;
+			public const int notification_template_part_chronometer = 2130968642;
 			
 			// aapt resource value: 0x7f040043
-			public const int select_dialog_item_material = 2130968643;
+			public const int notification_template_part_time = 2130968643;
 			
 			// aapt resource value: 0x7f040044
-			public const int select_dialog_multichoice_material = 2130968644;
+			public const int select_dialog_item_material = 2130968644;
 			
 			// aapt resource value: 0x7f040045
-			public const int select_dialog_singlechoice_material = 2130968645;
+			public const int select_dialog_multichoice_material = 2130968645;
 			
 			// aapt resource value: 0x7f040046
-			public const int srl_classics_footer = 2130968646;
+			public const int select_dialog_singlechoice_material = 2130968646;
 			
 			// aapt resource value: 0x7f040047
-			public const int srl_classics_header = 2130968647;
+			public const int srl_classics_footer = 2130968647;
 			
 			// aapt resource value: 0x7f040048
-			public const int support_simple_spinner_dropdown_item = 2130968648;
+			public const int srl_classics_header = 2130968648;
 			
 			// aapt resource value: 0x7f040049
-			public const int tooltip = 2130968649;
+			public const int support_simple_spinner_dropdown_item = 2130968649;
 			
 			// aapt resource value: 0x7f04004a
-			public const int zxing_layout = 2130968650;
+			public const int tooltip = 2130968650;
 			
 			// aapt resource value: 0x7f04004b
-			public const int zxingscanneractivitylayout = 2130968651;
+			public const int zxing_layout = 2130968651;
 			
 			// aapt resource value: 0x7f04004c
-			public const int zxingscannerfragmentlayout = 2130968652;
+			public const int zxingscanneractivitylayout = 2130968652;
+			
+			// aapt resource value: 0x7f04004d
+			public const int zxingscannerfragmentlayout = 2130968653;
 			
 			static Layout()
 			{
diff --git a/ZigbeeApp/GateWay.Droid/packages.config b/ZigbeeApp/GateWay.Droid/packages.config
old mode 100755
new mode 100644
index 0a84d59..8664023
--- a/ZigbeeApp/GateWay.Droid/packages.config
+++ b/ZigbeeApp/GateWay.Droid/packages.config
@@ -1,65 +1,65 @@
-锘�<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="BouncyCastle.Crypto.dll" version="1.8.1" targetFramework="monoandroid60" />
-  <package id="FastAndroidCamera" version="2.0.0" targetFramework="monoandroid80" />
-  <package id="Microsoft.AppCenter" version="1.14.0" targetFramework="monoandroid60" />
-  <package id="Microsoft.AppCenter.Analytics" version="1.14.0" targetFramework="monoandroid60" />
-  <package id="Microsoft.AppCenter.Crashes" version="1.14.0" targetFramework="monoandroid60" />
-  <package id="Microsoft.NETCore.Platforms" version="1.1.0" targetFramework="monoandroid60" />
-  <package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="MQTTnet" version="3.0.8" targetFramework="monoandroid80" />
-  <package id="NETStandard.Library" version="2.0.0" targetFramework="monoandroid80" />
-  <package id="System.AppContext" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Collections" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Collections.Concurrent" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Console" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Globalization" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Globalization.Calendars" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.IO" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.IO.Compression" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.IO.FileSystem" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Linq" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Linq.Expressions" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Net.Http" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Net.Primitives" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Net.Security" version="4.3.2" targetFramework="monoandroid60" />
-  <package id="System.Net.Sockets" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Net.WebSockets" version="4.3.0" targetFramework="monoandroid80" />
-  <package id="System.Net.WebSockets.Client" version="4.3.2" targetFramework="monoandroid80" />
-  <package id="System.ObjectModel" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Reflection" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Reflection.Extensions" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Reflection.Primitives" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Runtime" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Runtime.Extensions" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Runtime.Handles" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Runtime.Numerics" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Text.Encoding" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Threading" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Threading.Tasks" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Threading.Timer" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="System.Xml.XDocument" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="Xamarin.Android.Support.Annotations" version="25.4.0.1" targetFramework="monoandroid80" />
-  <package id="Xamarin.Android.Support.Compat" version="25.4.0.1" targetFramework="monoandroid80" />
-  <package id="Xamarin.Android.Support.Core.UI" version="25.4.0.1" targetFramework="monoandroid80" />
-  <package id="Xamarin.Android.Support.Core.Utils" version="25.4.0.1" targetFramework="monoandroid80" />
-  <package id="Xamarin.Android.Support.Fragment" version="25.4.0.1" targetFramework="monoandroid80" />
-  <package id="Xamarin.Android.Support.Media.Compat" version="25.4.0.1" targetFramework="monoandroid80" />
-  <package id="Xamarin.Android.Support.v4" version="25.4.0.1" targetFramework="monoandroid80" />
-  <package id="ZXing.Net.Mobile" version="2.4.1" targetFramework="monoandroid80" />
+锘�<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="BouncyCastle.Crypto.dll" version="1.8.1" targetFramework="monoandroid60" />
+  <package id="FastAndroidCamera" version="2.0.0" targetFramework="monoandroid80" />
+  <package id="Microsoft.AppCenter" version="1.14.0" targetFramework="monoandroid60" />
+  <package id="Microsoft.AppCenter.Analytics" version="1.14.0" targetFramework="monoandroid60" />
+  <package id="Microsoft.AppCenter.Crashes" version="1.14.0" targetFramework="monoandroid60" />
+  <package id="Microsoft.NETCore.Platforms" version="1.1.0" targetFramework="monoandroid60" />
+  <package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="MQTTnet" version="3.0.11" targetFramework="monoandroid80" />
+  <package id="NETStandard.Library" version="2.0.0" targetFramework="monoandroid80" />
+  <package id="System.AppContext" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Collections" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Collections.Concurrent" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Console" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Globalization" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Globalization.Calendars" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.IO" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.IO.Compression" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.IO.FileSystem" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Linq" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Linq.Expressions" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Net.Http" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Net.Primitives" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Net.Security" version="4.3.2" targetFramework="monoandroid60" />
+  <package id="System.Net.Sockets" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Net.WebSockets" version="4.3.0" targetFramework="monoandroid80" />
+  <package id="System.Net.WebSockets.Client" version="4.3.2" targetFramework="monoandroid80" />
+  <package id="System.ObjectModel" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Reflection" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Reflection.Extensions" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Reflection.Primitives" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Runtime" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Runtime.Extensions" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Runtime.Handles" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Runtime.Numerics" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Text.Encoding" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Threading" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Threading.Tasks" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Threading.Timer" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="System.Xml.XDocument" version="4.3.0" targetFramework="monoandroid60" />
+  <package id="Xamarin.Android.Support.Annotations" version="25.4.0.1" targetFramework="monoandroid80" />
+  <package id="Xamarin.Android.Support.Compat" version="25.4.0.1" targetFramework="monoandroid80" />
+  <package id="Xamarin.Android.Support.Core.UI" version="25.4.0.1" targetFramework="monoandroid80" />
+  <package id="Xamarin.Android.Support.Core.Utils" version="25.4.0.1" targetFramework="monoandroid80" />
+  <package id="Xamarin.Android.Support.Fragment" version="25.4.0.1" targetFramework="monoandroid80" />
+  <package id="Xamarin.Android.Support.Media.Compat" version="25.4.0.1" targetFramework="monoandroid80" />
+  <package id="Xamarin.Android.Support.v4" version="25.4.0.1" targetFramework="monoandroid80" />
+  <package id="ZXing.Net.Mobile" version="2.4.1" targetFramework="monoandroid80" />
 </packages>
\ No newline at end of file
diff --git a/ZigbeeApp/Home.Ios/Info.plist b/ZigbeeApp/Home.Ios/Info.plist
index b18409b..edd3761 100755
--- a/ZigbeeApp/Home.Ios/Info.plist
+++ b/ZigbeeApp/Home.Ios/Info.plist
@@ -67,6 +67,10 @@
 				<string>wx2ec8f53f6fa36e82</string>
 			</array>
 		</dict>
+		<dict>
+			<key>CFBundleURLName</key>
+			<string>xiaoduapp</string>
+		</dict>
 	</array>
 	<key>LSApplicationQueriesSchemes</key>
 	<array>
diff --git a/ZigbeeApp/ShardLib/ShardLib.csproj b/ZigbeeApp/ShardLib/ShardLib.csproj
index 4e504ac..1189d5e 100644
--- a/ZigbeeApp/ShardLib/ShardLib.csproj
+++ b/ZigbeeApp/ShardLib/ShardLib.csproj
@@ -8,7 +8,7 @@
     <OutputType>Library</OutputType>
     <RootNamespace>ShardLib</RootNamespace>
     <AssemblyName>ShardLib</AssemblyName>
-    <TargetFrameworkVersion>v9.0</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v8.0</TargetFrameworkVersion>
     <MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix>
     <MonoAndroidAssetsPrefix>Assets</MonoAndroidAssetsPrefix>
     <AndroidClassParser>class-parse</AndroidClassParser>
diff --git a/ZigbeeApp/Shared/DLL/Android/Shared.Droid.dll b/ZigbeeApp/Shared/DLL/Android/Shared.Droid.dll
index 47eccd5..8275ecd 100755
--- a/ZigbeeApp/Shared/DLL/Android/Shared.Droid.dll
+++ b/ZigbeeApp/Shared/DLL/Android/Shared.Droid.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/DLL/IOS/Shared.IOS.dll b/ZigbeeApp/Shared/DLL/IOS/Shared.IOS.dll
index e3716df..4cd2543 100755
--- a/ZigbeeApp/Shared/DLL/IOS/Shared.IOS.dll
+++ b/ZigbeeApp/Shared/DLL/IOS/Shared.IOS.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundContentForDevice.cs b/ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundContentForDevice.cs
old mode 100755
new mode 100644
index 052b1bd..6ba9bbd
--- a/ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundContentForDevice.cs
+++ b/ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundContentForDevice.cs
@@ -167,8 +167,6 @@
                 listView.Y= tab_layout.Height;
                 listView.Height=ContentLayout.Height- tab_layout.Height;
 
-               
-
                 Buttons.Clear();
 
                 //娣诲姞鍔熻兘椤�
diff --git a/ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundContentForDeviceChange.cs b/ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundContentForDeviceChange.cs
old mode 100755
new mode 100644
index e9168d3..693e47c
--- a/ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundContentForDeviceChange.cs
+++ b/ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundContentForDeviceChange.cs
@@ -285,9 +285,9 @@
             //鐢熸垚涓�涓脊绐楃敾闈�
             var dialogForm = new DialogInputControl();
             //缂栬緫浣忓畢
-            dialogForm.SetTitleText("鑷畾涔夊敜閱掕瘝");
+            dialogForm.SetTitleText("鑷畾涔夋樀绉�");
             //璇疯緭鍏ヤ綇瀹呭悕绉�
-            dialogForm.SetTipText("璇疯緭鍏ュ敜閱掕瘝");
+            dialogForm.SetTipText("璇疯緭鍏ユ樀绉�");
             dialogForm.Text = scene.NicksName;
 
             //鎸変笅纭鎸夐挳
@@ -316,9 +316,9 @@
             //鐢熸垚涓�涓脊绐楃敾闈�
             var dialogForm = new DialogInputControl();
             //缂栬緫浣忓畢
-            dialogForm.SetTitleText("鑷畾涔夊敜閱掕瘝");
+            dialogForm.SetTitleText("鑷畾涔夋樀绉�");
             //璇疯緭鍏ヤ綇瀹呭悕绉�
-            dialogForm.SetTipText("璇疯緭鍏ュ敜閱掕瘝");
+            dialogForm.SetTipText("璇疯緭鍏ユ樀绉�");
             dialogForm.Text = device.NicksName;
 
             //鎸変笅纭鎸夐挳
@@ -344,20 +344,22 @@
         /// </summary>
         private void ShowSceneDelectDialog(SmartSound.Scene scene)
         {
-            this.ShowMassage(ShowMsgType.Confirm, "纭鍒犻櫎璇ユ帶鍒跺唴瀹癸紵", async () =>
-            {
-                try
+            this.ShowMassage(ShowMsgType.Confirm, "纭鍒犻櫎璇ユ帶鍒跺唴瀹癸紵", () =>
+           {
+               HdlThreadLogic.Current.RunThread(async () =>
                 {
+                    this.ShowProgressBar();
                     CurrentRoom.SceneList.Remove(scene);
-                    LoadSceneView();
                     string json = await postBatchEdit();
-                }
-                catch (Exception e)
-                {
-                    string sss = e.Message;
-                }
 
-            }, Language.StringByID(R.MyInternationalizationString.OkMsg));
+                    HdlThreadLogic.Current.RunMainInThread(() =>
+                    {
+                        LoadSceneView();
+                        this.CloseProgressBar();
+                    });
+                });
+
+           }, Language.StringByID(R.MyInternationalizationString.OkMsg));
         }
 
         /// <summary>
@@ -365,20 +367,21 @@
         /// </summary>
         private void ShowDeviceDelectDialog(SmartSound.Device device)
         {
-            this.ShowMassage(ShowMsgType.Confirm, "纭鍒犻櫎璇ユ帶鍒跺唴瀹癸紵", async () =>
+            this.ShowMassage(ShowMsgType.Confirm, "纭鍒犻櫎璇ユ帶鍒跺唴瀹癸紵",  () =>
              {
-                 try
-                 {
-                    //DeviceListView.RemoveAt(index);
-                    CurrentRoom.DeviceList.Remove(device);
-                     RefreshFunctionListView();
 
-                     string json = await postBatchEdit();
-                 }
-                 catch (Exception e)
+                 HdlThreadLogic.Current.RunThread(async () =>
                  {
-                     string sss = e.Message;
-                 }
+                     this.ShowProgressBar();
+                     CurrentRoom.DeviceList.Remove(device);
+                     string json = await postBatchEdit();
+
+                     HdlThreadLogic.Current.RunMainInThread(() =>
+                     {
+                         RefreshFunctionListView();
+                         this.CloseProgressBar();
+                     });
+                 });
 
              }, Language.StringByID(R.MyInternationalizationString.OkMsg));
         }
@@ -446,7 +449,7 @@
             // 鎻愪氦鏁版嵁鑷虫湇鍔″櫒
             string url = "https://developer.hdlcontrol.com/zigbeespeakerservice/BatchEdit";
             string json = Newtonsoft.Json.JsonConvert.SerializeObject(SmartSound.getInstantiate());
-            string response_str = await MyHttpWebResponse.PostWebRequest(url, json, Encoding.UTF8);
+            string response_str = MyHttpWebResponse.PostWebRequest(url, json, Encoding.UTF8);
             return response_str;
         }
 
diff --git a/ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundControlContentForm.cs b/ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundControlContentForm.cs
old mode 100755
new mode 100644
index 02c58fe..a9c778d
--- a/ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundControlContentForm.cs
+++ b/ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundControlContentForm.cs
@@ -133,7 +133,7 @@
             // The remote server returned an error: (400) Bad Request.
             string url = "https://developer.hdlcontrol.com/zigbeespeakerservice/BatchEdit";
             string json = Newtonsoft.Json.JsonConvert.SerializeObject(SmartSound.getInstantiate());
-            string response_str = await MyHttpWebResponse.PostWebRequest(url, json, Encoding.UTF8);
+            string response_str = MyHttpWebResponse.PostWebRequest(url, json, Encoding.UTF8);
             return response_str;
         }
 
@@ -207,15 +207,12 @@
                                 continue;
 
                             SmartSound.Device smartDevice = new SmartSound.Device();
-                            //smartDevice.Id = device.DeviceID.ToString();//璁惧 Id
                             smartDevice.DeviceAddress = device.DeviceAddr;//璁惧 MAC
                             smartDevice.Epoint = device.DeviceEpoint;//璁惧绔彛
-                            //smartDevice.ClusterID = 0;
-                            smartDevice.DeviceName = device.DeviceName;//璁惧鍚嶇О
+                            smartDevice.DeviceName = Common.LocalDevice.Current.GetDeviceEpointName(device);//璁惧鍚嶇О
                             smartDevice.NicksName = "";
                             smartDevice.DeviceType = GetDeviceType(device);//璁惧绫诲瀷
                             smartDevice.GatewayID = device.CurrentGateWayId;//缃戝叧 Id
-                            //smartDevice.RoomID = room.Id;//鎴块棿 Id
                             if (smartDevice.DeviceName == "" || smartDevice.DeviceName == string.Empty)
                                 continue;
 
@@ -233,13 +230,10 @@
                             
                             if (scene == null) continue;
                             SmartSound.Scene smartScene = new SmartSound.Scene();
-                            //smartScene.Id = scene.DeviceID.ToString();
                             smartScene.SceneName = scene.Name;
                             smartScene.SceneID = scene.Id;
                             smartScene.DelayTime = scene.DelayTime;
-                            //smartScene.ClusterID = 0;
                             smartScene.NicksName = "";
-                            //smartScene.RoomID = room.Id;
                             smartScene.GatewayID = ZbGateway.MainGateWay.GwId;
 
                             if (smartScene.SceneName == "" || smartScene.SceneName == string.Empty)
@@ -249,6 +243,9 @@
                         }
                         #endregion
 
+                        if (room.ListDevice.Count == 0 && sceneList.Count == 0)
+                            layer.RoomList.Remove(smartRoom);
+
                     }
                     catch (Exception e)
                     {
diff --git a/ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundControlForm.cs b/ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundControlForm.cs
old mode 100755
new mode 100644
index b352d26..7196f2c
--- a/ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundControlForm.cs
+++ b/ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundControlForm.cs
@@ -233,7 +233,7 @@
             // 鎻愪氦鏁版嵁鑷虫湇鍔″櫒
             string url = "https://developer.hdlcontrol.com/zigbeespeakerservice/BatchEdit";
             string json = Newtonsoft.Json.JsonConvert.SerializeObject(SmartSound.getInstantiate());
-            string response_str = await MyHttpWebResponse.PostWebRequest(url, json, Encoding.UTF8);
+            string response_str = MyHttpWebResponse.PostWebRequest(url, json, Encoding.UTF8);
             return response_str;
         }
 
diff --git a/ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundListForm.cs b/ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundListForm.cs
old mode 100755
new mode 100644
index 54f2151..65cff1b
--- a/ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundListForm.cs
+++ b/ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundListForm.cs
@@ -130,17 +130,11 @@
         /// <returns></returns>
         private async Task getData()
         {
-            //SmartSoundInfo.Auth auth = new SmartSoundInfo.Auth();
-            //auth.HomeID = Common.Config.Instance.Home.Id;
-            //auth.UserID = Common.Config.Instance.Guid;
-            //auth.Platform = "";
             string url = string.Format("https://developer.hdlcontrol.com/zigbeespeakerservice/Auth?Platform&PageSetting.PageSize=100&PageSetting.PageIndex=1&UserID={0}&HomeID={1}",
                 Common.Config.Instance.Guid,Common.Config.Instance.Home.Id);
             
-            dataString = await MyHttpWebResponse.GetWebRequest(url);
-            
-            smartSoundInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<SmartSoundInfo>(dataString);
-            
+            dataString = await MyHttpWebResponse.GetWebRequest(url);            
+            smartSoundInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<SmartSoundInfo>(dataString);            
         }
 
         /// <summary>
@@ -150,8 +144,7 @@
         /// <param name="new_remark"></param>
         /// <returns></returns>
         private async Task<string> setRemark(SmartSoundInfo.SoundInfo soundInfo, string new_remark)
-        {
-            
+        {            
             if (soundInfo == null)
                 return "";
 
@@ -162,7 +155,7 @@
                 "\"UserID\":" + "\"" + soundInfo.UserID + "\"" + "," +
                 "\"HomeID\":" + "\"" + soundInfo.HomeID + "\"" + "}";
 
-            string response_str = await MyHttpWebResponse.PutWebRequest(url, json, Encoding.UTF8);
+            string response_str = MyHttpWebResponse.PutWebRequest(url, json, Encoding.UTF8);
             JObject jObject = JObject.Parse(response_str);
             
             return jObject["StateCode"].ToString();
@@ -178,55 +171,66 @@
 
             for (int i = 0; i < smartSoundInfo.ResponseData.Data.Count; i++)
             {
-                //
-                var smartSound = smartSoundInfo.ResponseData.Data[i];
-                var row = new SoundRowLayout();
-                listView.AddChidren(row);
-
-                if (smartSound.Platform == "Baidu")
+                try
                 {
-                    row.Account = "灏忓害锛�" + smartSound.UserName;
-                    row.ImagePath = "SmartSound/Xiaodu.png";
-                    row.Remark = smartSound.Remark;
+                    //
+                    var smartSound = smartSoundInfo.ResponseData.Data[i];
+                    var row = new SoundRowLayout();
+                    listView.AddChidren(row);
+
+                    if (smartSound.Platform == "Baidu")
+                    {
+                        string remark = "灏忓害";
+                        if (smartSound.Remark != null && smartSound.Remark.Trim() != "")
+                            remark += "(" + smartSound.Remark + ")";
+
+                        row.ImagePath = "SmartSound/Xiaodu.png";
+                        row.Remark = remark;
+                    }
+
+                    row.InitControl();
+                    row.btnDelect.AddTag("index", i);
+                    row.btnRename.AddTag("index", i);
+                    row.frameTable.AddTag("index", i);
+
+                    //閲嶅懡鍚�
+                    row.btnRename.ButtonClickEvent += (sender, e) =>
+                    {
+                        int index = (int)((NormalViewControl)sender).GetTagByKey("index");
+                        var smartSound1 = smartSoundInfo.ResponseData.Data[index];
+                        ShowRenameDialog(row, smartSound1);
+                    };
+
+                    // 瑙i櫎缁戝畾
+                    row.btnDelect.ButtonClickEvent += (sender, e) =>
+                    {
+                        int index = (int)(((NormalViewControl)sender).GetTagByKey("index"));
+                        var smartSound1 = smartSoundInfo.ResponseData.Data[index];
+                        ShowDelectDialog(smartSound1);
+                    };
+
+                    //璺宠浆鍒版帶鍒跺唴瀹圭晫闈�  FrameRowControl
+                    row.frameTable.ButtonClickEvent += (sender, e) =>
+                    {
+                        int index = (int)row.frameTable.GetTagByKey("index");
+                        if (SmartSound.getInstantiate().LayerList != null)
+                            SmartSound.getInstantiate().LayerList.Clear();
+
+                        var smartSoundControlForm = new SmartSoundControlForm(smartSoundInfo.ResponseData.Data[index]);
+                        smartSoundControlForm.AddForm();
+                    };
                 }
-
-                row.InitControl();
-                row.btnDelect.AddTag("index", i);
-                row.btnRename.AddTag("index", i);
-                row.frameTable.AddTag("index", i);
-
-                //閲嶅懡鍚�
-                row.btnRename.ButtonClickEvent += (sender, e) =>
+                catch (Exception e)
                 {
-                    int index = (int)((NormalViewControl)sender).GetTagByKey("index");
-                    var smartSound1 = smartSoundInfo.ResponseData.Data[index];
-                    ShowRenameDialog(row, smartSound1);
-                };
-
-                // 瑙i櫎缁戝畾
-                row.btnDelect.ButtonClickEvent += (sender, e) =>
-                {
-                    int index = (int)(((NormalViewControl)sender).GetTagByKey("index"));
-                    ShowDelectDialog(index);
-                };
-
-                //璺宠浆鍒版帶鍒跺唴瀹圭晫闈�  FrameRowControl
-                row.frameTable.ButtonClickEvent += (sender, e) =>
-                {
-                    int index = (int)row.frameTable.GetTagByKey("index");
-                    if (SmartSound.getInstantiate().LayerList != null)
-                        SmartSound.getInstantiate().LayerList.Clear();
-
-                    var smartSoundControlForm = new SmartSoundControlForm(smartSoundInfo.ResponseData.Data[index]);
-                    smartSoundControlForm.AddForm();
-                };
+                    this.ShowMassage(ShowMsgType.Tip, e.Message);
+                }
             }
         }
 
         /// <summary>
         /// 瑙i櫎缁戝畾寮圭獥
         /// </summary>
-        private void ShowDelectDialog(int index)
+        private void ShowDelectDialog(SmartSoundInfo.SoundInfo smartSound)
         {
             //鐢熸垚涓�涓脊绐楃敾闈�
             var dialogForm = new TextDialog("瑙i櫎缁戝畾闇�瑕佸埌绗笁鏂� APP 杩涜鎿嶄綔", "璺宠浆鑷冲皬搴�");
@@ -235,8 +239,36 @@
             //鎸変笅纭鎸夐挳
             dialogForm.ComfirmClickEvent += () =>
             {
-                //鐢婚潰鍏抽棴
-                dialogForm.CloseDialog();
+                HdlThreadLogic.Current.RunThread(() =>
+                {
+                    this.ShowProgressBar("鍒犻櫎鏈嶅姟鍣ㄨ褰�...");
+
+                    DelectSmartSound(smartSound);
+
+                    HdlThreadLogic.Current.RunMainInThread(() =>
+                    {
+                        //鐢婚潰鍏抽棴
+                        dialogForm.CloseDialog();
+                        bool bol = false;
+                        try
+                        {
+#if Android
+                            bol = HDLUtils.OpenAppWithPackageName("com.baidu.duer.superapp");
+#else
+                            HDLUtils.OpenApp("xiaoduapp://");
+#endif
+                        }
+                        catch (Exception e)
+                        {
+                            string error = e.Message;
+                            bol = false;
+                        }
+                        if (!bol)
+                        {
+                            this.ShowMassage(ShowMsgType.Tip, "鎵撳紑APP澶辫触");
+                        }
+                    });
+                });
             };
         }
         /// <summary>
@@ -264,7 +296,7 @@
                 if (str == "SUCCESS")
                 {
                     smartSound.Remark = remark;
-                    soundRowLayout.btnRemark.Text = textValue;
+                    soundRowLayout.btnRemark.Text = "灏忓害" + "(" + textValue + ")";
                 }
                 else
                 {
@@ -276,8 +308,29 @@
 
         #endregion
 
+        /// <summary>
+        /// 鍒犻櫎鏁版嵁
+        /// </summary>
+        /// <param name="soundInfo"></param>
+        /// <returns></returns>
+        private string DelectSmartSound(SmartSoundInfo.SoundInfo soundInfo)
+        {
+            if (soundInfo == null)
+                return "";
 
-        #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
+            string url = "https://developer.hdlcontrol.com/zigbeespeakerservice/Auth";
+            string json = "{" +
+                "\"AuthID\":" + "\"" + soundInfo.Id + "\"" + "," +
+                "\"UserID\":" + "\"" + soundInfo.UserID + "\"" + "," +
+                "\"HomeID\":" + "\"" + soundInfo.HomeID + "\"" + "}";
+
+            string response_str = MyHttpWebResponse.DeleteWebRequest(url, json, Encoding.UTF8);
+            JObject jObject = JObject.Parse(response_str);
+
+            return jObject["StateCode"].ToString();
+        }
+
+#region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
 
         /// <summary>
         /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠�
@@ -287,9 +340,9 @@
             return 1;
         }
 
-        #endregion
+#endregion
 
-        #region 鈻� 鍏抽棴鐣岄潰___________________________
+#region 鈻� 鍏抽棴鐣岄潰___________________________
 
         /// <summary>
         /// 鐢婚潰鍏抽棴
@@ -299,7 +352,7 @@
             base.CloseFormBefore();
         }
 
-        #endregion
-
+#endregion
+                
     }
 }
\ No newline at end of file
diff --git a/ZigbeeApp/Shared/Phone/SmartSound/SmartSoundInfo.cs b/ZigbeeApp/Shared/Phone/SmartSound/SmartSoundInfo.cs
old mode 100755
new mode 100644
index 631c349..d2b5a41
--- a/ZigbeeApp/Shared/Phone/SmartSound/SmartSoundInfo.cs
+++ b/ZigbeeApp/Shared/Phone/SmartSound/SmartSoundInfo.cs
@@ -41,7 +41,7 @@
             /// <summary>
             /// 鏅鸿兘闊崇澶囨敞
             /// </summary>
-            public string Remark { get; set; }
+            public string Remark { get; set; } = "鎴戠殑闊崇";
             public string Id { get; set; }
             public bool IsDeleted { get; set; }
             public string CreatedOnUtc { get; set; }
diff --git a/ZigbeeApp/Shared/Phone/SmartSound/Util/MyHttpWebResponse.cs b/ZigbeeApp/Shared/Phone/SmartSound/Util/MyHttpWebResponse.cs
old mode 100755
new mode 100644
index 7548a3c..511b1c2
--- a/ZigbeeApp/Shared/Phone/SmartSound/Util/MyHttpWebResponse.cs
+++ b/ZigbeeApp/Shared/Phone/SmartSound/Util/MyHttpWebResponse.cs
@@ -17,7 +17,7 @@
         /// </summary>
         /// <param name="getUrl">鎺ュ彛鍦板潃</param>
         /// <returns></returns>
-        public async static Task<string> GetWebRequest(string getUrl)
+        public static async Task<string> GetWebRequest(string getUrl)
         {
 
             string responseContent = "";
@@ -50,7 +50,7 @@
         /// <param name="paramData">鎻愪氦json鏁版嵁</param>
         /// <param name="dataEncode">缂栫爜鏂瑰紡(Encoding.UTF8)</param>
         /// <returns></returns>
-        public async static Task<string> PostWebRequest(string postUrl, string paramData, Encoding dataEncode)
+        public static string PostWebRequest(string postUrl, string paramData, Encoding dataEncode)
         {
             string responseContent = string.Empty;
             try
@@ -91,7 +91,7 @@
         /// <param name="paramData">鎻愪氦json鏁版嵁</param>
         /// <param name="dataEncode">缂栫爜鏂瑰紡(Encoding.UTF8)</param>
         /// <returns></returns>
-        public async static Task<string> PutWebRequest(string postUrl, string paramData, Encoding dataEncode)
+        public static string PutWebRequest(string postUrl, string paramData, Encoding dataEncode)
         {
             string responseContent = string.Empty;
             try
@@ -121,5 +121,43 @@
             }
             return responseContent;
         }
+
+        /// <summary>
+        /// delete鏁版嵁鎺ュ彛
+        /// </summary>
+        /// <param name="postUrl">鎺ュ彛鍦板潃</param>
+        /// <param name="paramData">鎻愪氦json鏁版嵁</param>
+        /// <param name="dataEncode">缂栫爜鏂瑰紡(Encoding.UTF8)</param>
+        /// <returns></returns>
+        public static string DeleteWebRequest(string postUrl, string paramData, Encoding dataEncode)
+        {
+            string responseContent = string.Empty;
+            try
+            {
+                byte[] byteArray = dataEncode.GetBytes(paramData); //杞寲
+                HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(postUrl));
+                webReq.Method = "DELETE";
+                webReq.ContentType = "application/json";
+                webReq.ContentLength = byteArray.Length;
+                using (Stream reqStream = webReq.GetRequestStream())
+                {
+                    reqStream.Write(byteArray, 0, byteArray.Length);//鍐欏叆鍙傛暟
+                    //reqStream.Close();
+                }
+                using (HttpWebResponse response = (HttpWebResponse)webReq.GetResponse())
+                {
+                    //鍦ㄨ繖閲屽鎺ユ敹鍒扮殑椤甸潰鍐呭杩涜澶勭悊
+                    using (StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.Default))
+                    {
+                        responseContent = sr.ReadToEnd().ToString();
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                return ex.Message;
+            }
+            return responseContent;
+        }
     }
 }
\ No newline at end of file
diff --git a/ZigbeeApp/Shared/Phone/SmartSound/Widget/SoundRowLayout.cs b/ZigbeeApp/Shared/Phone/SmartSound/Widget/SoundRowLayout.cs
old mode 100755
new mode 100644
index d329d50..8569384
--- a/ZigbeeApp/Shared/Phone/SmartSound/Widget/SoundRowLayout.cs
+++ b/ZigbeeApp/Shared/Phone/SmartSound/Widget/SoundRowLayout.cs
@@ -12,7 +12,9 @@
         /// 鍒犻櫎鎸夐挳
         /// </summary>
         public NormalViewControl btnDelect = null;
-
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
         public NormalViewControl btnRemark = null;
         /// <summary>
         /// 鍥剧墖璺緞
@@ -20,13 +22,10 @@
         public string ImagePath = "SmartSound/SoundIcon.png";
 
         /// <summary>
-        /// 鏅鸿兘闊崇璐﹀彿
-        /// </summary>
-        public string Account = "";
-        /// <summary>
-        /// 鏅鸿兘闊崇澶囨敞
+        /// 鏅鸿兘闊崇澶囨敞鍚嶇О
         /// </summary>
         public string Remark = "";
+        
 
         public SoundRowLayout()
         {
@@ -38,25 +37,30 @@
         /// </summary>
         public void InitControl()
         {
-            //鍥炬爣
-            var btnIcon = frameTable.AddLeftIcon(81);
+            try
+            {
+                //鍥炬爣
+                var btnIcon = frameTable.AddLeftIcon(81);
 
-            btnIcon.UnSelectedImagePath = ImagePath;
-            btnIcon.SelectedImagePath = ImagePath;
+                btnIcon.UnSelectedImagePath = ImagePath;
+                btnIcon.SelectedImagePath = ImagePath;
 
-            //璁惧           
-            var btnAccount = frameTable.AddTopView(Account, 800);
-            //鎴块棿
-            btnRemark = frameTable.AddBottomView(Remark, 800);
-            //搴曠嚎
-            frameTable.AddBottomLine();
+                //澶囨敞鍚嶇О鎸夐挳
+                btnRemark = frameTable.AddLeftCaption(Remark, 800);
 
-            btnRename = base.AddEditorControl();
-            btnRename.Text = "閲嶅懡鍚�";
+                //搴曠嚎
+                frameTable.AddBottomLine();
 
-            btnDelect = base.AddDeleteControl();
-            btnDelect.Text = "瑙i櫎缁戝畾";
+                btnRename = base.AddEditorControl();
+                btnRename.Text = "閲嶅懡鍚�";
 
+                btnDelect = base.AddDeleteControl();
+                btnDelect.Text = "瑙i櫎缁戝畾";
+            }
+            catch (Exception e)
+            {
+                //
+            }
         }
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs
old mode 100755
new mode 100644
index a4417a0..f59dacb
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs
@@ -1284,13 +1284,13 @@
         #region 鈻� 鑷畾涔夋櫤鑳介煶绠辨帶浠禵____________________
 
         /// <summary>
-        /// 鑷畾涔夌綉鍏虫帶浠�
+        /// 鑷畾涔夐煶绠辨帶浠�
         /// </summary>
         private class MySmartSoundControl : FrameRowControl
         {
 
             /// <summary>
-            /// 缃戝叧鍚嶅瓧鎺т欢
+            /// 闊崇鍚嶅瓧鎺т欢
             /// </summary>
             private NormalViewControl btnName = null;
 
@@ -1326,6 +1326,7 @@
                 this.AddRightArrow();
                 this.AddMostRightView("", 300, false).Name = "smartSoundLayout";
                 this.AddBottomLine();
+
             }
         }
         #endregion

--
Gitblit v1.8.0