From 7c3d23232c5c0328131d2b560e6224dd0d566f01 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期四, 24 十一月 2022 14:27:22 +0800
Subject: [PATCH] Merge branch 'wxr-sdk-test' into SDK

---
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml                                                                                |   13 
 AndroidOpenDemo/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1.xml                                                                                       |    9 
 AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/model/DeviceAddModel.java                                                          |    2 
 AndroidOpenDemo/.idea/libraries/Gradle__org_greenrobot_eventbus_3_0_0.xml                                                                                       |   11 
 AndroidOpenDemo/.idea/modules/app/LCAndroidSDKDemo.app.iml                                                                                                      |   22 
 AndroidOpenDemo/app/src/main/java/com/common/openapi/IGetDeviceInfoCallBack.java                                                                                |   16 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_runner_0_5_aar.xml                                                                             |   13 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_runner_1_0_2_aar.xml                                                                           |   10 
 AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/EnvGuideActivity.java                                                                                    |   32 
 .idea/workspace.xml                                                                                                                                             |   45 +
 AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/LCDeviceEngine.java                                                                |   27 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml                                                                         |   13 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml                                                                     |   13 
 AndroidOpenDemo/app/src/main/res/layout/fragment_device_detail_main.xml                                                                                         |   21 
 AndroidOpenDemo/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3.xml                                                                                      |    9 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml                                                                         |   10 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml                                                                         |   10 
 AndroidOpenDemo/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3.xml                                                                                   |    9 
 AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/service/DeviceAddService.java                                                      |   12 
 AndroidOpenDemo/.idea/libraries/Gradle______________gradle_caches_transforms_1_files_1_1_DHScanner_1_0_7_aar_0ecd90b9bed2580cb7702e452029b5fe.xml               |   10 
 AndroidOpenDemo/app/src/main/java/com/lechange/demo/App.java                                                                                                    |    6 
 AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/DeviceAddActivity.java                                                             |    1 
 AndroidOpenDemo/.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml                                                                           |   10 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2_aar.xml                                                |   10 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_1_0.xml                                                       |    9 
 AndroidOpenDemo/.idea/modules/third-zxing/LCAndroidSDKDemo.third-zxing.iml                                                                                      |   91 ++
 AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/HttpSend.java                                                              |  191 +++-
 AndroidOpenDemo/app/src/main/java/com/net/UserNetManager.java                                                                                                   |    2 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0_aar.xml                                                                      |   13 
 AndroidOpenDemo/.idea/modules.xml                                                                                                                               |   11 
 AndroidOpenDemo/.idea/caches/build_file_checksums.ser                                                                                                           |    0 
 AndroidOpenDemo/.idea/libraries/Gradle____third_zxing_libs_zxing_3_3_0_jar.xml                                                                                  |    9 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml                                                                   |   13 
 AndroidOpenDemo/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml                                                                            |   10 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml                                                             |   10 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_cardview_v7_28_0_0_aar.xml                                                                          |   10 
 AndroidOpenDemo/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1.xml                                                                               |    9 
 AndroidOpenDemo/app/src/main/res/layout/activity_device_online_media_play.xml                                                                                   |    5 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml                                                                    |   13 
 AndroidOpenDemo/app/src/main/java/com/net/IUserDataCallBack.java                                                                                                |    2 
 AndroidOpenDemo/app/src/main/res/values/strings.xml                                                                                                             |    1 
 AndroidOpenDemo/.idea/libraries/Gradle____DeviceAddModule_libs_lechangeSDK_jar.xml                                                                              |    9 
 AndroidOpenDemo/DeviceAddModule/libs/gson-2.8.8.jar                                                                                                             |    0 
 AndroidOpenDemo/app/src/main/java/com/common/openapi/DeviceInfoOpenApiManager.java                                                                              |   14 
 AndroidOpenDemo/DeviceAddModule/.DS_Store                                                                                                                       |    0 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_design_28_0_0_aar.xml                                                                               |   13 
 AndroidOpenDemo/app/src/main/java/com/callBack/IAddCamera.java                                                                                                  |   13 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_rules_0_5_aar.xml                                                                              |   13 
 AndroidOpenDemo/.idea/libraries/Gradle______________gradle_caches_transforms_1_files_1_1_PullToRefreshListView_release_aar_1232b6310601f161610e5eb82d661087.xml |   10 
 AndroidOpenDemo/.idea/libraries/Gradle______________gradle_caches_transforms_1_files_1_1_DHMobileToolset_1_1_1_aar_f7d8eb2f1804db3345ec5a537e5ec0db.xml         |   10 
 AndroidOpenDemo/.idea/modules/LCAndroidSDKDemo.iml                                                                                                              |   19 
 AndroidOpenDemo/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml                                                                                         |    9 
 AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/HDLMD5Utils.java                                                           |  183 +++++
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml                                                                  |   10 
 AndroidOpenDemo/.DS_Store                                                                                                                                       |    0 
 AndroidOpenDemo/app/src/main/java/com/common/openapi/DeviceDetailService.java                                                                                   |   34 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2_aar.xml                                                           |   10 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml                                                                        |   10 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml                                                                            |   10 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml                                                                         |   13 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_monitor_1_0_2_aar.xml                                                                          |   10 
 AndroidOpenDemo/app/src/main/res/values/styles.xml                                                                                                              |    4 
 AndroidOpenDemo/app/src/main/java/com/.DS_Store                                                                                                                 |    0 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml                                                              |   10 
 AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/HttpClient.java                                                            |   97 ++
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml                                                                       |   13 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_exposed_instrumentation_api_publish_0_5_aar.xml                                                |   10 
 .idea/HdlToLc.iml                                                                                                                                               |    9 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_v4_28_0_0_aar.xml                                                                           |   10 
 AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/DeviceListActivity.java                                                                                  |    4 
 .DS_Store                                                                                                                                                       |    0 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml                                                                           |   10 
 AndroidOpenDemo/app/src/main/java/com/common/openapi/MethodConst.java                                                                                           |    2 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0.xml                                                                      |    9 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml                                                                      |   10 
 AndroidOpenDemo/.idea/modules/DeviceAddModule/LCAndroidSDKDemo.DeviceAddModule.iml                                                                              |    4 
 AndroidOpenDemo/app/src/main/res/values-en/strings.xml                                                                                                          |    1 
 AndroidOpenDemo/.idea/libraries/Gradle__com_alibaba_arouter_annotation_1_0_6.xml                                                                                |    9 
 AndroidOpenDemo/app/src/main/res/.DS_Store                                                                                                                      |    0 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml                                                                |   10 
 AndroidOpenDemo/app/src/main/java/com/utils/HdlToLcUtils.java                                                                                                   |  218 ++++++
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_2_2_2_aar.xml                                                           |   10 
 AndroidOpenDemo/.idea/.name                                                                                                                                     |    1 
 AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/p_inputsn/ScanFragment.java                                                        |    2 
 AndroidOpenDemo/.idea/libraries/Gradle__javax_annotation_javax_annotation_api_1_2.xml                                                                           |    9 
 AndroidOpenDemo/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0.xml                                                                                             |    9 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml                                                                               |   10 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml                                                                   |   10 
 AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/CONST.java                                                                 |    8 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_collections_28_0_0.xml                                                                              |    9 
 AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/DeviceAddOpenApiManager.java                                               |   34 
 AndroidOpenDemo/.idea/libraries/Gradle__com_alibaba_arouter_api_1_4_1_aar.xml                                                                                   |   10 
 AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/DeviceOnlineMediaPlayActivity.java                                                                       |    8 
 AndroidOpenDemo/third-zxing/.DS_Store                                                                                                                           |    0 
 .idea/vcs.xml                                                                                                                                                   |    6 
 .idea/modules.xml                                                                                                                                               |    8 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_0_aar.xml                                                          |   10 
 AndroidOpenDemo/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1.xml                                                                                 |    9 
 AndroidOpenDemo/app/src/main/java/com/lechange/demo/.DS_Store                                                                                                   |    0 
 AndroidOpenDemo/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml                                                                          |   10 
 AndroidOpenDemo/DeviceAddModule/src/main/res/layout/fragment_bind_success.xml                                                                                   |    2 
 AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/DeviceDetailMainFragment.java                                                                            |   22 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_transition_28_0_0_aar.xml                                                                           |   13 
 AndroidOpenDemo/.idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml                                                                                 |   10 
 AndroidOpenDemo/.idea/libraries/Gradle__com_google_code_gson_gson_2_8_8.xml                                                                                     |    9 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_2_2_2_aar.xml                                                |   10 
 AndroidOpenDemo/.idea/libraries/Gradle__android_arch_core_common_1_1_1.xml                                                                                      |    9 
 AndroidOpenDemo/.idea/libraries/Gradle____DeviceAddModule_libs_imageload4dh_jar.xml                                                                             |    9 
 AndroidOpenDemo/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml                                                                      |   10 
 /dev/null                                                                                                                                                       |  127 ---
 AndroidOpenDemo/.idea/libraries/Gradle__junit_junit_4_12.xml                                                                                                    |    9 
 AndroidOpenDemo/app/src/main/java/com/utils/DeviceUtils.java                                                                                                    |   94 ++
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml                                                                    |   10 
 AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/p_bindsuccess/BindSuccessFragment.java                                             |    7 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml                                                                  |   10 
 AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_media_compat_28_0_0_aar.xml                                                                 |   13 
 AndroidOpenDemo/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3.xml                                                                               |    9 
 117 files changed, 1,832 insertions(+), 257 deletions(-)

