hxb
2022-11-22 57a05be8ea321d9268c146a542b1ecf7d023bf1c
增加了播放
2个文件已添加
1个文件已删除
3个文件已修改
2 文件已重命名
496 ■■■■■ 已修改文件
AndroidOpenDemo/.idea/workspace.xml 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AndroidOpenDemo/app/src/main/java/com/hdl/HdlToLc.java 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/DeviceListActivity.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/EnvGuideActivity.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AndroidOpenDemo/app/src/main/java/com/net/IUserDataCallBack.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
AndroidOpenDemo/app/src/main/java/com/net/UserNetManager.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
AndroidOpenDemo/app/src/main/java/com/utils/DeviceUtils.java 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AndroidOpenDemo/app/src/main/java/com/utils/HdlToLcUtils.java 199 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
AndroidOpenDemo/.idea/workspace.xml
@@ -15,11 +15,12 @@
  </component>
  <component name="ChangeListManager">
    <list default="true" id="7bacc5cf-316f-4ad4-b191-7f5297eb7bcf" name="Default Changelist" comment="">
      <change afterPath="$PROJECT_DIR$/app/src/main/java/com/utils/DeviceUtils.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/HttpClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/HttpClient.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/HttpSend.java" beforeDir="false" afterPath="$PROJECT_DIR$/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/HttpSend.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/app/src/main/java/com/common/openapi/DeviceInfoOpenApiManager.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/common/openapi/DeviceInfoOpenApiManager.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/app/src/main/java/com/hdl/HdlToLc.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/hdl/HdlToLc.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/app/src/main/java/com/hdl/HdlToLc.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/utils/HdlToLcUtils.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/app/src/main/java/com/hdl/net/IUserDataCallBack.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/net/IUserDataCallBack.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/app/src/main/java/com/hdl/net/UserNetManager.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/net/UserNetManager.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/app/src/main/java/com/lechange/demo/ui/DeviceListActivity.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/lechange/demo/ui/DeviceListActivity.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" />
    </list>
    <option name="SHOW_DIALOG" value="false" />
@@ -136,6 +137,7 @@
      <recent name="com" />
    </key>
    <key name="CopyClassDialog.RECENTS_KEY">
      <recent name="com.utils" />
      <recent name="com.mm.android.deviceaddmodule.utils" />
    </key>
    <key name="CopyFile.RECENT_KEYS">
