wxr
2022-12-01 28ce23ca933cab770f931f72b820db72c5971224
增加格式sd卡提示
2个文件已添加
8个文件已修改
330 ■■■■ 已修改文件
AndroidOpenDemo/.idea/misc.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
AndroidOpenDemo/.idea/workspace.xml 97 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AndroidOpenDemo/app/src/main/java/com/lechange/demo/dialog/RecoverSDCardDialog.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/DeviceDetailMainFragment.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/EnvGuideActivity.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AndroidOpenDemo/app/src/main/java/com/utils/HdlToLcUtils.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AndroidOpenDemo/app/src/main/res/layout/dialog_sd_card_reconver.xml 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AndroidOpenDemo/app/src/main/res/layout/fragment_device_detail_main.xml 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AndroidOpenDemo/app/src/main/res/values-en/strings.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AndroidOpenDemo/app/src/main/res/values/strings.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AndroidOpenDemo/.idea/misc.xml
@@ -10,7 +10,9 @@
        <entry key="app/src/main/res/layout/activity_device_detail.xml" value="0.13722826086956522" />
        <entry key="app/src/main/res/layout/activity_device_list.xml" value="0.13949275362318841" />
        <entry key="app/src/main/res/layout/activity_device_online_media_play.xml" value="0.25" />
        <entry key="app/src/main/res/layout/fragment_device_detail_main.xml" value="0.15572916666666667" />
        <entry key="app/src/main/res/layout/dialog_device_update.xml" value="0.18645833333333334" />
        <entry key="app/src/main/res/layout/dialog_sd_card_reconver.xml" value="0.18645833333333334" />
        <entry key="app/src/main/res/layout/fragment_device_detail_main.xml" value="0.25" />
        <entry key="app/src/main/res/layout/fragment_device_detail_name.xml" value="0.15572916666666667" />
      </map>
    </option>
AndroidOpenDemo/.idea/workspace.xml
@@ -15,17 +15,23 @@
  </component>
  <component name="ChangeListManager">
    <list default="true" id="7bacc5cf-316f-4ad4-b191-7f5297eb7bcf" name="Default Changelist" comment="">
      <change beforePath="$PROJECT_DIR$/.idea/gradle.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/gradle.xml" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/app/src/main/java/com/lechange/demo/dialog/RecoverSDCardDialog.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/app/src/main/res/layout/dialog_sd_card_reconver.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/app/src/main/java/com/lechange/demo/ui/DeviceDetailMainFragment.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/lechange/demo/ui/DeviceDetailMainFragment.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/app/src/main/java/com/lechange/demo/ui/EnvGuideActivity.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/lechange/demo/ui/EnvGuideActivity.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/app/src/main/java/com/utils/HdlToLcUtils.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/utils/HdlToLcUtils.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_device_detail_main.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_device_detail_main.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/app/src/main/res/values-en/strings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/values-en/strings.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/app/src/main/res/values/strings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/values/strings.xml" afterDir="false" />
    </list>
    <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="ExecutionTargetManager" SELECTED_TARGET="device_and_snapshot_combo_box_target[M7BBB18B19152766]" />
  <component name="ExecutionTargetManager" SELECTED_TARGET="device_and_snapshot_combo_box_target[364c4b3158493098]" />
  <component name="ExternalProjectsData">
    <projectState path="$PROJECT_DIR$">
      <ProjectState />
@@ -127,7 +133,7 @@
    <property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
    <property name="cidr.known.project.marker" value="true" />
    <property name="dart.analysis.tool.window.visible" value="false" />
    <property name="last_opened_file_path" value="$PROJECT_DIR$/DeviceAddModule/libs" />
    <property name="last_opened_file_path" value="$PROJECT_DIR$/app/src/main/res/layout" />
    <property name="memory.settings.postsync.last.time.stamp" value="1669278541025" />
    <property name="project.structure.last.edited" value="Dependencies" />
    <property name="project.structure.proportion" value="0.17" />