diff --git a/.DS_Store b/.DS_Store
index bdc2da4..386505c 100644
--- a/.DS_Store
+++ b/.DS_Store
Binary files differ
diff --git a/.idea/HdlToLc.iml b/.idea/HdlToLc.iml
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ b/.idea/HdlToLc.iml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$" />
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..127ddda
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/HdlToLc.iml" filepath="$PROJECT_DIR$/.idea/HdlToLc.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="" vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..eccbee7
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ChangeListManager">
+    <list default="true" id="65c1ada5-6f56-4f18-9096-9578840f8ac4" name="Default Changelist" comment="" />
+    <option name="SHOW_DIALOG" value="false" />
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
+    <option name="LAST_RESOLUTION" value="IGNORE" />
+  </component>
+  <component name="Git.Settings">
+    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
+  </component>
+  <component name="ProjectId" id="2Hq3DqbkspUmNCGD5OprF7fRXne" />
+  <component name="ProjectViewState">
+    <option name="autoscrollFromSource" value="true" />
+    <option name="autoscrollToSource" value="true" />
+    <option name="hideEmptyMiddlePackages" value="true" />
+    <option name="showLibraryContents" value="true" />
+  </component>
+  <component name="PropertiesComponent">
+    <property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
+    <property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
+    <property name="android.project.structure.last.selected" value="SDK Location" />
+    <property name="android.project.structure.proportion" value="0.15" />
+    <property name="android.sdk.path" value="$USER_HOME$/Library/Developer/Xamarin/android-sdk-macosx" />
+    <property name="last_opened_file_path" value="$PROJECT_DIR$" />
+    <property name="project.structure.last.edited" value="SDK Location" />
+    <property name="project.structure.proportion" value="0.17" />
+    <property name="project.structure.side.proportion" value="0.0" />
+    <property name="settings.editor.selected.configurable" value="AndroidSdkUpdater" />
+  </component>
+  <component name="SvnConfiguration">
+    <configuration />
+  </component>
+  <component name="TaskManager">
+    <task active="true" id="Default" summary="Default task">
+      <changelist id="65c1ada5-6f56-4f18-9096-9578840f8ac4" name="Default Changelist" comment="" />
+      <created>1668998669220</created>
+      <option name="number" value="Default" />
+      <option name="presentableId" value="Default" />
+      <updated>1668998669220</updated>
+    </task>
+    <servers />
+  </component>
+</project>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.DS_Store b/AndroidOpenDemo/.DS_Store
index 36951ce..c04119c 100644
--- a/AndroidOpenDemo/.DS_Store
+++ b/AndroidOpenDemo/.DS_Store
Binary files differ
diff --git a/AndroidOpenDemo/.idea/.name b/AndroidOpenDemo/.idea/.name
new file mode 100644
index 0000000..7c4b093
--- /dev/null
+++ b/AndroidOpenDemo/.idea/.name
@@ -0,0 +1 @@
+LCAndroidSDKDemo
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/caches/build_file_checksums.ser b/AndroidOpenDemo/.idea/caches/build_file_checksums.ser
new file mode 100644
index 0000000..6399dbe
--- /dev/null
+++ b/AndroidOpenDemo/.idea/caches/build_file_checksums.ser
Binary files differ
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle____DeviceAddModule_libs_imageload4dh_jar.xml b/AndroidOpenDemo/.idea/libraries/Gradle____DeviceAddModule_libs_imageload4dh_jar.xml
new file mode 100644
index 0000000..300c62f
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle____DeviceAddModule_libs_imageload4dh_jar.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: ./DeviceAddModule/libs/imageload4dh.jar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/DeviceAddModule/libs/imageload4dh.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle____DeviceAddModule_libs_lechangeSDK_jar.xml b/AndroidOpenDemo/.idea/libraries/Gradle____DeviceAddModule_libs_lechangeSDK_jar.xml
new file mode 100644
index 0000000..e3646fd
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle____DeviceAddModule_libs_lechangeSDK_jar.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: ./DeviceAddModule/libs/lechangeSDK.jar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/DeviceAddModule/libs/lechangeSDK.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle______________gradle_caches_transforms_1_files_1_1_DHMobileToolset_1_1_1_aar_f7d8eb2f1804db3345ec5a537e5ec0db.xml b/AndroidOpenDemo/.idea/libraries/Gradle______________gradle_caches_transforms_1_files_1_1_DHMobileToolset_1_1_1_aar_f7d8eb2f1804db3345ec5a537e5ec0db.xml
new file mode 100644
index 0000000..417cf1b
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle______________gradle_caches_transforms_1_files_1_1_DHMobileToolset_1_1_1_aar_f7d8eb2f1804db3345ec5a537e5ec0db.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: ./../../../.gradle/caches/transforms-1/files-1.1/DHMobileToolset-1.1.1.aar/f7d8eb2f1804db3345ec5a537e5ec0db">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/DHMobileToolset-1.1.1.aar/f7d8eb2f1804db3345ec5a537e5ec0db/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/DHMobileToolset-1.1.1.aar/f7d8eb2f1804db3345ec5a537e5ec0db/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle______________gradle_caches_transforms_1_files_1_1_DHScanner_1_0_7_aar_0ecd90b9bed2580cb7702e452029b5fe.xml b/AndroidOpenDemo/.idea/libraries/Gradle______________gradle_caches_transforms_1_files_1_1_DHScanner_1_0_7_aar_0ecd90b9bed2580cb7702e452029b5fe.xml
new file mode 100644
index 0000000..b9075b0
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle______________gradle_caches_transforms_1_files_1_1_DHScanner_1_0_7_aar_0ecd90b9bed2580cb7702e452029b5fe.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: ./../../../.gradle/caches/transforms-1/files-1.1/DHScanner-1.0.7.aar/0ecd90b9bed2580cb7702e452029b5fe">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/DHScanner-1.0.7.aar/0ecd90b9bed2580cb7702e452029b5fe/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/DHScanner-1.0.7.aar/0ecd90b9bed2580cb7702e452029b5fe/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle______________gradle_caches_transforms_1_files_1_1_PullToRefreshListView_release_aar_1232b6310601f161610e5eb82d661087.xml b/AndroidOpenDemo/.idea/libraries/Gradle______________gradle_caches_transforms_1_files_1_1_PullToRefreshListView_release_aar_1232b6310601f161610e5eb82d661087.xml
new file mode 100644
index 0000000..3c3411a
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle______________gradle_caches_transforms_1_files_1_1_PullToRefreshListView_release_aar_1232b6310601f161610e5eb82d661087.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: ./../../../.gradle/caches/transforms-1/files-1.1/PullToRefreshListView-release.aar/1232b6310601f161610e5eb82d661087">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/PullToRefreshListView-release.aar/1232b6310601f161610e5eb82d661087/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/PullToRefreshListView-release.aar/1232b6310601f161610e5eb82d661087/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle____third_zxing_libs_zxing_3_3_0_jar.xml b/AndroidOpenDemo/.idea/libraries/Gradle____third_zxing_libs_zxing_3_3_0_jar.xml
new file mode 100644
index 0000000..d066d24
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle____third_zxing_libs_zxing_3_3_0_jar.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: ./third-zxing/libs/zxing_3.3.0.jar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/third-zxing/libs/zxing_3.3.0.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__android_arch_core_common_1_1_1.xml b/AndroidOpenDemo/.idea/libraries/Gradle__android_arch_core_common_1_1_1.xml
new file mode 100644
index 0000000..8100439
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__android_arch_core_common_1_1_1.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: android.arch.core:common:1.1.1">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.core/common/1.1.1/e55b70d1f5620db124b3e85a7f4bdc7bd48d9f95/common-1.1.1.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml
new file mode 100644
index 0000000..9259dd4
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: android.arch.core:runtime:1.1.1@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/runtime-1.1.1.aar/f3914d400c29aab655fe9080500f1c18/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/runtime-1.1.1.aar/f3914d400c29aab655fe9080500f1c18/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1.xml b/AndroidOpenDemo/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1.xml
new file mode 100644
index 0000000..0d77ad2
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: android.arch.lifecycle:common:1.1.1">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/common/1.1.1/207a6efae6a3555e326de41f76bdadd9a239cbce/common-1.1.1.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml
new file mode 100644
index 0000000..f20ad41
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: android.arch.lifecycle:livedata:1.1.1@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/livedata-1.1.1.aar/2dafc25bec144912cd7baa2b06103bf0/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/livedata-1.1.1.aar/2dafc25bec144912cd7baa2b06103bf0/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml
new file mode 100644
index 0000000..3ab1fa7
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: android.arch.lifecycle:livedata-core:1.1.1@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/livedata-core-1.1.1.aar/51cf83ab2bb2c1ff34397b3858b71eff/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/livedata-core-1.1.1.aar/51cf83ab2bb2c1ff34397b3858b71eff/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml
new file mode 100644
index 0000000..788c03f
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: android.arch.lifecycle:runtime:1.1.1@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/runtime-1.1.1.aar/65f9fbf2d6dae92de8d9ea1f65ddbe69/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/runtime-1.1.1.aar/65f9fbf2d6dae92de8d9ea1f65ddbe69/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml
new file mode 100644
index 0000000..3bb55eb
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: android.arch.lifecycle:viewmodel:1.1.1@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/viewmodel-1.1.1.aar/c6db8ff658b2b8de4a22f78c823055bf/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/viewmodel-1.1.1.aar/c6db8ff658b2b8de4a22f78c823055bf/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_alibaba_arouter_annotation_1_0_6.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_alibaba_arouter_annotation_1_0_6.xml
new file mode 100644
index 0000000..a4e2045
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_alibaba_arouter_annotation_1_0_6.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: com.alibaba:arouter-annotation:1.0.6">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.alibaba/arouter-annotation/1.0.6/667fa943838b31d3a94cce6fe9e0b786cd9445ae/arouter-annotation-1.0.6.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_alibaba_arouter_api_1_4_1_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_alibaba_arouter_api_1_4_1_aar.xml
new file mode 100644
index 0000000..1b8c04c
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_alibaba_arouter_api_1_4_1_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.alibaba:arouter-api:1.4.1@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/arouter-api-1.4.1.aar/015e319478c0f7958e0441563ac7d56a/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/arouter-api-1.4.1.aar/015e319478c0f7958e0441563ac7d56a/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml
new file mode 100644
index 0000000..6e5bca9
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:animated-vector-drawable:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/animated-vector-drawable-28.0.0.aar/743c9ae12b78dc2ed55955f6c0e0d327/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/animated-vector-drawable-28.0.0.aar/743c9ae12b78dc2ed55955f6c0e0d327/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml
new file mode 100644
index 0000000..1ab24f8
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:appcompat-v7:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/appcompat-v7-28.0.0.aar/af1e5516ccbf3c62a3eb96e82dd2f042/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/appcompat-v7-28.0.0.aar/af1e5516ccbf3c62a3eb96e82dd2f042/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/appcompat-v7-28.0.0.aar/af1e5516ccbf3c62a3eb96e82dd2f042/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml
new file mode 100644
index 0000000..199abb7
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:asynclayoutinflater:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/asynclayoutinflater-28.0.0.aar/fc1d79774b572c7edc6165c2044bc836/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/asynclayoutinflater-28.0.0.aar/fc1d79774b572c7edc6165c2044bc836/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_cardview_v7_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_cardview_v7_28_0_0_aar.xml
new file mode 100644
index 0000000..e906af7
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_cardview_v7_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:cardview-v7:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/cardview-v7-28.0.0.aar/d08606ace6213f60bdd13cf318fcac05/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/cardview-v7-28.0.0.aar/d08606ace6213f60bdd13cf318fcac05/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_collections_28_0_0.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_collections_28_0_0.xml
new file mode 100644
index 0000000..6ccf636
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_collections_28_0_0.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:collections:28.0.0">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/collections/28.0.0/c1bcdade4d3cc2836130424a3f3e4182c666a745/collections-28.0.0.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_0_aar.xml
new file mode 100644
index 0000000..69d35e6
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.constraint:constraint-layout:1.1.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/constraint-layout-1.1.0.aar/1d8b7a5d9e326d5497f2d8c4e7d7f00a/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/constraint-layout-1.1.0.aar/1d8b7a5d9e326d5497f2d8c4e7d7f00a/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_1_0.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_1_0.xml
new file mode 100644
index 0000000..5dbff82
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_1_0.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.constraint:constraint-layout-solver:1.1.0">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support.constraint/constraint-layout-solver/1.1.0/931532e953a477f876f2de18c2e7f16eee01078f/constraint-layout-solver-1.1.0.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml
new file mode 100644
index 0000000..995942f
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:coordinatorlayout:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/coordinatorlayout-28.0.0.aar/d6fd15962868e41da2f2d643faf7eedf/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/coordinatorlayout-28.0.0.aar/d6fd15962868e41da2f2d643faf7eedf/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/coordinatorlayout-28.0.0.aar/d6fd15962868e41da2f2d643faf7eedf/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml
new file mode 100644
index 0000000..ed00c7d
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:cursoradapter:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/cursoradapter-28.0.0.aar/9361a234a82258237d549852fa3b395e/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/cursoradapter-28.0.0.aar/9361a234a82258237d549852fa3b395e/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml
new file mode 100644
index 0000000..e86e8c2
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:customview:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/customview-28.0.0.aar/358ea5e98f1f69eb38944bd2ac523ac4/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/customview-28.0.0.aar/358ea5e98f1f69eb38944bd2ac523ac4/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_design_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_design_28_0_0_aar.xml
new file mode 100644
index 0000000..7055c0e
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_design_28_0_0_aar.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:design:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/design-28.0.0.aar/2ef48b3aca247c9437a11bcb025e6060/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/design-28.0.0.aar/2ef48b3aca247c9437a11bcb025e6060/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/design-28.0.0.aar/2ef48b3aca247c9437a11bcb025e6060/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml
new file mode 100644
index 0000000..6a00a45
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:documentfile:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/documentfile-28.0.0.aar/559c6031ec394a9e4c19d120e5fee401/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/documentfile-28.0.0.aar/559c6031ec394a9e4c19d120e5fee401/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml
new file mode 100644
index 0000000..382b179
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:drawerlayout:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/drawerlayout-28.0.0.aar/db044f7318c1f1029be44dbf263c97ca/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/drawerlayout-28.0.0.aar/db044f7318c1f1029be44dbf263c97ca/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/drawerlayout-28.0.0.aar/db044f7318c1f1029be44dbf263c97ca/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml
new file mode 100644
index 0000000..9a893a3
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:interpolator:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/interpolator-28.0.0.aar/8e57400c9ccf3285f7b4a03cbdc54ae8/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/interpolator-28.0.0.aar/8e57400c9ccf3285f7b4a03cbdc54ae8/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml
new file mode 100644
index 0000000..3ee626f
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:loader:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/loader-28.0.0.aar/67a451e4b57e284303e25d6da1998e1b/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/loader-28.0.0.aar/67a451e4b57e284303e25d6da1998e1b/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml
new file mode 100644
index 0000000..46e94a7
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:localbroadcastmanager:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/localbroadcastmanager-28.0.0.aar/63492ab9a82305c0fd760d4562357a82/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/localbroadcastmanager-28.0.0.aar/63492ab9a82305c0fd760d4562357a82/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml
new file mode 100644
index 0000000..c86502b
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:print:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/print-28.0.0.aar/e01cda6a4f1490f83e0e164212992f54/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/print-28.0.0.aar/e01cda6a4f1490f83e0e164212992f54/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/print-28.0.0.aar/e01cda6a4f1490f83e0e164212992f54/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0_aar.xml
new file mode 100644
index 0000000..e80bd3e
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0_aar.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:recyclerview-v7:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/recyclerview-v7-28.0.0.aar/24421858359922ef9c9daa6635011ff2/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/recyclerview-v7-28.0.0.aar/24421858359922ef9c9daa6635011ff2/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/recyclerview-v7-28.0.0.aar/24421858359922ef9c9daa6635011ff2/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml
new file mode 100644
index 0000000..b29f1a4
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:slidingpanelayout:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/slidingpanelayout-28.0.0.aar/05b3dd8a9b8acf6a3cf18008b7b61034/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/slidingpanelayout-28.0.0.aar/05b3dd8a9b8acf6a3cf18008b7b61034/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0.xml
new file mode 100644
index 0000000..24e83bc
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-annotations:28.0.0">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/support-annotations/28.0.0/ed73f5337a002d1fd24339d5fb08c2c9d9ca60d8/support-annotations-28.0.0.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml
new file mode 100644
index 0000000..f6faafe
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-compat:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-compat-28.0.0.aar/76ff6b44cfa7b874c02780054c242146/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-compat-28.0.0.aar/76ff6b44cfa7b874c02780054c242146/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-compat-28.0.0.aar/76ff6b44cfa7b874c02780054c242146/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml
new file mode 100644
index 0000000..dbcb25e
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-core-ui:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-core-ui-28.0.0.aar/bded591d04c13b20403a46a77e5a9dbb/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-core-ui-28.0.0.aar/bded591d04c13b20403a46a77e5a9dbb/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml
new file mode 100644
index 0000000..6c1e611
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-core-utils:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-core-utils-28.0.0.aar/0dbd2805f802b9d11f9e1855c46961c8/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-core-utils-28.0.0.aar/0dbd2805f802b9d11f9e1855c46961c8/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml
new file mode 100644
index 0000000..fb63b43
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-fragment:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-fragment-28.0.0.aar/8abac4bbb8af8a373b6a9ec06d51ea85/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-fragment-28.0.0.aar/8abac4bbb8af8a373b6a9ec06d51ea85/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-fragment-28.0.0.aar/8abac4bbb8af8a373b6a9ec06d51ea85/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_media_compat_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_media_compat_28_0_0_aar.xml
new file mode 100644
index 0000000..894999d
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_media_compat_28_0_0_aar.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-media-compat:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-media-compat-28.0.0.aar/7af6a08473ce8027f47e2e6295b3d538/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-media-compat-28.0.0.aar/7af6a08473ce8027f47e2e6295b3d538/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-media-compat-28.0.0.aar/7af6a08473ce8027f47e2e6295b3d538/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_v4_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_v4_28_0_0_aar.xml
new file mode 100644
index 0000000..771250a
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_v4_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-v4:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-v4-28.0.0.aar/337cab79775309d0bf2cbe9c1c583100/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-v4-28.0.0.aar/337cab79775309d0bf2cbe9c1c583100/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml
new file mode 100644
index 0000000..fd641b4
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-vector-drawable:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-vector-drawable-28.0.0.aar/c35f9e81b033c59ee523dc9fe6b221a7/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-vector-drawable-28.0.0.aar/c35f9e81b033c59ee523dc9fe6b221a7/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml
new file mode 100644
index 0000000..9120faf
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:swiperefreshlayout:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/swiperefreshlayout-28.0.0.aar/89aeeeef975e5446c20b20f8b81d9549/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/swiperefreshlayout-28.0.0.aar/89aeeeef975e5446c20b20f8b81d9549/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/swiperefreshlayout-28.0.0.aar/89aeeeef975e5446c20b20f8b81d9549/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_2_2_2_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_2_2_2_aar.xml
new file mode 100644
index 0000000..1eaee13
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_2_2_2_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.test.espresso:espresso-core:2.2.2@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/espresso-core-2.2.2.aar/30c8156779e315641ac9677bede0aec2/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/espresso-core-2.2.2.aar/30c8156779e315641ac9677bede0aec2/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2_aar.xml
new file mode 100644
index 0000000..fea0167
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.test.espresso:espresso-core:3.0.2@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/espresso-core-3.0.2.aar/08753eefdd4f9556e2ec7ff764778aaf/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/espresso-core-3.0.2.aar/08753eefdd4f9556e2ec7ff764778aaf/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_2_2_2_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_2_2_2_aar.xml
new file mode 100644
index 0000000..b616655
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_2_2_2_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.test.espresso:espresso-idling-resource:2.2.2@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/espresso-idling-resource-2.2.2.aar/bce9e2e0c0ec2d3973e11b9515b39511/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/espresso-idling-resource-2.2.2.aar/bce9e2e0c0ec2d3973e11b9515b39511/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2_aar.xml
new file mode 100644
index 0000000..e03e4f0
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.test.espresso:espresso-idling-resource:3.0.2@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/espresso-idling-resource-3.0.2.aar/f87341fd3005a2edd8f630f762a57e2e/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/espresso-idling-resource-3.0.2.aar/f87341fd3005a2edd8f630f762a57e2e/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_exposed_instrumentation_api_publish_0_5_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_exposed_instrumentation_api_publish_0_5_aar.xml
new file mode 100644
index 0000000..1af21e4
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_exposed_instrumentation_api_publish_0_5_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.test:exposed-instrumentation-api-publish:0.5@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/exposed-instrumentation-api-publish-0.5.aar/bc62c7cb534a39bd9062c0d2fb1e4343/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/exposed-instrumentation-api-publish-0.5.aar/bc62c7cb534a39bd9062c0d2fb1e4343/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_monitor_1_0_2_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_monitor_1_0_2_aar.xml
new file mode 100644
index 0000000..ca4a32c
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_monitor_1_0_2_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.test:monitor:1.0.2@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/monitor-1.0.2.aar/84cf6733468782b268ac8a1229f0c3c4/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/monitor-1.0.2.aar/84cf6733468782b268ac8a1229f0c3c4/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_rules_0_5_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_rules_0_5_aar.xml
new file mode 100644
index 0000000..078016b
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_rules_0_5_aar.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.test:rules:0.5@aar">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/rules-0.5.aar/3d25ed1044033d691e695a547f283ae0/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/rules-0.5.aar/3d25ed1044033d691e695a547f283ae0/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/rules-0.5.aar/3d25ed1044033d691e695a547f283ae0/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_runner_0_5_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_runner_0_5_aar.xml
new file mode 100644
index 0000000..812f4eb
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_runner_0_5_aar.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.test:runner:0.5@aar">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/runner-0.5.aar/bd213aa88f7431826e6e6dd5e32cf256/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/runner-0.5.aar/bd213aa88f7431826e6e6dd5e32cf256/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/runner-0.5.aar/bd213aa88f7431826e6e6dd5e32cf256/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_runner_1_0_2_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_runner_1_0_2_aar.xml
new file mode 100644
index 0000000..0153720
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_test_runner_1_0_2_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.test:runner:1.0.2@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/runner-1.0.2.aar/1d2f271d3bd18dc681ea132350e497ed/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/runner-1.0.2.aar/1d2f271d3bd18dc681ea132350e497ed/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_transition_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_transition_28_0_0_aar.xml
new file mode 100644
index 0000000..7641448
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_transition_28_0_0_aar.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:transition:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/transition-28.0.0.aar/6c6e415c4d5e81dafe1aac0c92b8d6e4/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/transition-28.0.0.aar/6c6e415c4d5e81dafe1aac0c92b8d6e4/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/transition-28.0.0.aar/6c6e415c4d5e81dafe1aac0c92b8d6e4/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml
new file mode 100644
index 0000000..2fd6f05
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:versionedparcelable:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/versionedparcelable-28.0.0.aar/9d982810dfe7b7c0aa44a2acc7b6c371/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/versionedparcelable-28.0.0.aar/9d982810dfe7b7c0aa44a2acc7b6c371/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml
new file mode 100644
index 0000000..e931775
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:viewpager:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/viewpager-28.0.0.aar/994f7681272756449a4ecf21cb58d2d5/res" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/viewpager-28.0.0.aar/994f7681272756449a4ecf21cb58d2d5/AndroidManifest.xml" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1.xml
new file mode 100644
index 0000000..2b834ea
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.code.findbugs:jsr305:2.0.1">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/2.0.1/516c03b21d50a644d538de0f0369c620989cd8f0/jsr305-2.0.1.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_google_code_gson_gson_2_8_8.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_google_code_gson_gson_2_8_8.xml
new file mode 100644
index 0000000..3075c13
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_google_code_gson_gson_2_8_8.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.code.gson:gson:2.8.8">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.8.8/431fc3cbc0ff81abdbfde070062741089c3ba874/gson-2.8.8.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1.xml b/AndroidOpenDemo/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1.xml
new file mode 100644
index 0000000..dcf9be0
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: com.squareup:javawriter:2.1.1">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup/javawriter/2.1.1/67ff45d9ae02e583d0f9b3432a5ebbe05c30c966/javawriter-2.1.1.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__javax_annotation_javax_annotation_api_1_2.xml b/AndroidOpenDemo/.idea/libraries/Gradle__javax_annotation_javax_annotation_api_1_2.xml
new file mode 100644
index 0000000..0a6bc48
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__javax_annotation_javax_annotation_api_1_2.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: javax.annotation:javax.annotation-api:1.2">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/javax.annotation/javax.annotation-api/1.2/479c1e06db31c432330183f5cae684163f186146/javax.annotation-api-1.2.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml b/AndroidOpenDemo/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml
new file mode 100644
index 0000000..cbad166
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: javax.inject:javax.inject:1">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/javax.inject/javax.inject/1/6975da39a7040257bd51d21a231b76c915872d38/javax.inject-1.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__junit_junit_4_12.xml b/AndroidOpenDemo/.idea/libraries/Gradle__junit_junit_4_12.xml
new file mode 100644
index 0000000..c1b646b
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__junit_junit_4_12.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: junit:junit:4.12">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/junit/junit/4.12/2973d150c0dc1fefe998f834810d68f278ea58ec/junit-4.12.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0.xml b/AndroidOpenDemo/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0.xml
new file mode 100644
index 0000000..326588d
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: net.sf.kxml:kxml2:2.3.0">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.sf.kxml/kxml2/2.3.0/ccbc77a5fd907ef863c29f3596c6f54ffa4e9442/kxml2-2.3.0.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__org_greenrobot_eventbus_3_0_0.xml b/AndroidOpenDemo/.idea/libraries/Gradle__org_greenrobot_eventbus_3_0_0.xml
new file mode 100644
index 0000000..a593ca3
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__org_greenrobot_eventbus_3_0_0.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: org.greenrobot:eventbus:3.0.0">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.greenrobot/eventbus/3.0.0/ddd99896e9569eaababbe81b35d80e1b91c4ad85/eventbus-3.0.0.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.greenrobot/eventbus/3.0.0/777f0a941d3dd0f9988d4f22b42b36ce2fe64ea4/eventbus-3.0.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3.xml b/AndroidOpenDemo/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3.xml
new file mode 100644
index 0000000..30bf23a
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: org.hamcrest:hamcrest-core:1.3">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/42a25dc3219429f0e5d060061f71acb49bf010a0/hamcrest-core-1.3.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3.xml b/AndroidOpenDemo/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3.xml
new file mode 100644
index 0000000..16c340f
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: org.hamcrest:hamcrest-integration:1.3">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-integration/1.3/5de0c73fef18917cd85d0ab70bb23818685e4dfd/hamcrest-integration-1.3.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3.xml b/AndroidOpenDemo/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3.xml
new file mode 100644
index 0000000..7903a97
--- /dev/null
+++ b/AndroidOpenDemo/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: org.hamcrest:hamcrest-library:1.3">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-library/1.3/4785a3c21320980282f9f33d0d1264a69040538f/hamcrest-library-1.3.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/modules.xml b/AndroidOpenDemo/.idea/modules.xml
new file mode 100644
index 0000000..ca09bd2
--- /dev/null
+++ b/AndroidOpenDemo/.idea/modules.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/modules/LCAndroidSDKDemo.iml" filepath="$PROJECT_DIR$/.idea/modules/LCAndroidSDKDemo.iml" />
+      <module fileurl="file://$PROJECT_DIR$/.idea/modules/DeviceAddModule/LCAndroidSDKDemo.DeviceAddModule.iml" filepath="$PROJECT_DIR$/.idea/modules/DeviceAddModule/LCAndroidSDKDemo.DeviceAddModule.iml" />
+      <module fileurl="file://$PROJECT_DIR$/.idea/modules/app/LCAndroidSDKDemo.app.iml" filepath="$PROJECT_DIR$/.idea/modules/app/LCAndroidSDKDemo.app.iml" />
+      <module fileurl="file://$PROJECT_DIR$/.idea/modules/third-zxing/LCAndroidSDKDemo.third-zxing.iml" filepath="$PROJECT_DIR$/.idea/modules/third-zxing/LCAndroidSDKDemo.third-zxing.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/modules/DeviceAddModule/LCAndroidSDKDemo.DeviceAddModule.iml b/AndroidOpenDemo/.idea/modules/DeviceAddModule/LCAndroidSDKDemo.DeviceAddModule.iml
index 54de706..d33c304 100644
--- a/AndroidOpenDemo/.idea/modules/DeviceAddModule/LCAndroidSDKDemo.DeviceAddModule.iml
+++ b/AndroidOpenDemo/.idea/modules/DeviceAddModule/LCAndroidSDKDemo.DeviceAddModule.iml
@@ -22,7 +22,6 @@
         <option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/../../../DeviceAddModule/src/main/res;file://$MODULE_DIR$/../../../DeviceAddModule/src/main/res/lc;file://$MODULE_DIR$/../../../DeviceAddModule/src/main/res/lc/drawable;file://$MODULE_DIR$/../../../DeviceAddModule/src/main/res/lc/drawable-hdpi;file://$MODULE_DIR$/../../../DeviceAddModule/src/main/res/lc/drawable-xhdpi;file://$MODULE_DIR$/../../../DeviceAddModule/src/main/res/lc/drawable-xxhdpi;file://$MODULE_DIR$/../../../DeviceAddModule/src/main/res/lc/anim;file://$MODULE_DIR$/../../../DeviceAddModule/src/main/res/lc/color;file://$MODULE_DIR$/../../../DeviceAddModule/src/main/res/lc/values;file://$MODULE_DIR$/../../../DeviceAddModule/src/main/res/lc/values-en;file://$MODULE_DIR$/../../../DeviceAddModule/src/main/res/lc/layout;file://$MODULE_DIR$/../../../DeviceAddModule/src/debug/res;file://$MODULE_DIR$/../../../DeviceAddModule/build/generated/res/rs/debug;file://$MODULE_DIR$/../../../DeviceAddModule/build/generated/res/resValues/debug" />
         <option name="TEST_RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/../../../DeviceAddModule/src/androidTest/res;file://$MODULE_DIR$/../../../DeviceAddModule/src/androidTestDebug/res;file://$MODULE_DIR$/../../../DeviceAddModule/build/generated/res/rs/androidTest/debug;file://$MODULE_DIR$/../../../DeviceAddModule/build/generated/res/resValues/androidTest/debug" />
         <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