@@ -348,51 +350,59 @@
    </ignored-roots>
  </component>
  <component name="WindowStateProjectService">
    <state x="453" y="91" key="#com.intellij.ide.util.MemberChooser" timestamp="1669099481115">
    <state x="453" y="91" key="#com.intellij.ide.util.MemberChooser" timestamp="1669107811029">
      <screen x="0" y="0" width="1280" height="800" />
    </state>
    <state x="453" y="91" key="#com.intellij.ide.util.MemberChooser/0.0.1280.800@0.0.1280.800" timestamp="1669099481115" />
    <state width="503" height="480" key="DebuggerActiveHint" timestamp="1669101875842">
    <state x="453" y="91" key="#com.intellij.ide.util.MemberChooser/0.0.1280.800@0.0.1280.800" timestamp="1669107811029" />
    <state x="180" y="331" key="#com.intellij.refactoring.move.MoveHandler.SelectRefactoringDialog" timestamp="1669107459555">
      <screen x="0" y="0" width="1280" height="800" />
    </state>
    <state width="503" height="480" key="DebuggerActiveHint/0.0.1280.800@0.0.1280.800" timestamp="1669101875842" />
    <state x="180" y="331" key="#com.intellij.refactoring.move.MoveHandler.SelectRefactoringDialog/0.0.1280.800@0.0.1280.800" timestamp="1669107459555" />
    <state x="326" y="288" key="#com.intellij.refactoring.move.moveClassesOrPackages.MoveClassesOrPackagesDialog.packages" timestamp="1669107461906">
      <screen x="0" y="0" width="1280" height="800" />
    </state>
    <state x="326" y="288" key="#com.intellij.refactoring.move.moveClassesOrPackages.MoveClassesOrPackagesDialog.packages/0.0.1280.800@0.0.1280.800" timestamp="1669107461905" />
    <state width="503" height="480" key="DebuggerActiveHint" timestamp="1669108173504">
      <screen x="0" y="0" width="1280" height="800" />
    </state>
    <state width="503" height="480" key="DebuggerActiveHint/0.0.1280.800@0.0.1280.800" timestamp="1669108173504" />
    <state width="462" height="480" key="DebuggerActiveHint/0.23.1280.777@0.23.1280.777" timestamp="1669100189203" />
    <state width="1236" height="287" key="GridCell.Tab.0.bottom" timestamp="1669101968820">
    <state width="1236" height="287" key="GridCell.Tab.0.bottom" timestamp="1669108419917">
      <screen x="0" y="0" width="1280" height="800" />
    </state>
    <state width="1236" height="287" key="GridCell.Tab.0.bottom/0.0.1280.800@0.0.1280.800" timestamp="1669101968820" />
    <state width="1236" height="287" key="GridCell.Tab.0.bottom/0.0.1280.800@0.0.1280.800" timestamp="1669108419917" />
    <state width="1236" height="206" key="GridCell.Tab.0.bottom/0.23.1280.777@0.23.1280.777" timestamp="1669007123738" />
    <state width="1236" height="287" key="GridCell.Tab.0.center" timestamp="1669101968818">
    <state width="1236" height="287" key="GridCell.Tab.0.center" timestamp="1669108419916">
      <screen x="0" y="0" width="1280" height="800" />
    </state>
    <state width="1236" height="287" key="GridCell.Tab.0.center/0.0.1280.800@0.0.1280.800" timestamp="1669101968818" />
    <state width="1236" height="287" key="GridCell.Tab.0.center/0.0.1280.800@0.0.1280.800" timestamp="1669108419916" />
    <state width="1236" height="206" key="GridCell.Tab.0.center/0.23.1280.777@0.23.1280.777" timestamp="1669007123735" />
    <state width="1236" height="287" key="GridCell.Tab.0.left" timestamp="1669101968816">
    <state width="1236" height="287" key="GridCell.Tab.0.left" timestamp="1669108419916">
      <screen x="0" y="0" width="1280" height="800" />
    </state>
    <state width="1236" height="287" key="GridCell.Tab.0.left/0.0.1280.800@0.0.1280.800" timestamp="1669101968816" />
    <state width="1236" height="287" key="GridCell.Tab.0.left/0.0.1280.800@0.0.1280.800" timestamp="1669108419916" />
    <state width="1236" height="206" key="GridCell.Tab.0.left/0.23.1280.777@0.23.1280.777" timestamp="1669007123734" />
    <state width="1236" height="287" key="GridCell.Tab.0.right" timestamp="1669101968819">
    <state width="1236" height="287" key="GridCell.Tab.0.right" timestamp="1669108419917">
      <screen x="0" y="0" width="1280" height="800" />
    </state>
    <state width="1236" height="287" key="GridCell.Tab.0.right/0.0.1280.800@0.0.1280.800" timestamp="1669101968819" />
    <state width="1236" height="287" key="GridCell.Tab.0.right/0.0.1280.800@0.0.1280.800" timestamp="1669108419917" />
    <state width="1236" height="206" key="GridCell.Tab.0.right/0.23.1280.777@0.23.1280.777" timestamp="1669007123736" />
    <state width="1236" height="287" key="GridCell.Tab.1.bottom" timestamp="1669101968826">
    <state width="1236" height="287" key="GridCell.Tab.1.bottom" timestamp="1669108419920">
      <screen x="0" y="0" width="1280" height="800" />
    </state>
    <state width="1236" height="287" key="GridCell.Tab.1.bottom/0.0.1280.800@0.0.1280.800" timestamp="1669101968826" />
    <state width="1236" height="287" key="GridCell.Tab.1.center" timestamp="1669101968824">
    <state width="1236" height="287" key="GridCell.Tab.1.bottom/0.0.1280.800@0.0.1280.800" timestamp="1669108419920" />
    <state width="1236" height="287" key="GridCell.Tab.1.center" timestamp="1669108419919">
      <screen x="0" y="0" width="1280" height="800" />
    </state>
    <state width="1236" height="287" key="GridCell.Tab.1.center/0.0.1280.800@0.0.1280.800" timestamp="1669101968824" />
    <state width="1236" height="287" key="GridCell.Tab.1.left" timestamp="1669101968822">
    <state width="1236" height="287" key="GridCell.Tab.1.center/0.0.1280.800@0.0.1280.800" timestamp="1669108419919" />
    <state width="1236" height="287" key="GridCell.Tab.1.left" timestamp="1669108419918">
      <screen x="0" y="0" width="1280" height="800" />
    </state>
    <state width="1236" height="287" key="GridCell.Tab.1.left/0.0.1280.800@0.0.1280.800" timestamp="1669101968822" />
    <state width="1236" height="287" key="GridCell.Tab.1.right" timestamp="1669101968825">
    <state width="1236" height="287" key="GridCell.Tab.1.left/0.0.1280.800@0.0.1280.800" timestamp="1669108419918" />
    <state width="1236" height="287" key="GridCell.Tab.1.right" timestamp="1669108419919">
      <screen x="0" y="0" width="1280" height="800" />
    </state>
    <state width="1236" height="287" key="GridCell.Tab.1.right/0.0.1280.800@0.0.1280.800" timestamp="1669101968825" />
    <state width="1236" height="287" key="GridCell.Tab.1.right/0.0.1280.800@0.0.1280.800" timestamp="1669108419919" />
    <state x="332" y="44" width="769" height="629" key="find.popup" timestamp="1669101340329">
      <screen x="0" y="0" width="1280" height="800" />
    </state>