@@ -139,18 +145,18 @@
    <option name="LAST_EDITED_BUILD_TYPE" value="release" />
  </component>
  <component name="RecentsManager">
    <key name="CopyFile.RECENT_KEYS">
      <recent name="$PROJECT_DIR$/app/src/main/res/layout" />
      <recent name="$PROJECT_DIR$/DeviceAddModule/libs" />
      <recent name="$PROJECT_DIR$/app/src/main/java/com/hdl" />
      <recent name="$PROJECT_DIR$/app/src/main/res/drawable" />
      <recent name="$PROJECT_DIR$/app/src/main/res/mipmap-xhdpi" />
    </key>
    <key name="MoveFile.RECENT_KEYS">
      <recent name="$PROJECT_DIR$/DeviceAddModule/libs" />
    </key>
    <key name="MoveClassesOrPackagesDialog.RECENTS_KEY">
      <recent name="com" />
    </key>
    <key name="CopyFile.RECENT_KEYS">
      <recent name="$PROJECT_DIR$/DeviceAddModule/libs" />
      <recent name="$PROJECT_DIR$/app/src/main/java/com/hdl" />
      <recent name="$PROJECT_DIR$/app/src/main/res/drawable" />
      <recent name="$PROJECT_DIR$/app/src/main/res/mipmap-xhdpi" />
      <recent name="$PROJECT_DIR$/app/src/main/res/layout" />
    </key>
  </component>
  <component name="RunManager" selected="Android App.app">
@@ -169,6 +175,7 @@
      <option name="ARTIFACT_NAME" value="" />
      <option name="PM_INSTALL_OPTIONS" value="" />
      <option name="ALL_USERS" value="false" />
      <option name="ALWAYS_INSTALL_WITH_PM" value="false" />
      <option name="DYNAMIC_FEATURES_DISABLED_LIST" value="" />
      <option name="ACTIVITY_EXTRA_FLAGS" value="" />
      <option name="MODE" value="default_activity" />
@@ -176,6 +183,7 @@
      <option name="SHOW_LOGCAT_AUTOMATICALLY" value="false" />
      <option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
      <option name="FORCE_STOP_RUNNING_APP" value="true" />
      <option name="INSPECTION_WITHOUT_ACTIVITY_RESTART" value="false" />
      <option name="TARGET_SELECTION_MODE" value="DEVICE_AND_SNAPSHOT_COMBO_BOX" />
      <option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" />
      <option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" />
@@ -234,7 +242,9 @@
        </option>
        <option name="vmOptions" />
      </ExternalSystemSettings>
      <GradleScriptDebugEnabled>true</GradleScriptDebugEnabled>
      <ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
      <ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
      <DebugAllEnabled>false</DebugAllEnabled>
      <method v="2" />
    </configuration>
    <configuration name="AndroidOpenDemo:DeviceAddModule [assembleRelease]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
@@ -253,7 +263,9 @@
        </option>
        <option name="vmOptions" />
      </ExternalSystemSettings>
      <GradleScriptDebugEnabled>true</GradleScriptDebugEnabled>
      <ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
      <ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
      <DebugAllEnabled>false</DebugAllEnabled>
      <method v="2" />
    </configuration>
    <configuration name="AndroidOpenDemo:app [assembleDebug]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
@@ -272,7 +284,9 @@
        </option>
        <option name="vmOptions" />
      </ExternalSystemSettings>
      <GradleScriptDebugEnabled>true</GradleScriptDebugEnabled>
      <ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
      <ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
      <DebugAllEnabled>false</DebugAllEnabled>
      <method v="2" />
    </configuration>
    <configuration name="AndroidOpenDemo:app [assembleRelease]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
@@ -291,7 +305,9 @@
        </option>
        <option name="vmOptions" />
      </ExternalSystemSettings>
      <GradleScriptDebugEnabled>true</GradleScriptDebugEnabled>
      <ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
      <ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
      <DebugAllEnabled>false</DebugAllEnabled>
      <method v="2" />
    </configuration>
    <configuration name="AndroidOpenDemo:third-zxing [assembleRelease]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