-        <option name="PROJECT_TYPE" value="1" />
       </configuration>
     </facet>
   </component>
@@ -57,7 +56,8 @@
     <orderEntry type="library" name="Gradle: ./DeviceAddModule/libs/imageload4dh.jar" level="project" />
     <orderEntry type="library" name="Gradle: ./DeviceAddModule/libs/lechangeSDK.jar" level="project" />
     <orderEntry type="library" name="Gradle: ./third-zxing/libs/zxing_3.3.0.jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.google.code.gson:gson:2.8.1" level="project" />
+    <orderEntry type="library" name="Gradle: org.greenrobot:eventbus:3.0.0" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.code.gson:gson:2.8.8" level="project" />
     <orderEntry type="library" name="Gradle: com.alibaba:arouter-annotation:1.0.6" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:collections:28.0.0" level="project" />
     <orderEntry type="library" name="Gradle: android.arch.lifecycle:common:1.1.1" level="project" />
diff --git a/AndroidOpenDemo/.idea/modules/LCAndroidSDKDemo.iml b/AndroidOpenDemo/.idea/modules/LCAndroidSDKDemo.iml
new file mode 100644
index 0000000..960f337
--- /dev/null
+++ b/AndroidOpenDemo/.idea/modules/LCAndroidSDKDemo.iml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.id="LCAndroidSDKDemo" external.linked.project.path="$MODULE_DIR$/../.." external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
+  <component name="FacetManager">
+    <facet type="java-gradle" name="Java-Gradle">
+      <configuration>
+        <option name="BUILDABLE" value="false" />
+      </configuration>
+    </facet>
+  </component>
+  <component name="NewModuleRootManager">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$/../..">
+      <excludeFolder url="file://$MODULE_DIR$/../../.gradle" />
+      <excludeFolder url="file://$MODULE_DIR$/../../build" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/modules/app/LCAndroidSDKDemo.app.iml b/AndroidOpenDemo/.idea/modules/app/LCAndroidSDKDemo.app.iml
index 45f26c2..74469ec 100644
--- a/AndroidOpenDemo/.idea/modules/app/LCAndroidSDKDemo.app.iml
+++ b/AndroidOpenDemo/.idea/modules/app/LCAndroidSDKDemo.app.iml
@@ -22,7 +22,6 @@
         <option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/../../../app/src/main/res;file://$MODULE_DIR$/../../../app/src/debug/res;file://$MODULE_DIR$/../../../app/build/generated/res/rs/debug;file://$MODULE_DIR$/../../../app/build/generated/res/resValues/debug" />
         <option name="TEST_RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/../../../app/src/androidTest/res;file://$MODULE_DIR$/../../../app/src/androidTestDebug/res;file://$MODULE_DIR$/../../../app/build/generated/res/rs/androidTest/debug;file://$MODULE_DIR$/../../../app/build/generated/res/resValues/androidTest/debug" />
         <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
-        <option name="PROJECT_TYPE" value="1" />
       </configuration>
     </facet>
   </component>
@@ -57,32 +56,15 @@
     <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:runner:1.0.2@aar" level="project" />
     <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:monitor:1.0.2@aar" level="project" />
     <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-idling-resource:3.0.2@aar" level="project" />
-    <orderEntry type="library" name="Gradle: ./DeviceAddModule/libs/imageload4dh.jar" level="project" />
-    <orderEntry type="library" name="Gradle: ./third-zxing/libs/zxing_3.3.0.jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.google.code.gson:gson:2.8.1" level="project" />
-    <orderEntry type="library" name="Gradle: com.alibaba:arouter-annotation:1.0.6" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:collections:28.0.0" level="project" />
     <orderEntry type="library" name="Gradle: android.arch.lifecycle:common:1.1.1" level="project" />
     <orderEntry type="library" name="Gradle: android.arch.core:common:1.1.1" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-annotations:28.0.0" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support.constraint:constraint-layout-solver:1.1.0" level="project" />
-    <orderEntry type="library" name="Gradle: ./../../../.gradle/caches/transforms-1/files-1.1/PullToRefreshListView-release.aar/1232b6310601f161610e5eb82d661087" level="project" />
-    <orderEntry type="library" name="Gradle: ./../../../.gradle/caches/transforms-1/files-1.1/DHMobileToolset-1.1.1.aar/f7d8eb2f1804db3345ec5a537e5ec0db" level="project" />
-    <orderEntry type="library" name="Gradle: ./../../../.gradle/caches/transforms-1/files-1.1/DHScanner-1.0.7.aar/0ecd90b9bed2580cb7702e452029b5fe" level="project" />
-    <orderEntry type="library" name="Gradle: com.alibaba:arouter-api:1.4.1@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-v4:28.0.0@aar" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:design:28.0.0@aar" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:recyclerview-v7:28.0.0@aar" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:appcompat-v7:28.0.0@aar" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:cardview-v7:28.0.0@aar" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support.constraint:constraint-layout:1.1.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-media-compat:28.0.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-fragment:28.0.0@aar" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:animated-vector-drawable:28.0.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-core-ui:28.0.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-core-utils:28.0.0@aar" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:support-vector-drawable:28.0.0@aar" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:transition:28.0.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:loader:28.0.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:viewpager:28.0.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:coordinatorlayout:28.0.0@aar" level="project" />
@@ -93,17 +75,15 @@
     <orderEntry type="library" name="Gradle: com.android.support:asynclayoutinflater:28.0.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-compat:28.0.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:versionedparcelable:28.0.0@aar" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:cursoradapter:28.0.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: android.arch.lifecycle:runtime:1.1.1@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:documentfile:28.0.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:localbroadcastmanager:28.0.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:print:28.0.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:interpolator:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:cursoradapter:28.0.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: android.arch.lifecycle:viewmodel:1.1.1@aar" level="project" />
     <orderEntry type="library" name="Gradle: android.arch.lifecycle:livedata:1.1.1@aar" level="project" />
     <orderEntry type="library" name="Gradle: android.arch.lifecycle:livedata-core:1.1.1@aar" level="project" />
     <orderEntry type="library" name="Gradle: android.arch.core:runtime:1.1.1@aar" level="project" />
-    <orderEntry type="module" module-name="LCAndroidSDKDemo.DeviceAddModule" />
-    <orderEntry type="module" module-name="LCAndroidSDKDemo.third-zxing" />
   </component>
 </module>
