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);
|
}
|
}
|
};
|
|
}
|