@@ -310,7 +326,9 @@
        </option>
        <option name="vmOptions" />
      </ExternalSystemSettings>
      <GradleScriptDebugEnabled>true</GradleScriptDebugEnabled>
      <ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
      <ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
      <DebugAllEnabled>false</DebugAllEnabled>
      <method v="2" />
    </configuration>
    <recent_temporary>
@@ -323,7 +341,7 @@
      </list>
    </recent_temporary>
  </component>
  <component name="SpellCheckerSettings" BundledDictionaries="0" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" Dictionaries="0" CorrectionsLimit="5" DefaultDictionary="application-level" UseSingleDictionary="true" />
  <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="false" />
  <component name="SvnConfiguration">
    <configuration />
  </component>
@@ -354,42 +372,15 @@
      <path value="$PROJECT_DIR$" />
    </ignored-roots>
  </component>
  <component name="WindowStateProjectService">
    <state width="1236" height="362" key="GridCell.Tab.0.bottom" timestamp="1669368743267">
      <screen x="0" y="0" width="1280" height="800" />
    </state>
    <state width="1236" height="362" key="GridCell.Tab.0.bottom/0.0.1280.800@0.0.1280.800" timestamp="1669368743267" />
    <state width="1236" height="362" key="GridCell.Tab.0.center" timestamp="1669368743265">
      <screen x="0" y="0" width="1280" height="800" />
    </state>
    <state width="1236" height="362" key="GridCell.Tab.0.center/0.0.1280.800@0.0.1280.800" timestamp="1669368743265" />
    <state width="1236" height="362" key="GridCell.Tab.0.left" timestamp="1669368743264">
      <screen x="0" y="0" width="1280" height="800" />
    </state>
    <state width="1236" height="362" key="GridCell.Tab.0.left/0.0.1280.800@0.0.1280.800" timestamp="1669368743264" />
    <state width="1236" height="362" key="GridCell.Tab.0.right" timestamp="1669368743266">
      <screen x="0" y="0" width="1280" height="800" />
    </state>
    <state width="1236" height="362" key="GridCell.Tab.0.right/0.0.1280.800@0.0.1280.800" timestamp="1669368743266" />
    <state width="1236" height="164" key="GridCell.Tab.1.bottom" timestamp="1669279002690">
      <screen x="0" y="0" width="1280" height="800" />
    </state>
    <state width="1236" height="164" key="GridCell.Tab.1.bottom/0.0.1280.800@0.0.1280.800" timestamp="1669279002690" />
    <state width="1236" height="164" key="GridCell.Tab.1.center" timestamp="1669279002687">
      <screen x="0" y="0" width="1280" height="800" />
    </state>
    <state width="1236" height="164" key="GridCell.Tab.1.center/0.0.1280.800@0.0.1280.800" timestamp="1669279002687" />
    <state width="1236" height="164" key="GridCell.Tab.1.left" timestamp="1669279002687">
      <screen x="0" y="0" width="1280" height="800" />
    </state>
    <state width="1236" height="164" key="GridCell.Tab.1.left/0.0.1280.800@0.0.1280.800" timestamp="1669279002687" />
    <state width="1236" height="164" key="GridCell.Tab.1.right" timestamp="1669279002690">
      <screen x="0" y="0" width="1280" height="800" />
    </state>
    <state width="1236" height="164" key="GridCell.Tab.1.right/0.0.1280.800@0.0.1280.800" timestamp="1669279002690" />
    <state x="332" y="155" width="774" height="490" key="find.popup" timestamp="1669368850354">
      <screen x="0" y="0" width="1280" height="800" />
    </state>
    <state x="332" y="155" width="774" height="490" key="find.popup/0.0.1280.800@0.0.1280.800" timestamp="1669368850354" />
  <component name="XDebuggerManager">
    <breakpoint-manager>
      <breakpoints>
        <line-breakpoint enabled="true" suspend="THREAD" type="java-line">
          <url>file://$PROJECT_DIR$/app/src/main/java/com/lechange/demo/ui/DeviceDetailMainFragment.java</url>
          <line>285</line>
          <option name="timeStamp" value="141" />
        </line-breakpoint>
      </breakpoints>
    </breakpoint-manager>
  </component>
