1
wxr
2023-04-23 2cd55265ccff3b0a267d7953b2dd9e5dca437aa6
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
package ezviz.ezopensdk.configwifi;
 
import android.app.Application;
import android.content.Intent;
 
import com.ezviz.sdk.configwifi.EZConfigWifiInfoEnum;
import com.videogo.EzvizApplication;
import com.videogo.openapi.EZOpenSDK;
import com.videogo.wificonfig.APWifiConfig;
 
import ezviz.ezopensdkcommon.common.IntentConstants;
import ezviz.ezopensdkcommon.common.LogUtil;
import ezviz.ezopensdkcommon.configwifi.ConfigWifiExecutingActivityPresenter;
import ezviz.ezopensdkcommon.configwifi.ConfigWifiTypeConstants;
 
public class ApConfigWifiPresenterForFullSdk extends ConfigWifiExecutingActivityPresenter {
 
    private final static String TAG = ApConfigWifiPresenterForFullSdk.class.getSimpleName();
 
    public ApConfigWifiPresenterForFullSdk(){
        mType = ConfigWifiTypeConstants.FULL_SDK_AP;
    }
 
    @Override
    public void startConfigWifi(Application app, final Intent configParam) {
        // 准备参数
        String routerWifiName = configParam.getStringExtra(IntentConstants.ROUTER_WIFI_SSID);
        String routerWifiPwd = configParam.getStringExtra(IntentConstants.ROUTER_WIFI_PASSWORD);
        String deviceSerial = configParam.getStringExtra(IntentConstants.DEVICE_SERIAL);
        String deviceVerifyCode = configParam.getStringExtra(IntentConstants.DEVICE_VERIFY_CODE);
        String deviceHotspotSSID /*设备热点名称,可以为空*/= configParam.getStringExtra(IntentConstants.DEVICE_HOTSPOT_SSID);
        String deviceHotspotPwd /*设备热点密码,可以为空*/= configParam.getStringExtra(IntentConstants.DEVICE_HOTSPOT_PWD);
        boolean autoConnect /*是否自动连接到设备热点*/= !configParam.getBooleanExtra(IntentConstants.USE_MANUAL_AP_CONFIG,
                false);
        // 开始配网
        EzvizApplication.getOpenSDK().startAPConfigWifiWithSsid(routerWifiName, routerWifiPwd,
                deviceSerial, deviceVerifyCode,
                deviceHotspotSSID, deviceHotspotPwd,
                autoConnect, mConfigCallback);
    }
 
    @Override
    public void stopConfigWifi() {
        EzvizApplication.getOpenSDK().stopAPConfigWifiWithSsid();
    }
 
    private APWifiConfig.APConfigCallback mConfigCallback = new APWifiConfig.APConfigCallback() {
        @Override
        public void onSuccess() {
            if (mCallback == null){
                return;
            }
            mCallback.onConnectedToWifi();
        }
 
        @Override
        public void onInfo(int code, String message) {
            if (mCallback == null){
                return;
            }
            if (code == EZConfigWifiInfoEnum.CONNECTED_TO_PLATFORM.code){
                mCallback.onConnectedToPlatform();
            }
        }
 
        @Override
        public void OnError(int code) {
            if (mCallback == null){
                return;
            }
            LogUtil.e(TAG, "OnError: " + code);
            boolean solved = false;
            // TODO: 2018/7/24 未知错误
            if (code == 15) {
                solved = true;
                mCallback.onTimeout();
                // TODO: 2018/7/24 超时
            } else if (code == 1) {// TODO: 2018/7/24 参数错误
            } else if (code == 2) {// TODO: 2018/7/24 设备ap热点密码错误
            } else if (code == 3) {// TODO: 2018/7/24  连接ap热点异常
            } else if (code == 4) {// TODO: 2018/7/24 搜索WiFi热点错误
            }
            if (!solved){
                mCallback.onConfigError(code, null);
            }
        }
    };
 
}