\ No newline at end of file
diff --git a/AndroidOpenDemo/.idea/modules/third-zxing/LCAndroidSDKDemo.third-zxing.iml b/AndroidOpenDemo/.idea/modules/third-zxing/LCAndroidSDKDemo.third-zxing.iml
new file mode 100644
index 0000000..f6f9fd8
--- /dev/null
+++ b/AndroidOpenDemo/.idea/modules/third-zxing/LCAndroidSDKDemo.third-zxing.iml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.id=":third-zxing" external.linked.project.path="$MODULE_DIR$/../../../third-zxing" external.root.project.path="$MODULE_DIR$/../../.." external.system.id="GRADLE" external.system.module.group="LCAndroidSDKDemo" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
+  <component name="FacetManager">
+    <facet type="android-gradle" name="Android-Gradle">
+      <configuration>
+        <option name="GRADLE_PROJECT_PATH" value=":third-zxing" />
+        <option name="LAST_SUCCESSFUL_SYNC_AGP_VERSION" value="3.2.1" />
+        <option name="LAST_KNOWN_AGP_VERSION" value="3.2.1" />
+      </configuration>
+    </facet>
+    <facet type="android" name="Android">
+      <configuration>
+        <option name="SELECTED_BUILD_VARIANT" value="debug" />
+        <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
+        <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
+        <afterSyncTasks>
+          <task>generateDebugSources</task>
+        </afterSyncTasks>
+        <option name="ALLOW_USER_CONFIGURATION" value="false" />
+        <option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
+        <option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
+        <option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/../../../third-zxing/src/main/res;file://$MODULE_DIR$/../../../third-zxing/src/debug/res;file://$MODULE_DIR$/../../../third-zxing/build/generated/res/rs/debug;file://$MODULE_DIR$/../../../third-zxing/build/generated/res/resValues/debug" />
+        <option name="TEST_RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/../../../third-zxing/src/androidTest/res;file://$MODULE_DIR$/../../../third-zxing/src/androidTestDebug/res;file://$MODULE_DIR$/../../../third-zxing/build/generated/res/rs/androidTest/debug;file://$MODULE_DIR$/../../../third-zxing/build/generated/res/resValues/androidTest/debug" />
+        <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
+        <option name="PROJECT_TYPE" value="1" />
+      </configuration>
+    </facet>
+  </component>
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
+    <output url="file://$MODULE_DIR$/../../../third-zxing/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes" />
+    <output-test url="file://$MODULE_DIR$/../../../third-zxing/build/intermediates/javac/debugUnitTest/compileDebugUnitTestJavaWithJavac/classes" />
+    <exclude-output />
+    <content url="file://$MODULE_DIR$/../../../third-zxing">
+      <sourceFolder url="file://$MODULE_DIR$/../../../third-zxing/build/generated/res/resValues/debug" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/../../../third-zxing/build/generated/res/rs/debug" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/../../../third-zxing/build/generated/source/apt/debug" isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/../../../third-zxing/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/../../../third-zxing/build/generated/source/rs/debug" isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/../../../third-zxing/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/../../../third-zxing/src/main/res" type="java-resource" />
+      <excludeFolder url="file://$MODULE_DIR$/../../../third-zxing/.gradle" />
+      <excludeFolder url="file://$MODULE_DIR$/../../../third-zxing/build" />
+    </content>
+    <orderEntry type="jdk" jdkName="Android API 29 Platform" jdkType="Android SDK" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" scope="TEST" name="Gradle: junit:junit:4.12" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-core:1.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.squareup:javawriter:2.1.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: javax.inject:javax.inject:1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-integration:1.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-library:1.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.google.code.findbugs:jsr305:2.0.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: javax.annotation:javax.annotation-api:1.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-core:2.2.2@aar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:rules:0.5@aar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:runner:0.5@aar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-idling-resource:2.2.2@aar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:exposed-instrumentation-api-publish:0.5@aar" level="project" />
+    <orderEntry type="library" name="Gradle: ./third-zxing/libs/zxing_3.3.0.jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:collections:28.0.0" level="project" />
+    <orderEntry type="library" name="Gradle: android.arch.lifecycle:common:1.1.1" level="project" />
+    <orderEntry type="library" name="Gradle: android.arch.core:common:1.1.1" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-annotations:28.0.0" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:appcompat-v7:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-fragment:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:animated-vector-drawable:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-core-ui:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-core-utils:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-vector-drawable:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:loader:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:viewpager:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:coordinatorlayout:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:drawerlayout:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:slidingpanelayout:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:customview:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:swiperefreshlayout:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:asynclayoutinflater:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-compat:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:versionedparcelable:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:cursoradapter:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: android.arch.lifecycle:runtime:1.1.1@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:documentfile:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:localbroadcastmanager:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:print:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: android.arch.lifecycle:viewmodel:1.1.1@aar" level="project" />
+    <orderEntry type="library" name="Gradle: android.arch.lifecycle:livedata:1.1.1@aar" level="project" />
+    <orderEntry type="library" name="Gradle: android.arch.lifecycle:livedata-core:1.1.1@aar" level="project" />
+    <orderEntry type="library" name="Gradle: android.arch.core:runtime:1.1.1@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:interpolator:28.0.0@aar" level="project" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/AndroidOpenDemo/DeviceAddModule/.DS_Store b/AndroidOpenDemo/DeviceAddModule/.DS_Store
index d04fcfb..eb2320e 100644
--- a/AndroidOpenDemo/DeviceAddModule/.DS_Store
+++ b/AndroidOpenDemo/DeviceAddModule/.DS_Store
Binary files differ
diff --git a/AndroidOpenDemo/DeviceAddModule/libs/gson-2.8.8.jar b/AndroidOpenDemo/DeviceAddModule/libs/gson-2.8.8.jar
new file mode 100644
index 0000000..4707d40
--- /dev/null
+++ b/AndroidOpenDemo/DeviceAddModule/libs/gson-2.8.8.jar
Binary files differ
diff --git a/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/DeviceAddActivity.java b/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/DeviceAddActivity.java
index 74decec..9ba6b37 100644
--- a/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/DeviceAddActivity.java
+++ b/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/DeviceAddActivity.java
@@ -499,6 +499,7 @@
             }
             mLoadingPopWindow = null;
         }
+        EventBus.getDefault().post("backXamarin");
     }
 
     // 绂荤嚎閰嶇綉鎴愬姛锛岃繑鍥炰笂涓�绾ч〉闈�
diff --git a/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/LCDeviceEngine.java b/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/LCDeviceEngine.java
index eba13db..b8053a0 100644
--- a/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/LCDeviceEngine.java
+++ b/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/LCDeviceEngine.java
@@ -39,6 +39,7 @@
     private Throwable throwable;
     public CommonParam commonParam;
     public String userId = "";
