hxb
2022-11-24 535d69817e83737f3da6250fc6fb70da25fc1a4c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
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;
 
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,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) {
        //开启添加页面
        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);
        }
    }
 
}