</project>
AndroidOpenDemo/app/src/main/java/com/lechange/demo/dialog/RecoverSDCardDialog.java
New file
@@ -0,0 +1,58 @@
package com.lechange.demo.dialog;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import com.lechange.demo.R;
public class RecoverSDCardDialog extends Dialog {
    private TextView tv_title;
    private TextView tv_msg;
    private TextView btn_ok;
    private TextView btn_cancel;
    public RecoverSDCardDialog(Context context) {
        super(context, R.style.sign_dialog);
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dialog_sd_card_reconver);
        tv_title = findViewById(R.id.tv_title);
        tv_msg = findViewById(R.id.tv_msg);
        btn_ok = findViewById(R.id.btn_ok);
        btn_cancel = findViewById(R.id.btn_cancel);
        btn_ok.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (mOnOkClickLisenter != null) {
                    mOnOkClickLisenter.OnOK();
                }
                dismiss();
            }
        });
        btn_cancel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                dismiss();
            }
        });
    }
    public interface OnOkClickLisenter {
        void OnOK();
    }
    private DeviceUpdateDialog.OnOkClickLisenter mOnOkClickLisenter;
    public void setOnOkClickLisenter(DeviceUpdateDialog.OnOkClickLisenter lisenter) {
        this.mOnOkClickLisenter = lisenter;
    }
}
AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/DeviceDetailMainFragment.java
@@ -1,5 +1,6 @@
package com.lechange.demo.ui;
import android.app.Activity;
import android.content.Intent;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
@@ -25,6 +26,8 @@
import com.common.openapi.entity.DeviceLocalCacheData;
import com.common.openapi.entity.DeviceUnBindData;
import com.lechange.demo.R;
import com.lechange.demo.dialog.DeviceUpdateDialog;
import com.lechange.demo.dialog.RecoverSDCardDialog;
import com.lechange.demo.tools.DialogUtils;
import com.lechange.demo.tools.MediaPlayHelper;
import com.mm.android.deviceaddmodule.LCDeviceEngine;
@@ -276,23 +279,31 @@
            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);
                }
            RecoverSDCardDialog dialog = new RecoverSDCardDialog(getContext());
            dialog.setOnOkClickLisenter(new DeviceUpdateDialog.OnOkClickLisenter() {
                @Override
                public void onError(Throwable throwable) {
                    deviceDetailActivity.rlLoading.setVisibility(View.GONE);
                public void OnOK() {
                    deviceDetailActivity.rlLoading.setVisibility(View.VISIBLE);
                    DeviceDetailService deviceDetailService = ClassInstanceManager.newInstance().getDeviceDetailService();
                    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);
                        }
                    });
                }
            });
            dialog.show();
        }
    }
AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/EnvGuideActivity.java
@@ -71,17 +71,17 @@
        HdlToLcUtils.getInstance().initData(this, "HDL-HOME-APP-TEST", "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss", "https://test-gz.hdlcontrol.com");
        HdlToLcUtils.getInstance().setHomeId("1547099040465408002");
        HdlToLcUtils.getInstance().setToken("eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiJiMmYwMTAzYmU4OTM0MmVkYmM0ZTNiM2ZkZGZmOGU1NSIsImNvbXBhbnlJZCI6IjIwMiIsInJvbGUiOiIiLCJoZWFkZXJQcmVmaXgiOiJCZWFyZXIgIiwidXNlckFjY291bnQiOiJ3eHIiLCJ0ZW5hbnRJZCI6IjIwIiwidXNlclR5cGUiOiJVU0VSX0IiLCJ0b2tlblR5cGUiOiJhY2Nlc3NfdG9rZW4iLCJ1c2VyTmFtZSI6Ind4ciIsIm9wZW5BcHBsaWNhdGlvbklkIjoiMCIsInVzZXJJZCI6IjEzOTIwMzU1NjgyMDQ0MjMxNjkiLCJleHAiOjE2NjkzNzUxMDUsIm5iZiI6MTY2OTM2NzkwNX0.GRAs6PQxyQrUswj_svLXVDKcmZ679OovaypAMtJiHr8zK6E3Y_DeBUl5S2KjyLXjMetXPgV3Qtpcg3oZqGCzvK5-koBWHwkdbas6C2Z6NVqbGYC-w5qOzY2eUm9zQg8Kz0B9f5TaZYORVeHQr0QgcVTBmrmqT11ZVCH248VxJAQ");
        HdlToLcUtils.getInstance().setToken("eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiJiZTAzNDE1MTZkMDg0YmNhOGZjM2U5ZTA3OWMzZWY5ZSIsImNvbXBhbnlJZCI6IjIwMiIsInJvbGUiOiIiLCJoZWFkZXJQcmVmaXgiOiJCZWFyZXIgIiwidXNlckFjY291bnQiOiJ3eHIiLCJ0ZW5hbnRJZCI6IjIwIiwidXNlclR5cGUiOiJVU0VSX0IiLCJ0b2tlblR5cGUiOiJhY2Nlc3NfdG9rZW4iLCJ1c2VyTmFtZSI6Ind4ciIsIm9wZW5BcHBsaWNhdGlvbklkIjoiMCIsInVzZXJJZCI6IjEzOTIwMzU1NjgyMDQ0MjMxNjkiLCJleHAiOjE2Njk4NzAxNjQsIm5iZiI6MTY2OTg2Mjk2NH0.kCDl6u7hL4bS-tpf5f_jEQ1Hjhj2_65v3cDJBbvVpfOYE8k6NShJjyIVHLUaY0EXWygF6uc-w9izNWksGHWKPOE_7BWnwJrHAJKq6hxbhhJ-9LjU0AG2p9Wxf48CeAyHyT5l71IAoUA_25rZi4GwXB6OkGYbO4-i-L0ZjszJUJU");
        HdlToLcUtils.getInstance().setSubAccessToken("St_00009ed748c2b03f4100b6ea97a37466");
//        HdlToLcUtils.getInstance().openActivity();
        HdlToLcUtils.getInstance().addCamera(new IAddCamera() {
            @Override
            public void back() {
            }
        });
//        HdlToLcUtils.getInstance().play("8F05F83AAG05B3A");
//        HdlToLcUtils.getInstance().addCamera(new IAddCamera() {
//            @Override
//            public void back() {
//
//            }
//        });
        HdlToLcUtils.getInstance().play("8F05F83AAG05B3A","xxxx");
    }