+    private String homeId;
 
     public static LCDeviceEngine newInstance() {
         if (lcDeviceEngine == null) {
@@ -53,7 +54,7 @@
 
     public boolean init(CommonParam commonParam) throws Throwable {
         this.commonParam = commonParam;
-        this.accessToken = "";
+        this.accessToken = "St_0000c3e2e772d5f74bfca2d86eaa18a6";//涓轰簡浣庡眰绌哄垽鏂紝褰撳墠token鏃犳晥
         this.userId = "";
         this.sdkHasInit = false;
         if (commonParam == null) {
@@ -63,13 +64,15 @@
         commonParam.checkParam();
         //鍒濆鍖栧弬鏁�
         initParam(commonParam);
-        //鑾峰彇寮�鏀惧钩鍙皌oken
-        initToken();
-        if (TextUtils.isEmpty(accessToken)) {
-            throw throwable;
+        if (!CONST.HOST.contains("hdlcontrol.com")) {
+            //鑾峰彇寮�鏀惧钩鍙皌oken
+            initToken();
+            if (TextUtils.isEmpty(accessToken)) {
+                throw throwable;
+            }
         }
         //缁勪欢鍒濆鍖�
-        InitParams initParams = new InitParams(commonParam.getContext(), CONST.HOST.replace("https://", ""), accessToken);
+        InitParams initParams = new InitParams(commonParam.getContext(), CONST.Envirment.OVERSEAS_PRO.url.replace("https://", ""), accessToken);
         LCOpenSDK_Api.initOpenApi(initParams);
         LCOpenSDK_DeviceInit.getInstance();
         sdkHasInit = true;
@@ -83,11 +86,12 @@
         //寮�鍚坊鍔犻〉闈�
         activity.startActivity(new Intent(commonParam.getContext(), DeviceAddActivity.class));
     }
-    public void setSubAccessToken(String subAccessToken){
+
+    public void setSubAccessToken(String subAccessToken) {
         this.subAccessToken = subAccessToken;
     }
 
-    public boolean deviceOnlineChangeNet(Activity activity,DHDevice device, CurWifiInfo wifiInfo)  {
+    public boolean deviceOnlineChangeNet(Activity activity, DHDevice device, CurWifiInfo wifiInfo) {
         if (!sdkHasInit) {
             return false;
         }
@@ -145,4 +149,11 @@
         ImageLoader.getInstance().init(config);
     }
 
+    public String getHomeId() {
+        return homeId == null ? "" : homeId;
+    }
+
+    public void setHomeId(String homeId) {
+        this.homeId = homeId;
+    }
 }
diff --git a/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/model/DeviceAddModel.java b/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/model/DeviceAddModel.java
index 8373403..bd08b21 100644
--- a/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/model/DeviceAddModel.java
+++ b/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/model/DeviceAddModel.java
@@ -327,7 +327,7 @@
         new BusinessRunnable(handler) {
             @Override
             public void doBusiness() throws BusinessException {
-                DeviceBindResult deviceBindResult = deviceAddService.userDeviceBind( sn, devPwd, DMS_TIMEOUT);
+                DeviceBindResult deviceBindResult = deviceAddService.hdlUserDeviceBind( sn, devPwd, DMS_TIMEOUT);
                 mDeviceAddInfo.setDeviceDefaultName(deviceBindResult.getDeviceName());
                 mDeviceAddInfo.setBindStatus(deviceBindResult.getBindStatus());
                 mDeviceAddInfo.setBindAcount(deviceBindResult.getUserAccount());
diff --git a/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/CONST.java b/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/CONST.java
index 20db92a..f14fabf 100644
--- a/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/CONST.java
+++ b/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/CONST.java
@@ -34,6 +34,8 @@
     //娣诲姞瀛愯处鎴锋潈闄�
     public static String ADD_POLICY = "addPolicy";
 
+    public static String INDEPENDENT_REGISTER  ="independentRegister";
+
     // URL鍦板潃
     public static String HOST = "";
     // 濡傛灉涓嶇煡閬揳ppid锛岃鐧诲綍open.lechange.com锛屽紑鍙戣�呮湇鍔℃ā鍧椾腑鍒涘缓搴旂敤
@@ -42,7 +44,7 @@
     public static String SECRET = "";
 
     public enum Envirment {
-        CHINA_TEST("https://funcopenapi.lechange.cn:443"),
+        CHINA_TEST("https://test-gz.hdlcontrol.com"),
         CHINA_PRO("https://openapi.lechange.cn:443"),
         OVERSEAS_TEST("https://openapifunc.easy4ip.com:443"),
         OVERSEAS_PRO("https://openapi.easy4ip.com:443");
@@ -58,4 +60,8 @@
         SECRET = secretKey;
         HOST = url;
     }
+
+    public static boolean isHdlServer() {
+        return HOST.contains("hdlcontrol.com");
+    }
 }
diff --git a/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/DeviceAddOpenApiManager.java b/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/DeviceAddOpenApiManager.java
index 5c66232..a4d95bb 100644
--- a/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/DeviceAddOpenApiManager.java
+++ b/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/DeviceAddOpenApiManager.java
@@ -3,6 +3,7 @@
 import com.google.gson.Gson;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
+import com.google.gson.reflect.TypeToken;
 import com.mm.android.deviceaddmodule.LCDeviceEngine;
 import com.mm.android.deviceaddmodule.device_wifi.CurWifiInfo;
 import com.mm.android.deviceaddmodule.device_wifi.WifiConfig;
@@ -19,6 +20,7 @@
 import org.json.JSONObject;
 
 import java.util.HashMap;
+import java.util.Map;
 
 public class DeviceAddOpenApiManager {
     private static int TIME_OUT = 10 * 1000;
@@ -106,6 +108,24 @@
         HashMap<String, Object> paramsMap = new HashMap<String, Object>();
         paramsMap.put("token", bindDeviceData.data.token);
         paramsMap.put("deviceId", bindDeviceData.data.deviceId);
+        JsonObject json = HttpSend.execute(paramsMap, CONST.METHOD_BINDDEVICE,DMS_TIME_OUT);
+        BindDeviceData.Response response = new BindDeviceData.Response();
+        response.parseData(json);
+        return response;
+    }
+
+    /**
+     * 缁戝畾璁惧
+     *
+     * @param bindDeviceData
+     * @return
+     * @throws BusinessException
+     */
+    public static BindDeviceData.Response hdlUserDeviceBind(BindDeviceData bindDeviceData) throws BusinessException {
+        HashMap<String, Object> paramsMap = new HashMap<String, Object>();
+        paramsMap.put("extDevId", bindDeviceData.data.deviceId);
+        paramsMap.put("spk","security.ipcam.imou");
+        paramsMap.put("sid","8D00708PAGA01ED");
         paramsMap.put("code", bindDeviceData.data.code);
         JsonObject json = HttpSend.execute(paramsMap, CONST.METHOD_BINDDEVICE,DMS_TIME_OUT);
         BindDeviceData.Response response = new BindDeviceData.Response();
@@ -241,9 +261,15 @@
         return  json.get("openid").getAsString();
     }
 
-    public static boolean addPolicy(AddDevicePolicyData req)throws BusinessException{
-        String jsonParam = new Gson().toJson(req);
-        HttpSend.execute(jsonParam, CONST.ADD_POLICY,TIME_OUT);
-        return  true;
+    public static boolean addPolicy(AddDevicePolicyData req)throws BusinessException {
+//        String jsonParam = new Gson().toJson(req);
+//        HttpSend.execute(jsonParam, CONST.ADD_POLICY,TIME_OUT);
+//        return  true;
+
+//        final Map<String, Object> map = new Gson().fromJson(new Gson().toJson(req), new TypeToken<Map<String, Object>>() {
+//        }.getType());
+//
+//        JsonObject json = HttpSend.execute(map, CONST.CREATE_SUB_ACCOUNT, TIME_OUT);
+        return true;
     }
 }
diff --git a/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/HDLMD5Utils.java b/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/HDLMD5Utils.java
new file mode 100644
index 0000000..29e7a74
--- /dev/null
+++ b/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/HDLMD5Utils.java
@@ -0,0 +1,183 @@
+package com.mm.android.deviceaddmodule.openapi;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.UnsupportedEncodingException;
+import java.math.BigInteger;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+/**
+ * Created by Tong on 2021/11/3.
+ */
+public final class HDLMD5Utils {
+
+    /**
+     * MD5杞瓧绗︿覆
+     */
+    public static String encodeMD5(String s) {
+        try {
+            MessageDigest digest = MessageDigest.getInstance("MD5");
+            digest.update(s.getBytes("UTF-8"));
+            byte[] messageDigest = digest.digest();
+            return toHexString(messageDigest);
+        } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+        return "";
+    }
+
+    private static String toHexString(byte[] keyData) {
+        if (keyData == null) {
+            return null;
+        }
+        int expectedStringLen = keyData.length * 2;
+        StringBuilder sb = new StringBuilder(expectedStringLen);
+        for (byte keyDatum : keyData) {
+            String hexStr = Integer.toString(keyDatum & 0x00FF, 16);
+            if (hexStr.length() == 1) {
+                hexStr = "0" + hexStr;
+            }
+            sb.append(hexStr);
+        }
+        return sb.toString();
+    }
+
+    /**
+     * MD5杞瓧绗︿覆
+     * 棰濆鍊�
+     */
+    public static String encodeMD52(String s) {
+        char[] hexDigits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
+        try {
+            byte[] btInput = s.getBytes("utf-8");
+            MessageDigest digest = MessageDigest.getInstance("MD5");
+            digest.update(btInput);
+            byte[] md = digest.digest();
+            int j = md.length;
+            char[] str = new char[j * 2];
+            int k = 0;
+            for (byte byte0 : md) {
+                str[k++] = hexDigits[byte0 >>> 4 & 0xf];
+                str[k++] = hexDigits[byte0 & 0xf];
+            }
+            return new String(str);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+    /**
+     * MD5鏂囦欢杞瓧绗︿覆
+     */
+    public static String encodeMD5(File f) {
+        if (!f.isFile()) {
+            return null;
+        }
+        MessageDigest digest;
+        byte[] buffer = new byte[1024];
+        int len;
+        try {
+            digest = MessageDigest.getInstance("MD5");
+            FileInputStream in = new FileInputStream(f);
+            while ((len = in.read(buffer, 0, 1024)) != -1) {
+                digest.update(buffer, 0, len);
+            }
+            in.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+        BigInteger bigInt = new BigInteger(1, digest.digest());
+        return bigInt.toString(16);
+    }
+
+    /**
+     * MD5鏂囦欢杞瓧绗︿覆
+     */
+    public static String encodeMD5(byte[] f) {
+        MessageDigest digest;
+        try {
+            digest = MessageDigest.getInstance("MD5");
+            digest.update(f);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+        BigInteger bigInt = new BigInteger(1, digest.digest());
+        return bigInt.toString(16);
+    }
+
+
+
+    public final static String md5(String plainText) {
+
+// 杩斿洖瀛楃涓�
+
+        String md5Str = null;
+
+        try {
+
+// 鎿嶄綔瀛楃涓�
+
+            StringBuffer buf = new StringBuffer();
+
+            MessageDigest md =
+
+                    MessageDigest.getInstance("MD5");
+
+// 娣诲姞瑕佽繘琛岃绠楁憳瑕佺殑淇℃伅,浣跨敤 plainText 鐨� byte
+
+
+            md.update(plainText.getBytes());
+
+// 璁$畻鍑烘憳瑕�,瀹屾垚鍝堝笇璁$畻銆�
+
+            byte b[] = md.digest();
+
+            int i;
+
+            for (int offset = 0; offset < b.length; offset++) {
+
+                i = b[offset];
+
+                if (i < 0) {
+
+                    i += 256;
+
+                }
+
+                if (i < 16) {
+
+                    buf.append("0");
+
+                }
+
+// 灏嗘暣鍨� 鍗佽繘鍒� i
+
+
+                buf.append(Integer.toHexString(i));
+
+            }
+
+// 32浣嶇殑鍔犲瘑
+
+            md5Str = buf.toString();
+
+// 16浣嶇殑鍔犲瘑
+
+// md5Str =  buf.toString().md5Strstring(8,24);
+
+        } catch (Exception e) {
+
+            e.printStackTrace();
+
+        }
+
+        return md5Str;
+
+    }
+
+
+}
diff --git a/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/HttpClient.java b/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/HttpClient.java
index 1a698f3..b79ac2a 100644
--- a/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/HttpClient.java
+++ b/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/HttpClient.java
@@ -1,11 +1,26 @@
 package com.mm.android.deviceaddmodule.openapi;
 
+import android.net.Uri;
+import android.text.TextUtils;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
+import com.google.gson.reflect.TypeToken;
+import com.mm.android.deviceaddmodule.LCDeviceEngine;
 import com.mm.android.deviceaddmodule.mobilecommon.utils.LogUtil;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
 import javax.net.ssl.HttpsURLConnection;
 
 public class HttpClient {
@@ -38,6 +53,7 @@
             conn.setUseCaches(false);
             conn.setInstanceFollowRedirects(true);
             conn.setRequestProperty("Content-Type", contentType);
+            conn.setRequestProperty("Authorization","Bearer "+ LCDeviceEngine.newInstance().accessToken);
             conn.connect();
             outputStream = conn.getOutputStream();
             outputStream.write(paramStr.getBytes());
@@ -85,4 +101,85 @@
         }
         return resultData;
     }
+
+
+    /**
+     * 闇�瑕佹寜瀛楁瘝鎺掑簭
+     *
+     * @param json 鎵�鏈夊瓧娈典娇鐢╱rlParameter鎷兼帴锛岄櫎浜哸ppSecret
+     */
+    public static String getSign(JsonObject json, String appSecret) {
+        String builder = jsonToUrlParameter(json) +
+                appSecret;
+        return HDLMD5Utils.encodeMD5(builder);
+    }
+
+
+    private static JsonObject getBodyJson(Map<String,Object> map) {
+
+        JsonObject object = new JsonObject();
+
+        for (Map.Entry<String, Object> entry : map.entrySet()) {
+            object.addProperty(entry.getKey(), entry.getValue().toString());
+        }
+        return object;
+    }
+
+
+
+
+    /**
+     * 娣诲姞sign瀛楁
+     */
+    public static JsonObject encrypt(Map<String,Object> map ) {
+        final String timestamp = String.valueOf(System.currentTimeMillis());
+        final JsonObject json = getBodyJson(map);
+        if (json != null) {
+            json.addProperty("appKey", CONST.APPID);
+            json.addProperty("timestamp", timestamp);
+            json.addProperty("sign", getSign(json, CONST.SECRET));
+        }
+        return json;
+    }
+
+
+
+    private static String jsonToUrlParameter(JsonObject object) {
+        final Map<String, String> map = new Gson().fromJson(object, new TypeToken<Map<String, String>>() {
+        }.getType());
+        final Uri.Builder builder = new Uri.Builder();
+        List<String> list = new ArrayList<>(map.keySet());
+        Collections.sort(list);
+        for (String key : list) {
+            //鍒ゆ柇褰撳墠鍊兼槸鍚﹂渶瑕佸弬涓庣鍚嶏紝淇濇寔璺熶簯绔竴鑷�
+            if (IfValueNeedSign(map.get(key))) {
+                builder.appendQueryParameter(key, map.get(key));
+//                HDLSDKLog.e("瑕佺鍚嶏細" + key + " 锛�" + map.get(key));
+            } else {
+//                HDLSDKLog.e("涓嶉渶瑕佺鍚嶏細" + key + " 锛�" + map.get(key));
+            }
+        }
+        return builder.build().getQuery();
+    }
+
+    /**
+     * 鍒ゆ柇褰撳墠鍊兼槸鍚﹂渶瑕佸弬涓庣鍚嶏紝淇濇寔璺熶簯绔竴鑷�
+     * 绌哄瓧绗︿覆涓嶅弬涓�
+     * 鏁扮粍,闆嗗悎,瀵硅薄涓嶅弬涓�
+     *
+     * @param valueStr
+     * @return
+     */
+    private static boolean IfValueNeedSign(String valueStr) {
+        if (TextUtils.isEmpty(valueStr))
+            return false;
+        final char[] strChar = valueStr.substring(0, 1).toCharArray();
+        final char firstChar = strChar[0];
+        //System.out.println("getJSONType firstChar = "+firstChar);
+        if (firstChar != '{' && firstChar != '[')
+            return true;
+
+        return false;
+    }
+
 }
diff --git a/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/HttpSend.java b/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/HttpSend.java
index e2317b7..d08582c 100644
--- a/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/HttpSend.java
+++ b/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/HttpSend.java
@@ -1,17 +1,24 @@
 package com.mm.android.deviceaddmodule.openapi;
 
+import android.text.TextUtils;
+
 import com.google.gson.Gson;
+import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
+import com.google.gson.reflect.TypeToken;
+import com.mm.android.deviceaddmodule.LCDeviceEngine;
 import com.mm.android.deviceaddmodule.mobilecommon.AppConsume.BusinessException;
 import com.mm.android.deviceaddmodule.mobilecommon.utils.LogUtil;
 import com.mm.android.deviceaddmodule.mobilecommon.utils.MD5Helper;
 
 import org.apache.http.conn.ConnectTimeoutException;
+import org.json.JSONObject;
 
 import java.io.IOException;
 import java.net.SocketException;
 import java.net.SocketTimeoutException;
+import java.net.URLDecoder;
 import java.net.UnknownHostException;
 import java.net.UnknownServiceException;
 import java.util.HashMap;
@@ -26,13 +33,21 @@
 
     public static JsonObject execute(Map<String, Object> paramsMap, String method,int timeOut) throws BusinessException {
         Map<String, Object> map = paramsInit(paramsMap);
-        // 杩斿洖json
-        JsonObject jsonObj = doPost(CONST.HOST + "/openapi/" + method, map,timeOut);
-        LogUtil.debugLog(TAG, "url::"+method+"\n"+"response result锛�" + jsonObj.toString());
-        if (jsonObj == null) {
-            throw new BusinessException("openApi response is null");
+        JsonObject jsonResult = null;
+        if (CONST.isHdlServer()) {
+            if (method.equals("bindDevice")) {
+                jsonResult = doPost(CONST.HOST + "/home-wisdom/app/device/independentRegister", map, timeOut);
+            } else {
+                jsonResult = doPost(CONST.HOST + "/home-wisdom/imou/openapi/" + method, map, timeOut);
+            }
+        } else {
+            jsonResult = doPost(CONST.HOST + "/openapi/" + method, map, timeOut);
+            if (jsonResult == null) {
+                throw new BusinessException("openApi response is null");
+            }
+            jsonResult = jsonResult.getAsJsonObject("result");
         }
-        JsonObject jsonResult = jsonObj.getAsJsonObject("result");
+
         if (jsonResult == null) {
             throw new BusinessException("openApi response is null");
         }
@@ -41,54 +56,56 @@
             String msg = jsonResult.get("msg").getAsString();
             throw new BusinessException(code + msg);
         }
+
+        JsonObject jsonData = new JsonObject();
         try {
-            JsonObject jsonData = jsonResult.getAsJsonObject("data");
-            if (jsonData ==null){
-                jsonData=new JsonObject();
+            jsonData = jsonResult.getAsJsonObject("data");
+            if (jsonData == null) {
+                jsonData = new JsonObject();
             }
-            return jsonData;
+
         } catch (Throwable e) {
-            BusinessException businessException = new BusinessException(e);
-            throw businessException;
+//            BusinessException businessException = new BusinessException(e);
+//            throw businessException;
         }
+        return jsonData;
     }
 
-    public static JsonObject execute(String json, String method,int timeOut) throws BusinessException {
-        // 杩斿洖json
-        LogUtil.debugLog(TAG, "request result锛�" + json.toString());
-        JsonObject jsonObj = doPost(CONST.HOST + "/openapi/" + method, json,timeOut);
-        LogUtil.debugLog(TAG, "URL::"+method+"\n"+"response result锛�" + jsonObj.toString());
-        if (jsonObj == null) {
-            throw new BusinessException("openApi response is null");
-        }
-        JsonObject jsonResult = jsonObj.getAsJsonObject("result");
-        if (jsonResult == null) {
-            throw new BusinessException("openApi response is null");
-        }
-        String code = jsonResult.get("code").getAsString();
-        if (!"0".equals(code)) {
-            String msg = jsonResult.get("msg").getAsString();
-            throw new BusinessException(code + msg);
-        }
-        try {
-            JsonObject jsonData = jsonResult.getAsJsonObject("data");
-            if (jsonData ==null){
-                jsonData=new JsonObject();
-            }
-            return jsonData;
-        } catch (Throwable e) {
-            BusinessException businessException = new BusinessException(e);
-            throw businessException;
-        }
-    }
+
 
     private static JsonObject doPost(String url, Map<String, Object> map, int timeOut) throws BusinessException {
         Gson gson = new Gson();
-        String json = gson.toJson(map);
-        JsonObject jsonObject = new JsonObject();
+        String json;
+        JsonObject jsonObject;
+        if(CONST.isHdlServer()) {
+            map.put("homeId", LCDeviceEngine.newInstance().getHomeId());
+            if (map.containsKey("params")) {
+                Map<String, Object> tempMap = (Map<String, Object>) map.get("params");
+                map.remove("params");
+                map.remove("id");
+                map.remove("system");
+                for (Map.Entry<String, Object> temp : tempMap.entrySet()) {
+                    if ("page".equals(temp.getKey())) {
+                        map.put("pageNo", temp.getValue());
+                    }
+                    else {
+                        if("token".equals(temp.getKey())){
+                            continue;
+                        }
+                        map.put(temp.getKey(), temp.getValue());
+                    }
+                }
+            }
+
+            json = gson.toJson(HttpClient.encrypt(map));
+        }else{
+            json = gson.toJson(map);
+        }
+
         try {
-            LogUtil.debugLog(TAG, "reqest: " + url + " data:" + json.toString());
+            LogUtil.debugLog(TAG, "reqest: " + url + " data:" + json);
             String openApi = HttpClient.post(url, json, "application/json", "OpenApi",timeOut);
+            LogUtil.debugLog(TAG, "杩斿洖缁撴灉: \r\n"  + openApi);
             jsonObject =  new JsonParser().parse(openApi).getAsJsonObject();
         } catch (IOException e) {
             BusinessException b = new BusinessException(e);
@@ -106,28 +123,6 @@
         return jsonObject;
     }
 
-    private static JsonObject doPost(String url, String json, int timeOut) throws BusinessException {
-        Gson gson = new Gson();
-        JsonObject jsonObject = new JsonObject();
-        try {
-            LogUtil.debugLog(TAG, "reqest: " + url + " data:" + json.toString());
-            String openApi = HttpClient.post(url, json, "application/json", "OpenApi",timeOut);
-            jsonObject =  new JsonParser().parse(openApi).getAsJsonObject();
-        } catch (IOException e) {
-            BusinessException b = new BusinessException(e);
-            if (e instanceof ConnectTimeoutException || e instanceof SocketTimeoutException
-                    || e instanceof UnknownHostException
-                    || e instanceof UnknownServiceException || e instanceof SSLException
-                    || e instanceof SocketException) {
-                b.errorDescription = "鎿嶄綔澶辫触锛岃妫�鏌ョ綉缁�";
-            }
-            throw b;
-        } catch (Throwable e) {
-            BusinessException b = new BusinessException(e);
-            throw b;
-        }
-        return jsonObject;
-    }
 
     private static Map<String, Object> paramsInit(Map<String, Object> paramsMap) {
         long time = System.currentTimeMillis() / 1000;
@@ -152,4 +147,70 @@
         map.put("id", id);
         return map;
     }
+
+//    public static JsonObject execute(String json, String method,int timeOut) throws BusinessException {
+//        // 杩斿洖json
+//        LogUtil.debugLog(TAG, "request result锛�" + json.toString());
+//        JsonObject jsonResult=null;
+//        if (CONST.isHdlServer()) {
+//            JsonObject jsonObj = doPost(CONST.HOST + "/home-wisdom/imou/openapi/"  + method, json, timeOut);
+//            LogUtil.debugLog(TAG, "URL::"+method+"\n"+"response result锛�" + jsonObj.toString());
+//            if (jsonObj == null) {
+//                throw new BusinessException("openApi response is null");
+//            }
+//            jsonResult = jsonObj;
+//        }
+//        else {
+//            JsonObject jsonObj = doPost(CONST.HOST + "/openapi/" + method, json, timeOut);
+//            LogUtil.debugLog(TAG, "URL::"+method+"\n"+"response result锛�" + jsonObj.toString());
+//            if (jsonObj == null) {
+//                throw new BusinessException("openApi response is null");
+//            }
+//            jsonResult = jsonObj.getAsJsonObject("result");
+//        }
+//
+//        if (jsonResult == null) {
+//            throw new BusinessException("openApi response is null");
+//        }
+//        String code = jsonResult.get("code").getAsString();
+//        if (!"0".equals(code)) {
+//            String msg = jsonResult.get("msg").getAsString();
+//            throw new BusinessException(code + msg);
+//        }
+//        try {
+//            JsonObject jsonData = jsonResult.getAsJsonObject("data");
+//            if (jsonData ==null){
+//                jsonData=new JsonObject();
+//            }
+//            return jsonData;
+//        } catch (Throwable e) {
+//            BusinessException businessException = new BusinessException(e);
+//            throw businessException;
+//        }
+//    }
+
+
+//    private static JsonObject doPost(String url, String json, int timeOut) throws BusinessException {
+//        Gson gson = new Gson();
+//        JsonObject jsonObject = new JsonObject();
+//        try {
+//            LogUtil.debugLog(TAG, "reqest: " + url + " data:" + json.toString());
+//            String openApi = HttpClient.post(url, json, "application/json", "OpenApi",timeOut);
+//            jsonObject =  new JsonParser().parse(openApi).getAsJsonObject();
+//        } catch (IOException e) {
+//            BusinessException b = new BusinessException(e);
+//            if (e instanceof ConnectTimeoutException || e instanceof SocketTimeoutException
+//                    || e instanceof UnknownHostException
+//                    || e instanceof UnknownServiceException || e instanceof SSLException
+//                    || e instanceof SocketException) {
+//                b.errorDescription = "鎿嶄綔澶辫触锛岃妫�鏌ョ綉缁�";
+//            }
+//            throw b;
+//        } catch (Throwable e) {
+//            BusinessException b = new BusinessException(e);
+//            throw b;
+//        }
+//        return jsonObject;
+//    }
+
 }
diff --git a/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/p_bindsuccess/BindSuccessFragment.java b/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/p_bindsuccess/BindSuccessFragment.java
index 1d0369d..9a201f8 100644
--- a/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/p_bindsuccess/BindSuccessFragment.java
+++ b/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/p_bindsuccess/BindSuccessFragment.java
@@ -150,8 +150,8 @@
     public void completeAction() {
         //娣诲姞缁撴潫鍝潵鍥炲摢锛屾妸DeviceAddActivity缁撴潫鎺�
         EventBus.getDefault().post(new DeviceAddEvent(DeviceAddEvent.DESTROY_ACTION));
-        //閫氱煡涓婚〉銆佹垜鐨勮澶囧垪琛ㄨ嚜鍔ㄥ埛鏂�
-        EventBus.getDefault().post(new CommonEvent(CommonEvent.DEVICE_ADD_SUCCESS_ACTION));
+//        //閫氱煡涓婚〉銆佹垜鐨勮澶囧垪琛ㄨ嚜鍔ㄥ埛鏂�  璺ㄥ钩鍙版墦鍖咃紝涓嶉渶瑕佸啀閫氱煡浜唊aede
+//        EventBus.getDefault().post(new CommonEvent(CommonEvent.DEVICE_ADD_SUCCESS_ACTION));
     }
 
     @Override
@@ -194,7 +194,8 @@
     public void onClick(View v) {
         int id = v.getId();
         if (id == R.id.tv_next) {
-            mPresenter.modifyDevName();
+            completeAction();
+           //mPresenter.modifyDevName();
         }
     }
 }
diff --git a/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/p_inputsn/ScanFragment.java b/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/p_inputsn/ScanFragment.java
index 6be6ab2..8c6b649 100644
--- a/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/p_inputsn/ScanFragment.java
+++ b/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/p_inputsn/ScanFragment.java
@@ -138,7 +138,7 @@
                 PageNavigationHelper.gotoManualInputPage(this);
                 return;
             }
-
+            //鎵弿浜岀淮鐮�--kaede
             mPresenter.getDeviceInfo(scanResult.getSn().trim(), scanResult.getMode());
         }
     }
diff --git a/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/service/DeviceAddService.java b/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/service/DeviceAddService.java
index 9f7bf87..98d6dd6 100644
--- a/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/service/DeviceAddService.java
+++ b/AndroidOpenDemo/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/service/DeviceAddService.java
@@ -127,6 +127,18 @@
         return deviceBindResult;
     }
 
+    public DeviceBindResult hdlUserDeviceBind(String deviceId, String code, int timeout) throws BusinessException {
+        BindDeviceData req=new BindDeviceData();
+        req.data.deviceId = deviceId;
+        req.data.code = code;
+        BindDeviceData.Response response = DeviceAddOpenApiManager.hdlUserDeviceBind(req);
+        DeviceBindResult deviceBindResult = new DeviceBindResult();
+        deviceBindResult.setBindStatus(response.data.bindStatus);
+        deviceBindResult.setDeviceName(response.data.deviceName);
+        deviceBindResult.setUserAccount(response.data.userAccount);
+        return deviceBindResult;
+    }
+
     /**
      * openApi
      * 淇敼璁惧鎴栬�呴�氶亾鍚嶏紝channelId涓虹┖鍒欎负淇敼璁惧鍚嶏紝涓嶄负绌轰负淇敼閫氶亾鍚�
diff --git a/AndroidOpenDemo/DeviceAddModule/src/main/res/layout/fragment_bind_success.xml b/AndroidOpenDemo/DeviceAddModule/src/main/res/layout/fragment_bind_success.xml
index 24647ac..1ae9fd8 100644
--- a/AndroidOpenDemo/DeviceAddModule/src/main/res/layout/fragment_bind_success.xml
+++ b/AndroidOpenDemo/DeviceAddModule/src/main/res/layout/fragment_bind_success.xml
@@ -60,6 +60,7 @@
                     android:textSize="20dp" />
 
                 <TextView
+                    android:visibility="invisible"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_gravity="center"
@@ -69,6 +70,7 @@
                     android:textSize="15sp" />
 
                 <com.mm.android.deviceaddmodule.mobilecommon.widget.ClearEditText
+                    android:visibility="invisible"
                     android:id="@+id/device_name_input"
                     android:layout_width="match_parent"
                     android:layout_height="@dimen/add_device_common_edit_height"
diff --git a/AndroidOpenDemo/app/AndroidManifest123456.xml b/AndroidOpenDemo/app/AndroidManifest123456.xml
deleted file mode 100644
index f4f2a99..0000000
--- a/AndroidOpenDemo/app/AndroidManifest123456.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    package="com.lechange.demo">
-
-    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
-
-    <application
-        android:name=".App"
-        android:debuggable="false"
-        android:allowBackup="false"
-        android:icon="@mipmap/sdk_launcher"
-        android:label="@string/app_name"
-        android:roundIcon="@mipmap/sdk_launcher"
-        android:supportsRtl="false"
-        android:theme="@style/AppTheme"
-        tools:replace="android:allowBackup,android:label,android:supportsRtl">
-        <activity
-            android:name=".ui.EnvGuideActivity"
-            android:configChanges="orientation|keyboardHidden|screenSize|locale"
-            android:launchMode="singleTop"
-            android:screenOrientation="portrait">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-        <activity
-            android:name=".ui.DeviceListActivity"
-            android:configChanges="orientation|keyboardHidden|screenSize|locale"
-            android:launchMode="singleTop"
-            android:exported="false"
-            android:screenOrientation="portrait"></activity>
-        <activity
-            android:name=".ui.DeviceDetailActivity"
-            android:configChanges="orientation|keyboardHidden|screenSize|locale"
-            android:launchMode="singleTop"
-            android:exported="false"
-            android:screenOrientation="portrait"></activity>
-        <activity
-            android:name=".ui.DeviceOnlineMediaPlayActivity"
-            android:configChanges="orientation|keyboardHidden|screenSize|locale"
-            android:launchMode="singleTop"
-            android:exported="false"
-            android:screenOrientation="portrait"></activity>
-        <activity
-            android:name=".ui.DeviceRecordListActivity"
-            android:configChanges="orientation|keyboardHidden|screenSize|locale"
-            android:launchMode="singleTop"
-            android:exported="false"
-            android:screenOrientation="portrait"></activity>
-        <activity
-            android:name=".ui.DeviceRecordPlayActivity"
-            android:configChanges="orientation|keyboardHidden|screenSize|locale"
-            android:launchMode="singleTop"
-            android:exported="false"
-            android:screenOrientation="portrait"></activity>
-    </application>
-</manifest>
\ No newline at end of file
diff --git a/AndroidOpenDemo/app/src/main/java/com/.DS_Store b/AndroidOpenDemo/app/src/main/java/com/.DS_Store
new file mode 100644
index 0000000..26c154e
--- /dev/null
+++ b/AndroidOpenDemo/app/src/main/java/com/.DS_Store
Binary files differ
diff --git a/AndroidOpenDemo/app/src/main/java/com/callBack/IAddCamera.java b/AndroidOpenDemo/app/src/main/java/com/callBack/IAddCamera.java
new file mode 100644
index 0000000..9ab8766
--- /dev/null
+++ b/AndroidOpenDemo/app/src/main/java/com/callBack/IAddCamera.java
@@ -0,0 +1,13 @@
+package com.callBack;
+
+public interface IAddCamera {
+    void success(String deviceId);
+    /**
+     * 閿欒鍥炶皟
+     *
+     * @param errMsg
+     */
+    void onError(String errMsg);
+
+    void back();
+}
diff --git a/AndroidOpenDemo/app/src/main/java/com/common/openapi/DeviceDetailService.java b/AndroidOpenDemo/app/src/main/java/com/common/openapi/DeviceDetailService.java
index 8e22f63..4a888a2 100644
--- a/AndroidOpenDemo/app/src/main/java/com/common/openapi/DeviceDetailService.java
+++ b/AndroidOpenDemo/app/src/main/java/com/common/openapi/DeviceDetailService.java
@@ -292,4 +292,38 @@
         };
     }
 
+    /**
+     * 鏍煎紡鍖朣D鍗�
+     * @param deviceId
+     * @param iRecoverSDCardCallBack
+     */
+    public void recoverSDCard(final String deviceId, final IGetDeviceInfoCallBack.IRecoverSDCardCallBack iRecoverSDCardCallBack){
+        final LCBusinessHandler handler = new LCBusinessHandler() {
+            @Override
+            public void handleBusiness(Message msg) {
+                if (iRecoverSDCardCallBack == null) {
+                    return;
+                }
+                if (msg.what == HandleMessageCode.HMC_SUCCESS) {
+                    //鎴愬姛
+                    iRecoverSDCardCallBack.onSuccess("Success");
+                } else {
+                    //澶辫触
+                    iRecoverSDCardCallBack.onError(BusinessErrorTip.throwError(msg));
+                }
+            }
+        };
+        new BusinessRunnable(handler) {
+            @Override
+            public void doBusiness() throws BusinessException {
+                try {
+                    boolean b = DeviceInfoOpenApiManager.recoverSDCard(deviceId);
+                    handler.obtainMessage(HandleMessageCode.HMC_SUCCESS, b).sendToTarget();
+                } catch (BusinessException e) {
+                    throw e;
+                }
+            }
+        };
+    }
+
 }