@@ -441,6 +451,11 @@
          <line>187</line>
          <option name="timeStamp" value="84" />
        </line-breakpoint>
        <line-breakpoint enabled="true" suspend="THREAD" type="java-line">
          <url>file://$PROJECT_DIR$/app/src/main/java/com/lechange/demo/adapter/DeviceListAdapter.java</url>
          <line>48</line>
          <option name="timeStamp" value="92" />
        </line-breakpoint>
      </breakpoints>
    </breakpoint-manager>
    <watches-manager>
AndroidOpenDemo/app/src/main/java/com/hdl/HdlToLc.java
File was deleted
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() {
AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/EnvGuideActivity.java
@@ -6,10 +6,11 @@
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import com.hdl.HdlToLc;
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;
@@ -64,10 +65,15 @@
        if (id == R.id.tv_title_cn) {
//            HdlToLc.initData( this,true,"");
        } else if (id == R.id.tv_overseas) {
            HdlToLc.initData(this,"HDL-HOME-APP-TEST","WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss",false);
            HdlToLcUtils.getInstance().initData(this, "HDL-HOME-APP-TEST", "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss", false);
        }
        HdlToLc.openActivity("1547099040465408002","eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiIzMTI5ZjNlMDAwY2Q0YzhiOTgyYjUyNTk5MTE2MTJlMCIsImNvbXBhbnlJZCI6IjIwMiIsInJvbGUiOiIiLCJoZWFkZXJQcmVmaXgiOiJCZWFyZXIgIiwidXNlckFjY291bnQiOiJ3eHIiLCJ0ZW5hbnRJZCI6IjIwIiwidXNlclR5cGUiOiJVU0VSX0IiLCJ0b2tlblR5cGUiOiJhY2Nlc3NfdG9rZW4iLCJ1c2VyTmFtZSI6Ind4ciIsIm9wZW5BcHBsaWNhdGlvbklkIjoiMCIsInVzZXJJZCI6IjEzOTIwMzU1NjgyMDQ0MjMxNjkiLCJleHAiOjE2NjkxMDkxMjcsIm5iZiI6MTY2OTEwMTkyN30.TIyMqggqbaYoBEApeHTq3AidoKWZt5HpO2eUkhn_58VslSTxc-NhHwclTHjLpdVaMklJk1HMLQLwPOiJGhbUksOewO2dStzW1xYOpb_6zDs6Rw6v0h5cKmAYOf1f1S6RLqF2EHigf9fyy090ClWYcJo-9c_CFBXir4Y1lzDmLZQ","St_00003ee84eda32b14126af958052f20a");
        HdlToLcUtils.getInstance().setHomeId("1547099040465408002");
        HdlToLcUtils.getInstance().setToken("eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiIzMTI5ZjNlMDAwY2Q0YzhiOTgyYjUyNTk5MTE2MTJlMCIsImNvbXBhbnlJZCI6IjIwMiIsInJvbGUiOiIiLCJoZWFkZXJQcmVmaXgiOiJCZWFyZXIgIiwidXNlckFjY291bnQiOiJ3eHIiLCJ0ZW5hbnRJZCI6IjIwIiwidXNlclR5cGUiOiJVU0VSX0IiLCJ0b2tlblR5cGUiOiJhY2Nlc3NfdG9rZW4iLCJ1c2VyTmFtZSI6Ind4ciIsIm9wZW5BcHBsaWNhdGlvbklkIjoiMCIsInVzZXJJZCI6IjEzOTIwMzU1NjgyMDQ0MjMxNjkiLCJleHAiOjE2NjkxMDkxMjcsIm5iZiI6MTY2OTEwMTkyN30.TIyMqggqbaYoBEApeHTq3AidoKWZt5HpO2eUkhn_58VslSTxc-NhHwclTHjLpdVaMklJk1HMLQLwPOiJGhbUksOewO2dStzW1xYOpb_6zDs6Rw6v0h5cKmAYOf1f1S6RLqF2EHigf9fyy090ClWYcJo-9c_CFBXir4Y1lzDmLZQ");
        HdlToLcUtils.getInstance().setSubAccessToken("St_00003ee84eda32b14126af958052f20a");
//        HdlToLcUtils.getInstance().openActivity();
        //HdlToLcUtils.getInstance().AddCamera();
        HdlToLcUtils.getInstance().play("8F05F83AAG05B3A");
    }