AndroidOpenDemo/app/src/main/java/com/utils/HdlToLcUtils.java
@@ -117,8 +117,8 @@
        }
    }
    public  void play(String deviceId){
        new DeviceUtils(deviceId).play();
    public  void play(String deviceId,String title){
        new DeviceUtils(deviceId,title).play();
    }
AndroidOpenDemo/app/src/main/res/layout/dialog_sd_card_reconver.xml
New file
@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical">
    <LinearLayout
        android:layout_width="@dimen/px_600"
        android:layout_height="wrap_content"
        android:background="@drawable/lc_demo_pg_background"
        android:orientation="vertical">
        <TextView
            android:id="@+id/tv_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:layout_gravity="center_horizontal"
            android:gravity="center"
            android:padding="@dimen/px_20"
            android:text="@string/lc_demo_device_update_tip"
            android:textColor="@color/lc_demo_color_2c2c2c"
            android:textSize="@dimen/px_36" />
        <TextView
            android:id="@+id/tv_msg"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="@dimen/px_40"
            android:layout_marginTop="@dimen/px_40"
            android:layout_marginRight="@dimen/px_40"
            android:text="@string/format_sd_tip"
            android:gravity="center"
            android:lineSpacingMultiplier="1.2"
            android:textColor="@color/lc_demo_color_2c2c2c"
            android:textSize="@dimen/px_30" />
        <View
            android:layout_width="match_parent"
            android:layout_height="@dimen/px_2"
            android:layout_marginTop="@dimen/px_50"
            android:background="@color/lc_demo_color_f2f2f2"></View>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="@dimen/px_100"
            android:layout_marginLeft="@dimen/px_20"
            android:layout_marginRight="@dimen/px_20"
            android:orientation="horizontal">
            <TextView
                android:id="@+id/btn_cancel"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_centerHorizontal="true"
                android:layout_marginRight="@dimen/px_20"
                android:layout_toLeftOf="@+id/btn_cancel"
                android:layout_weight="1"
                android:background="@color/lc_demo_color_ffffff"
                android:gravity="center"
                android:padding="@dimen/px_10"
                android:text="@string/lc_demo_device_cancel"
                android:textColor="@color/lc_demo_color_f18d00"
                android:textSize="@dimen/px_30" />
            <View
                android:layout_width="@dimen/px_2"
                android:layout_height="@dimen/px_40"
                android:layout_gravity="center_vertical"
                android:background="@color/lc_demo_color_f2f2f2"></View>
            <TextView
                android:id="@+id/btn_ok"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_alignParentRight="true"
                android:layout_centerHorizontal="true"
                android:layout_weight="1"
                android:background="@color/lc_demo_color_ffffff"
                android:gravity="center"
                android:padding="@dimen/px_10"
                android:text="@string/lc_demo_sure"
                android:textColor="@color/lc_demo_color_2c2c2c"
                android:textSize="@dimen/px_30" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>
AndroidOpenDemo/app/src/main/res/layout/fragment_device_detail_main.xml
@@ -14,6 +14,20 @@
        android:paddingLeft="@dimen/px_30"
        android:paddingRight="@dimen/px_30">
        <TextView
            android:id="@+id/tv_device_info"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginRight="@dimen/px_30"
            android:layout_toLeftOf="@id/iv_device_pic"
            android:singleLine="true"
            android:text="@string/device_info"
            android:textColor="@color/lc_demo_color_2c2c2c"
            android:textSize="@dimen/px_36"></TextView>
        <TextView
            android:id="@+id/tv_device_name"
            android:layout_width="match_parent"
@@ -122,6 +136,14 @@
            android:layout_centerVertical="true"
            android:src="@mipmap/lc_demo_common_btn_next"></ImageView>
    </RelativeLayout>
    <View
        android:layout_width="match_parent"
        android:layout_height="@dimen/px_1"
        android:background="@color/lc_demo_color_d9d9d9"
        android:paddingLeft="@dimen/px_30"
        android:paddingRight="@dimen/px_30"></View>
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="@dimen/px_130"
@@ -132,7 +154,7 @@
        <TextView
            android:id="@+id/tvFormat_sd"
            android:layout_width="wrap_content"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:text="@string/format_sd"
@@ -144,7 +166,7 @@
        android:layout_marginTop="@dimen/px_1"
        android:id="@+id/rl_cur_wifi"
        android:layout_width="match_parent"
        android:layout_height="@dimen/px_130"
        android:layout_height="0dp"
        android:background="@color/lc_demo_color_ffffff"
        android:gravity="center_vertical"
        android:paddingLeft="@dimen/px_30"
AndroidOpenDemo/app/src/main/res/values-en/strings.xml
@@ -79,4 +79,6 @@
    <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>
    <string name="format_sd_tip">Are you sure to format the SD card?</string>
    <string name="device_info">Device Information</string>
</resources>
AndroidOpenDemo/app/src/main/res/values/strings.xml
@@ -79,4 +79,6 @@
    <string name="lc_demo_device_local_sd">无存储介质</string>
    <string name="lc_demo_device_cloud_not_open">云存储未开通</string>
    <string name="format_sd">格式化SD卡</string>
    <string name="format_sd_tip">确定格式化SD卡吗?</string>
    <string name="device_info">设备信息</string>
</resources>