diff --git a/AndroidOpenDemo/app/src/main/java/com/common/openapi/DeviceInfoOpenApiManager.java b/AndroidOpenDemo/app/src/main/java/com/common/openapi/DeviceInfoOpenApiManager.java
index 0dc7d6d..3283b52 100644
--- a/AndroidOpenDemo/app/src/main/java/com/common/openapi/DeviceInfoOpenApiManager.java
+++ b/AndroidOpenDemo/app/src/main/java/com/common/openapi/DeviceInfoOpenApiManager.java
@@ -14,11 +14,7 @@
 import com.google.gson.JsonObject;
 import com.mm.android.deviceaddmodule.LCDeviceEngine;
 import com.mm.android.deviceaddmodule.mobilecommon.AppConsume.BusinessException;
-import com.mm.android.deviceaddmodule.mobilecommon.common.Constants;
-import com.mm.android.deviceaddmodule.mobilecommon.utils.PreferencesHelper;
 import com.mm.android.deviceaddmodule.openapi.HttpSend;
-
-import org.json.JSONObject;
 
 import java.util.HashMap;
 
@@ -124,6 +120,14 @@
         paramsMap.put("token", LCDeviceEngine.newInstance().accessToken);
         paramsMap.put("deviceId", deviceId);
         HttpSend.execute(paramsMap, MethodConst.DELETE_DEVICE_PERMISSION,TIME_OUT);
+        return true;
+    }
+
+    public static boolean recoverSDCard(String deviceId) throws BusinessException{
+        HashMap<String, Object> paramsMap = new HashMap<String, Object>();
+        paramsMap.put("token", LCDeviceEngine.newInstance().accessToken);
+        paramsMap.put("deviceId", deviceId);
+        HttpSend.execute(paramsMap, MethodConst.RECOVER_SDCARD,TIME_OUT);
         return true;
     }
 
@@ -240,7 +244,7 @@
         paramsMap.put("channelId", cloudRecordsData.data.channelId);
         paramsMap.put("beginTime", cloudRecordsData.data.beginTime);
         paramsMap.put("endTime", cloudRecordsData.data.endTime);
-        paramsMap.put("nextRecordId", cloudRecordsData.data.nextRecordId);
+//        paramsMap.put("nextRecordId", cloudRecordsData.data.nextRecordId);
         paramsMap.put("count", cloudRecordsData.data.count);
         JsonObject json = HttpSend.execute(paramsMap, MethodConst.METHOD_GET_CLOUND_RECORDS,TIME_OUT);
         CloudRecordsData.Response response = new CloudRecordsData.Response();
diff --git a/AndroidOpenDemo/app/src/main/java/com/common/openapi/IGetDeviceInfoCallBack.java b/AndroidOpenDemo/app/src/main/java/com/common/openapi/IGetDeviceInfoCallBack.java
index 5d0b016..236b583 100644
--- a/AndroidOpenDemo/app/src/main/java/com/common/openapi/IGetDeviceInfoCallBack.java
+++ b/AndroidOpenDemo/app/src/main/java/com/common/openapi/IGetDeviceInfoCallBack.java
@@ -214,6 +214,22 @@
         void onError(Throwable throwable);
     }
 
+    public interface IRecoverSDCardCallBack {
+        /**
+         * 鎴愬姛
+         *
+         * @param result
+         */
+        void onSuccess(String result);
+
+        /**
+         * 閿欒鍥炶皟
+         *
+         * @param throwable
+         */
+        void onError(Throwable throwable);
+    }
+
 
 
 }
diff --git a/AndroidOpenDemo/app/src/main/java/com/common/openapi/MethodConst.java b/AndroidOpenDemo/app/src/main/java/com/common/openapi/MethodConst.java
index 94e3517..d87da16 100644
--- a/AndroidOpenDemo/app/src/main/java/com/common/openapi/MethodConst.java
+++ b/AndroidOpenDemo/app/src/main/java/com/common/openapi/MethodConst.java
@@ -38,6 +38,8 @@
 
     public static String DELETE_DEVICE_PERMISSION = "deleteDevicePermission";
 
+    public static String RECOVER_SDCARD = "recoverSDCard";
+
     public static String SD_STATUE_QUERY = "deviceSdcardStatus";
     public static String GET_DEVICE_CLOUD = "getDeviceCloud";
 