AndroidOpenDemo/app/src/main/java/com/net/IUserDataCallBack.java
File was renamed from AndroidOpenDemo/app/src/main/java/com/hdl/net/IUserDataCallBack.java
@@ -1,4 +1,4 @@
package com.hdl.net;
package com.net;
public interface IUserDataCallBack {
    void onCallBackOpenId(String str);
AndroidOpenDemo/app/src/main/java/com/net/UserNetManager.java
File was renamed from AndroidOpenDemo/app/src/main/java/com/hdl/net/UserNetManager.java
@@ -1,4 +1,4 @@
package com.hdl.net;
package com.net;
import android.os.Handler;
import android.os.Message;
AndroidOpenDemo/app/src/main/java/com/utils/DeviceUtils.java
New file
@@ -0,0 +1,82 @@
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 List<DeviceDetailListData.ResponseData.DeviceListBean> datas = new ArrayList<>();
    private void getDeviceList() {
        DeviceSubAccountListService deviceSubAccountListService = ClassInstanceManager.newInstance().getDeviceSubAccountListService();
        deviceSubAccountListService.getSubAccountDeviceList(1,this);
    }
    public void play() {
        if (datas.size() == 0) {
            getDeviceList();
        } else {
            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);
                }
            }
        }
    }
    @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")) {
                    // 使用迭代器中的remove()方法,可以删除元素.
                    iterator.remove();
                }
            }
        }
        if ((responseData.data == null || responseData.data.deviceList == null || responseData.data.deviceList.size() == 0)) {
            return;
        }
        datas.addAll(responseData.data.deviceList);
        play();
    }
    @Override
    public void onError(Throwable throwable) {
        Toast.makeText(HdlToLcUtils.getInstance().getActivity(), throwable.getMessage(), Toast.LENGTH_SHORT).show();
    }
}
AndroidOpenDemo/app/src/main/java/com/utils/HdlToLcUtils.java
New file
@@ -0,0 +1,199 @@
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.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;
public class HdlToLcUtils {
    private  Activity activity;
    private String homeId;
    private String token;
    private String subAccessToken;
    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, boolean isChina) {
        this.activity = activity;
        MediaPlayHelper.initContext(activity.getApplication().getApplicationContext());
        ClassInstanceManager.newInstance().init(activity.getApplication());
        String mUrl;
        if (isChina) {
//            mAppSecret = "f869433de68a4a06bb8f9bb89118fc";
//            mAppid = "lc2ea929282d5f4636";
            mUrl = CONST.Envirment.CHINA_TEST.url;
            ProviderManager.getAppProvider().setAppType(0);
        } else {
//            mAppSecret = "017fc27bb987496f9a677e4e6f0c88";
//            mAppid = "lc0285433bc7e8423d";
//            mUrl = CONST.Envirment.OVERSEAS_PRO.url;
            mUrl=CONST.Envirment.CHINA_TEST.url;
            ProviderManager.getAppProvider().setAppType(1);
        }
        try {
            CommonParam commonParam = new CommonParam();
            commonParam.setEnvirment(mUrl);//云端连接
            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() {
        //开启添加页面
        activity.startActivity(new Intent(activity.getApplication(), DeviceAddActivity.class));
    }
    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){
                    //暂不保存到sp中了,因为获取需要context。
                    //  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);
        }
    }
}