diff --git a/AndroidOpenDemo/app/src/main/java/com/hdl/HdlToLc.java b/AndroidOpenDemo/app/src/main/java/com/hdl/HdlToLc.java
deleted file mode 100644
index 3a653aa..0000000
--- a/AndroidOpenDemo/app/src/main/java/com/hdl/HdlToLc.java
+++ /dev/null
@@ -1,127 +0,0 @@
-package com.hdl;
-
-import android.Manifest;
-import android.app.Activity;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.os.Build;
-import android.widget.Toast;
-import android.support.v4.app.ActivityCompat;
-
-import com.common.openapi.ClassInstanceManager;
-import com.lechange.demo.tools.MediaPlayHelper;
-import com.mm.android.deviceaddmodule.CommonParam;
-import com.mm.android.deviceaddmodule.LCDeviceEngine;
-import com.mm.android.deviceaddmodule.mobilecommon.AppConsume.ProviderManager;
-import com.mm.android.deviceaddmodule.openapi.CONST;
-import com.usermodule.net.IUserDataCallBack;
-import com.usermodule.net.UserNetManager;
-
-public class HdlToLc {
-    private static String mAppid;
-    private static String mAppSecret;
-    private static String mUrl;
-    private static String mOpenId;
-
-    private static Activity mActivity;
-
-    public static void initData(Activity activity, boolean isChina,String openId){
-        mActivity = activity;
-        mOpenId = openId;
-        MediaPlayHelper.initContext(mActivity.getApplication().getApplicationContext());
-        ClassInstanceManager.newInstance().init(mActivity.getApplication());
-        if (isChina) {
-            mAppSecret = "f869433de68a4a06bb8f9bb89118fc";
-            mAppid = "lc2ea929282d5f4636";
-            mUrl = CONST.Envirment.CHINA_PRO.url;
-            ProviderManager.getAppProvider().setAppType(0);
-
-        } else {
-            mAppSecret = "017fc27bb987496f9a677e4e6f0c88";
-            mAppid = "lc0285433bc7e8423d";
-            mUrl = CONST.Envirment.OVERSEAS_PRO.url;
-            ProviderManager.getAppProvider().setAppType(1);
-        }
-
-    }
-    public static void openActivity()
-    {
-        try {
-            CommonParam commonParam = new CommonParam();
-            commonParam.setEnvirment(mUrl);
-            commonParam.setContext(mActivity.getApplication());
-            commonParam.setAppId(mAppid);
-            commonParam.setAppSecret(mAppSecret);
-            //SDK鍒濆鍖栧叆鍙�
-            LCDeviceEngine.newInstance().init(commonParam);
-
-            getSubAccountToken(mOpenId);
-        } catch (Throwable e) {
-            Toast.makeText(mActivity, e.getMessage(), Toast.LENGTH_SHORT).show();
-        }
-    }
-
-    private static void getSubAccountToken(String openId){
-        UserNetManager.getInstance().subAccountToken(openId, new IUserDataCallBack() {
-            @Override
-            public void onCallBackOpenId(String str) {
-                if (str!=null){
-                    //鏆備笉淇濆瓨鍒皊p涓簡锛屽洜涓鸿幏鍙栭渶瑕乧ontext銆�
-                    //  PreferencesHelper.getInstance(getApplicationContext()).set(Constants.SUBACCOUNTTOKEN,str);
-                    LCDeviceEngine.newInstance().setSubAccessToken(str);
-
-                    mActivity.startActivity(new Intent(mActivity,com.lechange.demo.ui.DeviceListActivity.class));
-                }
-            }
-
-            @Override
-            public void onError(Throwable throwable) {
-
-            }
-        });
-    }
-
-
-    /**
-     * 璇锋眰瀵硅鏉冮檺
-     */
-    public static void requestPermission() {
-        boolean isMinSDKM = Build.VERSION.SDK_INT < 23;
-        boolean isGranted = ActivityCompat.checkSelfPermission(mActivity, Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED
-                && ActivityCompat.checkSelfPermission(mActivity, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED
-                && ActivityCompat.checkSelfPermission(mActivity, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED
-                && ActivityCompat.checkSelfPermission(mActivity, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED
-                && ActivityCompat.checkSelfPermission(mActivity, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED;
-        if (isMinSDKM || isGranted) {
-            return;
-        }
-        requestRecordAudioPermission();
-    }
-
-    private static void requestRecordAudioPermission() {
-        if (ActivityCompat.shouldShowRequestPermissionRationale(mActivity, Manifest.permission.RECORD_AUDIO)
-                || ActivityCompat.shouldShowRequestPermissionRationale(mActivity, Manifest.permission.ACCESS_COARSE_LOCATION)
-                || ActivityCompat.shouldShowRequestPermissionRationale(mActivity, Manifest.permission.CAMERA)
-                || ActivityCompat.shouldShowRequestPermissionRationale(mActivity, Manifest.permission.WRITE_EXTERNAL_STORAGE)
-                || ActivityCompat.shouldShowRequestPermissionRationale(mActivity, Manifest.permission.READ_EXTERNAL_STORAGE)) {
-            ActivityCompat.requestPermissions(mActivity,
-                    new String[]{
-                            Manifest.permission.RECORD_AUDIO,
-                            Manifest.permission.ACCESS_COARSE_LOCATION,
-                            Manifest.permission.CAMERA,
-                            Manifest.permission.WRITE_EXTERNAL_STORAGE,
-                            Manifest.permission.READ_EXTERNAL_STORAGE},
-                    1);
-        } else {
-            ActivityCompat.requestPermissions(mActivity,
-                    new String[]{
-                            Manifest.permission.RECORD_AUDIO,
-                            Manifest.permission.ACCESS_COARSE_LOCATION,
-                            Manifest.permission.CAMERA,
-                            Manifest.permission.WRITE_EXTERNAL_STORAGE,
-                            Manifest.permission.READ_EXTERNAL_STORAGE},
-                    1);
-        }
-    }
-
-}
diff --git a/AndroidOpenDemo/app/src/main/java/com/lechange/demo/.DS_Store b/AndroidOpenDemo/app/src/main/java/com/lechange/demo/.DS_Store
new file mode 100644
index 0000000..7d59bac
--- /dev/null
+++ b/AndroidOpenDemo/app/src/main/java/com/lechange/demo/.DS_Store
Binary files differ
diff --git a/AndroidOpenDemo/app/src/main/java/com/lechange/demo/App.java b/AndroidOpenDemo/app/src/main/java/com/lechange/demo/App.java
index 739722f..06dbdc5 100644
--- a/AndroidOpenDemo/app/src/main/java/com/lechange/demo/App.java
+++ b/AndroidOpenDemo/app/src/main/java/com/lechange/demo/App.java
@@ -1,6 +1,7 @@
 package com.lechange.demo;
 
 import android.app.Application;
+import android.content.Intent;
 
 import com.common.openapi.ClassInstanceManager;
 import com.lechange.demo.tools.MediaPlayHelper;
@@ -13,8 +14,7 @@
 //        ARouter.openDebug();
 //        ARouter.openLog();
 //        ARouter.init(this);
-        MediaPlayHelper.initContext(getApplicationContext());
-        ClassInstanceManager.newInstance().init(this);
-
+//        MediaPlayHelper.initContext(getApplicationContext());
+//        ClassInstanceManager.newInstance().init(this);
     }
 }
\ No newline at end of file
diff --git a/AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/DeviceDetailMainFragment.java b/AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/DeviceDetailMainFragment.java
index f593375..db12d50 100644
--- a/AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/DeviceDetailMainFragment.java
+++ b/AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/DeviceDetailMainFragment.java
@@ -55,6 +55,7 @@
     private IGetDeviceInfoCallBack.IModifyDeviceName modifyNameListener;
     private String fromWhere;
     private TextView tvDeploymentTip;
+    private TextView tvFormat_sd;
 
     public static DeviceDetailMainFragment newInstance() {
         DeviceDetailMainFragment fragment = new DeviceDetailMainFragment();
@@ -92,11 +93,13 @@
         tvDeviceVersion = view.findViewById(R.id.tv_device_version);
         tvCurrentWifi = view.findViewById(R.id.tv_current_wifi);
         rlCurWifi = view.findViewById(R.id.rl_cur_wifi);
+        tvFormat_sd =view.findViewById(R.id.tvFormat_sd);
 
         rlDeployment.setOnClickListener(this);
         rlDetele.setOnClickListener(this);
         rlDeviceDetail.setOnClickListener(this);
         rlCurWifi.setOnClickListener(this);
+        tvFormat_sd.setOnClickListener(this);
         DeviceDetailActivity deviceDetailActivity = (DeviceDetailActivity) getActivity();
         deviceDetailActivity.tvTitle.setText(getResources().getString(R.string.lc_demo_device_detail_title));
         if (arguments == null) {
@@ -271,6 +274,25 @@
             deviceDetailService.unBindDevice(deviceUnBindData, this);*/
             deviceDetailService.deletePermission(deviceListBean.deviceId,null,this);
         }
+        else if(id==R.id.tvFormat_sd){
+            deviceDetailActivity.rlLoading.setVisibility(View.VISIBLE);
+            DeviceDetailService deviceDetailService = ClassInstanceManager.newInstance().getDeviceDetailService();
+         /*   DeviceUnBindData deviceUnBindData = new DeviceUnBindData();
+            deviceUnBindData.data.deviceId = deviceListBean.deviceId;
+            deviceDetailService.unBindDevice(deviceUnBindData, this);*/
+            deviceDetailService.recoverSDCard(deviceListBean.deviceId, new IGetDeviceInfoCallBack.IRecoverSDCardCallBack() {
+                @Override
+                public void onSuccess(String result) {
+                    deviceDetailActivity.rlLoading.setVisibility(View.GONE);
+                }
+
+                @Override
+                public void onError(Throwable throwable) {
+                    deviceDetailActivity.rlLoading.setVisibility(View.GONE);
+                }
+            });
+
+        }
     }
 
     @Override
diff --git a/AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/DeviceListActivity.java b/AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/DeviceListActivity.java
index b4e88e6..9fc6ccc 100644
--- a/AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/DeviceListActivity.java
+++ b/AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/DeviceListActivity.java
@@ -19,7 +19,6 @@
 import com.common.openapi.MethodConst;
 import com.common.openapi.entity.DeviceDetailListData;
 import com.common.openapi.entity.DeviceListData;
-import com.hdl.HdlToLc;
 import com.lechange.demo.R;
 import com.lechange.demo.adapter.DeviceListAdapter;
 import com.lechange.demo.view.LcPullToRefreshRecyclerView;
@@ -27,6 +26,7 @@
 import com.lechange.pulltorefreshlistview.PullToRefreshBase;
 import com.mm.android.deviceaddmodule.LCDeviceEngine;
 import com.mm.android.deviceaddmodule.mobilecommon.utils.LogUtil;
+import com.utils.HdlToLcUtils;
 
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -53,7 +53,7 @@
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_device_list);
         initView();
-        HdlToLc.requestPermission();
+        HdlToLcUtils.getInstance().requestPermission();
     }
 
     private void initView() {
diff --git a/AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/DeviceOnlineMediaPlayActivity.java b/AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/DeviceOnlineMediaPlayActivity.java
index 08de111..ecdcd9a 100644
--- a/AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/DeviceOnlineMediaPlayActivity.java
+++ b/AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/DeviceOnlineMediaPlayActivity.java
@@ -577,7 +577,7 @@
             mLayoutParams.addRule(RelativeLayout.BELOW, R.id.rl_title);
             frLiveWindow.setLayoutParams(mLayoutParams);
             MediaPlayHelper.quitFullScreen(DeviceOnlineMediaPlayActivity.this);
-            llController.setVisibility(View.VISIBLE);
+            llController.setVisibility(View.GONE);
             rlTitle.setVisibility(View.VISIBLE);
             llSpeak1.setVisibility(View.GONE);
             llCloudStage1.setVisibility(View.GONE);
@@ -601,10 +601,10 @@
             MediaPlayHelper.setFullScreen(DeviceOnlineMediaPlayActivity.this);
             llController.setVisibility(View.GONE);
             rlTitle.setVisibility(View.GONE);
-            llSpeak1.setVisibility(View.VISIBLE);
+            llSpeak1.setVisibility(View.GONE);
             llCloudStage1.setVisibility(View.VISIBLE);
-            llVideo1.setVisibility(View.VISIBLE);
-            llScreenShot1.setVisibility(View.VISIBLE);
+            llVideo1.setVisibility(View.GONE);
+            llScreenShot1.setVisibility(View.GONE);
             RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(frRecord
                     .getLayoutParams());
             layoutParams.removeRule(RelativeLayout.BELOW);
diff --git a/AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/EnvGuideActivity.java b/AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/EnvGuideActivity.java
index 28116ae..7a55de5 100644
--- a/AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/EnvGuideActivity.java
+++ b/AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/EnvGuideActivity.java
@@ -6,10 +6,12 @@
 import android.view.View;
 import android.widget.TextView;
 import android.widget.Toast;
-import com.hdl.HdlToLc;
+
+import com.callBack.IAddCamera;
 import com.lechange.demo.R;
 import com.lechange.demo.tools.RootUtil;
 import com.mm.android.deviceaddmodule.utils.SDsolutionUtility;
+import com.utils.HdlToLcUtils;
 
 public class EnvGuideActivity extends Activity implements View.OnClickListener {
     private TextView tvTitleCn;
@@ -62,12 +64,34 @@
     public void onClick(View v) {
         int id = v.getId();
         if (id == R.id.tv_title_cn) {
-            HdlToLc.initData( this,true,"");
+//            HdlToLc.initData( this,true,"");
         } else if (id == R.id.tv_overseas) {
-            HdlToLc.initData(this,false,"c11b4f38c6aa4563a17e3cb35b6882df06");
         }
 
-        HdlToLc.openActivity();
+        HdlToLcUtils.getInstance().initData(this, "HDL-HOME-APP-TEST", "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss", "https://test-gz.hdlcontrol.com");
+
+        HdlToLcUtils.getInstance().setHomeId("1547099040465408002");
+        HdlToLcUtils.getInstance().setToken("eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiJjZmQ1NzM3NTk4YjA0YjQ3YTQyOTQ4YzczNTNkODk3MCIsImNvbXBhbnlJZCI6IjIwMiIsInJvbGUiOiIiLCJoZWFkZXJQcmVmaXgiOiJCZWFyZXIgIiwidXNlckFjY291bnQiOiJ3eHIiLCJ0ZW5hbnRJZCI6IjIwIiwidXNlclR5cGUiOiJVU0VSX0IiLCJ0b2tlblR5cGUiOiJhY2Nlc3NfdG9rZW4iLCJ1c2VyTmFtZSI6Ind4ciIsIm9wZW5BcHBsaWNhdGlvbklkIjoiMCIsInVzZXJJZCI6IjEzOTIwMzU1NjgyMDQ0MjMxNjkiLCJleHAiOjE2NjkyNzI5MDAsIm5iZiI6MTY2OTI2NTcwMH0.LX4HmxmxuH80eNpBuDurp8POOGwX2hhqcLR4ULCCSnGhhYH61OaTYym4rn_CGM2J15EBVg0EpcJAfabePtQAS6pbeNv60jf-5s-V4zCPyqGKatduFbx1uG1Bw3TPiPCoTdhKkWb_pwRAfchhFMeibMrbS9W3JSs6eJ1mpZODOtM");
+        HdlToLcUtils.getInstance().setSubAccessToken("St_00003ee84eda32b14126af958052f20a");
+
+//        HdlToLcUtils.getInstance().openActivity();
+        HdlToLcUtils.getInstance().addCamera(new IAddCamera() {
+            @Override
+            public void success(String deviceId) {
+                
+            }
+
+            @Override
+            public void onError(String errMsg) {
+
+            }
+
+            @Override
+            public void back() {
+
+            }
+        });
+//        HdlToLcUtils.getInstance().play("8F05F83AAG05B3A");
 
     }
 
diff --git a/AndroidOpenDemo/app/src/main/java/com/hdl/net/IUserDataCallBack.java b/AndroidOpenDemo/app/src/main/java/com/net/IUserDataCallBack.java
similarity index 89%
rename from AndroidOpenDemo/app/src/main/java/com/hdl/net/IUserDataCallBack.java
rename to AndroidOpenDemo/app/src/main/java/com/net/IUserDataCallBack.java
index 0d8fb4e..62708aa 100644
--- a/AndroidOpenDemo/app/src/main/java/com/hdl/net/IUserDataCallBack.java
+++ b/AndroidOpenDemo/app/src/main/java/com/net/IUserDataCallBack.java
@@ -1,4 +1,4 @@
-package com.hdl.net;
+package com.net;
 
 public interface IUserDataCallBack {
     void onCallBackOpenId(String str);
diff --git a/AndroidOpenDemo/app/src/main/java/com/hdl/net/UserNetManager.java b/AndroidOpenDemo/app/src/main/java/com/net/UserNetManager.java
similarity index 99%
rename from AndroidOpenDemo/app/src/main/java/com/hdl/net/UserNetManager.java
rename to AndroidOpenDemo/app/src/main/java/com/net/UserNetManager.java
index 6ffa6c1..d78bd22 100644
--- a/AndroidOpenDemo/app/src/main/java/com/hdl/net/UserNetManager.java
+++ b/AndroidOpenDemo/app/src/main/java/com/net/UserNetManager.java
@@ -1,4 +1,4 @@
-package com.hdl.net;
+package com.net;
 
 import android.os.Handler;
 import android.os.Message;
diff --git a/AndroidOpenDemo/app/src/main/java/com/utils/DeviceUtils.java b/AndroidOpenDemo/app/src/main/java/com/utils/DeviceUtils.java
new file mode 100644
index 0000000..05bef9f
--- /dev/null
+++ b/AndroidOpenDemo/app/src/main/java/com/utils/DeviceUtils.java
@@ -0,0 +1,94 @@
+package com.utils;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.widget.Toast;
+
+import com.common.openapi.ClassInstanceManager;
+import com.common.openapi.DeviceSubAccountListService;
+import com.common.openapi.IGetDeviceInfoCallBack;
+import com.common.openapi.MethodConst;
+import com.common.openapi.entity.DeviceDetailListData;
+import com.lechange.demo.ui.DeviceDetailActivity;
+import com.lechange.demo.ui.DeviceListActivity;
+import com.lechange.demo.ui.DeviceOnlineMediaPlayActivity;
+import com.mm.android.deviceaddmodule.openapi.HDLMD5Utils;
+
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Created by hxb on 2022/11/22.
+ */
+public class DeviceUtils implements IGetDeviceInfoCallBack.ISubAccountDevice< DeviceDetailListData.Response>  {
+
+    private String deviceId;
+    public DeviceUtils(String deviceId){
+        this.deviceId=deviceId;
+    }
+    private static List<DeviceDetailListData.ResponseData.DeviceListBean> datas = new ArrayList<>();
+
+    private void getDeviceList() {
+        DeviceSubAccountListService deviceSubAccountListService = ClassInstanceManager.newInstance().getDeviceSubAccountListService();
+        deviceSubAccountListService.getSubAccountDeviceList(1,this);
+    }
+
+    public void play() {
+        for (DeviceDetailListData.ResponseData.DeviceListBean deviceListBean : datas) {
+            if (deviceListBean.deviceId.equals(deviceId)) {
+                if (!deviceListBean.status.equals("online")) {
+                    return;
+                }
+                Bundle bundle = new Bundle();
+                bundle.putSerializable(MethodConst.ParamConst.deviceDetail, deviceListBean);
+                Intent intent = new Intent(HdlToLcUtils.getInstance().getActivity(), DeviceOnlineMediaPlayActivity.class);
+                intent.putExtras(bundle);
+                HdlToLcUtils.getInstance().getActivity().startActivity(intent);
+
+                return;
+            }
+        }
+        getDeviceList();
+    }
+    @Override
+    public void DeviceList(DeviceDetailListData.Response responseData) {
+
+        if (responseData.data != null && responseData.data.deviceList != null && responseData.data.deviceList.size() != 0) {
+            Iterator<DeviceDetailListData.ResponseData.DeviceListBean> iterator = responseData.data.deviceList.iterator();
+            while (iterator.hasNext()) {
+                DeviceDetailListData.ResponseData.DeviceListBean next = iterator.next();
+                if (next.channels != null && next.channels.size() == 0 && !next.catalog.contains("NVR")) {
+                    // 浣跨敤杩唬鍣ㄤ腑鐨剅emove()鏂规硶,鍙互鍒犻櫎鍏冪礌.
+                    iterator.remove();
+                }
+            }
+        }
+
+        if ((responseData.data == null || responseData.data.deviceList == null || responseData.data.deviceList.size() == 0)) {
+            return;
+        }
+
+        datas.addAll(responseData.data.deviceList);
+
+        for (DeviceDetailListData.ResponseData.DeviceListBean deviceListBean : datas) {
+            if (deviceListBean.deviceId.equals(deviceId)) {
+                if (!deviceListBean.status.equals("online")) {
+                    return;
+                }
+                Bundle bundle = new Bundle();
+                bundle.putSerializable(MethodConst.ParamConst.deviceDetail, deviceListBean);
+                Intent intent = new Intent(HdlToLcUtils.getInstance().getActivity(), DeviceOnlineMediaPlayActivity.class);
+                intent.putExtras(bundle);
+                HdlToLcUtils.getInstance().getActivity().startActivity(intent);
+
+                return;
+            }
+        }
+    }
+    @Override
+    public void onError(Throwable throwable) {
+        Toast.makeText(HdlToLcUtils.getInstance().getActivity(), throwable.getMessage(), Toast.LENGTH_SHORT).show();
+    }
+}
diff --git a/AndroidOpenDemo/app/src/main/java/com/utils/HdlToLcUtils.java b/AndroidOpenDemo/app/src/main/java/com/utils/HdlToLcUtils.java
new file mode 100644
index 0000000..0fdee9f
--- /dev/null
+++ b/AndroidOpenDemo/app/src/main/java/com/utils/HdlToLcUtils.java
@@ -0,0 +1,218 @@
+package com.utils;
+
+import android.Manifest;
+import android.app.Activity;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.os.Build;
+import android.support.v4.app.ActivityCompat;
+import android.widget.Toast;
+
+import com.callBack.IAddCamera;
+import com.common.openapi.ClassInstanceManager;
+import com.lechange.demo.tools.MediaPlayHelper;
+import com.mm.android.deviceaddmodule.CommonParam;
+import com.mm.android.deviceaddmodule.DeviceAddActivity;
+import com.mm.android.deviceaddmodule.LCDeviceEngine;
+import com.mm.android.deviceaddmodule.mobilecommon.AppConsume.ProviderManager;
+import com.mm.android.deviceaddmodule.openapi.CONST;
+import com.usermodule.net.IUserDataCallBack;
+import com.usermodule.net.UserNetManager;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
+public class HdlToLcUtils {
+
+    private Activity activity;
+    private String homeId;
+    private String token;
+    private String subAccessToken;
+    private IAddCamera iAddCamera;
+
+    public Activity getActivity() {
+        return activity;
+    }
+
+    /**
+     * instance
+     */
+    private volatile static HdlToLcUtils instance;
+
+    /**
+     * getInstance
+     *
+     * @return HDLLink
+     */
+    public static synchronized HdlToLcUtils getInstance() {
+        if (instance == null) {
+            synchronized (HdlToLcUtils.class) {
+                if (instance == null) {
+                    instance = new HdlToLcUtils();
+                }
+            }
+        }
+        return instance;
+    }
+
+    public  void initData(Activity activity, String appKey, String secretKey,String url) {
+        this.activity = activity;
+        MediaPlayHelper.initContext(activity.getApplication().getApplicationContext());
+        ClassInstanceManager.newInstance().init(activity.getApplication().getApplicationContext());
+//        if (isChina) {
+////            mAppSecret = "f869433de68a4a06bb8f9bb89118fc";
+////            mAppid = "lc2ea929282d5f4636";
+//            mUrl = CONST.Envirment.CHINA_TEST.url;
+//            ProviderManager.getAppProvider().setAppType(0);
+//        } else {
+//            secretKey = "017fc27bb987496f9a677e4e6f0c88";
+//            appKey = "lc0285433bc7e8423d";
+//            url = CONST.Envirment.OVERSEAS_PRO.url;
+             ProviderManager.getAppProvider().setAppType(1);
+//        }
+
+
+
+        try {
+            CommonParam commonParam = new CommonParam();
+            commonParam.setEnvirment(url);//浜戠杩炴帴
+            commonParam.setContext(activity.getApplication());
+            commonParam.setAppId(appKey);
+            commonParam.setAppSecret(secretKey);
+
+            //SDK淇℃伅鍒濆鍖�
+            LCDeviceEngine.newInstance().init(commonParam);
+        } catch (Throwable e) {
+            Toast.makeText(activity, e.getMessage(), Toast.LENGTH_SHORT).show();
+        }
+    }
+    public  void openActivity() {
+        try {
+//            getSubAccountToken("827a98c98da7469b8bc19bb6a3c7651906");
+            activity.startActivity(new Intent(activity, com.lechange.demo.ui.DeviceListActivity.class));
+        } catch (Throwable e) {
+            Toast.makeText(activity, e.getMessage(), Toast.LENGTH_SHORT).show();
+        }
+    }
+
+    public  void addCamera(IAddCamera iAddCamera) {
+        if(!EventBus.getDefault().isRegistered(this)){
+            EventBus.getDefault().register(this);
+        }
+        //寮�鍚坊鍔犻〉闈�
+        activity.startActivity(new Intent(activity.getApplication(), DeviceAddActivity.class));
+
+    }
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onGetMessage(String obj) {
+        if(obj.equals("backXamarin")){
+            iAddCamera.back();
+
+            if(EventBus.getDefault().isRegistered(this)){
+                EventBus.getDefault().unregister(this);
+            }
+        }
+    }
+
+    public  void play(String deviceId){
+        new DeviceUtils(deviceId).play();
+    }
+
+
+    public void setActivity(Activity activity) {
+        this.activity = activity;
+    }
+
+    public String getHomeId() {
+        return homeId;
+    }
+
+    public void setHomeId(String homeId) {
+        this.homeId = homeId;
+        LCDeviceEngine.newInstance().setHomeId(homeId);
+    }
+
+    public String getToken() {
+        return token;
+    }
+
+    public void setToken(String token) {
+        this.token = token;
+        LCDeviceEngine.newInstance().accessToken=(token);
+    }
+
+    public String getSubAccessToken() {
+        return subAccessToken;
+    }
+
+    public void setSubAccessToken(String subAccessToken) {
+        this.subAccessToken = subAccessToken;
+        LCDeviceEngine.newInstance().setSubAccessToken(subAccessToken);
+    }
+
+    private  void getSubAccountToken(String openId){
+        UserNetManager.getInstance().subAccountToken(openId, new IUserDataCallBack() {
+            @Override
+            public void onCallBackOpenId(String str) {
+                if (str!=null){
+                    //鏆備笉淇濆瓨鍒皊p涓簡锛屽洜涓鸿幏鍙栭渶瑕乧ontext銆�
+                    //  PreferencesHelper.getInstance(getApplicationContext()).set(Constants.SUBACCOUNTTOKEN,str);
+                    LCDeviceEngine.newInstance().setSubAccessToken(str);
+
+                    activity.startActivity(new Intent(activity,com.lechange.demo.ui.DeviceListActivity.class));
+                }
+            }
+
+            @Override
+            public void onError(Throwable throwable) {
+
+            }
+        });
+    }
+
+
+    /**
+     * 璇锋眰瀵硅鏉冮檺
+     */
+    public  void requestPermission() {
+        boolean isMinSDKM = Build.VERSION.SDK_INT < 23;
+        boolean isGranted = ActivityCompat.checkSelfPermission(activity, Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED
+                && ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED
+                && ActivityCompat.checkSelfPermission(activity, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED
+                && ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED
+                && ActivityCompat.checkSelfPermission(activity, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED;
+        if (isMinSDKM || isGranted) {
+            return;
+        }
+        requestRecordAudioPermission();
+    }
+
+    private  void requestRecordAudioPermission() {
+        if (ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.RECORD_AUDIO)
+                || ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.ACCESS_COARSE_LOCATION)
+                || ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.CAMERA)
+                || ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE)
+                || ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.READ_EXTERNAL_STORAGE)) {
+            ActivityCompat.requestPermissions(activity,
+                    new String[]{
+                            Manifest.permission.RECORD_AUDIO,
+                            Manifest.permission.ACCESS_COARSE_LOCATION,
+                            Manifest.permission.CAMERA,
+                            Manifest.permission.WRITE_EXTERNAL_STORAGE,
+                            Manifest.permission.READ_EXTERNAL_STORAGE},
+                    1);
+        } else {
+            ActivityCompat.requestPermissions(activity,
+                    new String[]{
+                            Manifest.permission.RECORD_AUDIO,
+                            Manifest.permission.ACCESS_COARSE_LOCATION,
+                            Manifest.permission.CAMERA,
+                            Manifest.permission.WRITE_EXTERNAL_STORAGE,
+                            Manifest.permission.READ_EXTERNAL_STORAGE},
+                    1);
+        }
+    }
+
+}
diff --git a/AndroidOpenDemo/app/src/main/res/.DS_Store b/AndroidOpenDemo/app/src/main/res/.DS_Store
new file mode 100644
index 0000000..eeff520
--- /dev/null
+++ b/AndroidOpenDemo/app/src/main/res/.DS_Store
Binary files differ
diff --git a/AndroidOpenDemo/app/src/main/res/layout/activity_device_online_media_play.xml b/AndroidOpenDemo/app/src/main/res/layout/activity_device_online_media_play.xml
index aa7928b..6aaf1d6 100644
--- a/AndroidOpenDemo/app/src/main/res/layout/activity_device_online_media_play.xml
+++ b/AndroidOpenDemo/app/src/main/res/layout/activity_device_online_media_play.xml
@@ -180,7 +180,8 @@
                 android:layout_height="match_parent"
                 android:layout_weight="1"
                 android:background="@color/lc_demo_color_442c2c2c"
-                android:gravity="center">
+                android:gravity="center"
+                android:visibility="gone">
 
                 <ImageView
                     android:id="@+id/iv_sound"
@@ -277,6 +278,7 @@
         android:layout_height="@dimen/px_140"
         android:layout_marginBottom="@dimen/px_20"
         android:background="@color/lc_demo_color_ffffff"
+        android:visibility="gone"
         android:paddingLeft="@dimen/px_30"
         android:paddingRight="@dimen/px_30">
 
@@ -338,6 +340,7 @@
     </LinearLayout>
 
     <FrameLayout
+        android:visibility="gone"
         android:layout_below="@id/ll_controller"
         android:id="@+id/fr_record"
         android:layout_width="match_parent"
diff --git a/AndroidOpenDemo/app/src/main/res/layout/fragment_device_detail_main.xml b/AndroidOpenDemo/app/src/main/res/layout/fragment_device_detail_main.xml
index d9fa747..a1502d7 100644
--- a/AndroidOpenDemo/app/src/main/res/layout/fragment_device_detail_main.xml
+++ b/AndroidOpenDemo/app/src/main/res/layout/fragment_device_detail_main.xml
@@ -122,6 +122,23 @@
             android:src="@mipmap/lc_demo_common_btn_next"></ImageView>
     </RelativeLayout>
     <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/px_130"
+        android:background="@color/lc_demo_color_ffffff"
+        android:gravity="center_vertical"
+        android:paddingLeft="@dimen/px_30"
+        android:paddingRight="@dimen/px_30">
+
+        <TextView
+            android:id="@+id/tvFormat_sd"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerVertical="true"
+            android:text="@string/format_sd"
+            android:textColor="@color/lc_demo_color_2c2c2c"
+            android:textSize="@dimen/px_36"></TextView>
+    </RelativeLayout>
+    <RelativeLayout
         android:visibility="gone"
         android:layout_marginTop="@dimen/px_1"
         android:id="@+id/rl_cur_wifi"
@@ -133,6 +150,7 @@
         android:paddingRight="@dimen/px_30">
 
         <TextView
+            android:visibility="gone"
             android:id="@+id/tv_cur_wifi_tip"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
@@ -166,7 +184,8 @@
         android:layout_gravity="bottom"
         android:layout_marginBottom="@dimen/px_50"
         android:background="@color/lc_demo_color_ffffff"
-        android:gravity="center_vertical">
+        android:gravity="center_vertical"
+        android:visibility="gone">
 
         <TextView
             android:layout_width="wrap_content"
diff --git a/AndroidOpenDemo/app/src/main/res/values-en/strings.xml b/AndroidOpenDemo/app/src/main/res/values-en/strings.xml
index c09df0b..461165a 100644
--- a/AndroidOpenDemo/app/src/main/res/values-en/strings.xml
+++ b/AndroidOpenDemo/app/src/main/res/values-en/strings.xml
@@ -78,4 +78,5 @@
     <string name="lc_demo_device_today_no_record">today no record</string>
     <string name="lc_demo_device_local_sd">No storage medium</string>
     <string name="lc_demo_device_cloud_not_open">Cloud storage is not enabled</string>
+    <string name="format_sd">Format sd card</string>
 </resources>
diff --git a/AndroidOpenDemo/app/src/main/res/values/strings.xml b/AndroidOpenDemo/app/src/main/res/values/strings.xml
index 4278f8c..fdfcdf3 100644
--- a/AndroidOpenDemo/app/src/main/res/values/strings.xml
+++ b/AndroidOpenDemo/app/src/main/res/values/strings.xml
@@ -78,4 +78,5 @@
     <string name="lc_demo_device_today_no_record">浠婃棩鏆傛棤褰曞儚</string>
     <string name="lc_demo_device_local_sd">鏃犲瓨鍌ㄤ粙璐�</string>
     <string name="lc_demo_device_cloud_not_open">浜戝瓨鍌ㄦ湭寮�閫�</string>
+    <string name="format_sd">鏍煎紡鍖朣D鍗�</string>
 </resources>
diff --git a/AndroidOpenDemo/app/src/main/res/values/styles.xml b/AndroidOpenDemo/app/src/main/res/values/styles.xml
index cca61c2..b926eff 100644
--- a/AndroidOpenDemo/app/src/main/res/values/styles.xml
+++ b/AndroidOpenDemo/app/src/main/res/values/styles.xml
@@ -46,8 +46,8 @@
         <item name="android:textSize">15sp</item>
     </style>
     <style name="device_page_style" parent="@style/Theme.AppCompat.NoActionBar">
-        <item name="background_color">#FF000000</item>
+        <item name="background_color">#FFF2F3F7</item>
         <item name="android:windowIsTranslucent">false</item>
-        <item name="android:statusBarColor">#000000</item>
+        <item name="android:statusBarColor">#FFF2F3F7</item>
     </style>
 </resources>
diff --git a/AndroidOpenDemo/third-zxing/.DS_Store b/AndroidOpenDemo/third-zxing/.DS_Store
new file mode 100644
index 0000000..b41bb67
--- /dev/null
+++ b/AndroidOpenDemo/third-zxing/.DS_Store
Binary files differ

--
Gitblit v1.8.0