package com.mm.android.deviceaddmodule.helper; import android.annotation.TargetApi; import android.content.Context; import android.net.ConnectivityManager; import android.net.Network; import android.net.NetworkCapabilities; import android.net.NetworkRequest; import android.os.Build; import android.os.Bundle; import android.text.TextUtils; import com.company.NetSDK.CFG_NETAPP_WLAN; import com.company.NetSDK.DEVICE_NET_INFO_EX; import com.company.NetSDK.FinalVar; import com.company.NetSDK.INetSDK; import com.dahua.mobile.utility.network.DHWifiUtil; import com.lechange.opensdk.media.DeviceInitInfo; import com.mm.android.deviceaddmodule.DeviceAddActivity; import com.mm.android.deviceaddmodule.event.DeviceAddEvent; import com.mm.android.deviceaddmodule.mobilecommon.AppConsume.ProviderManager; import com.mm.android.deviceaddmodule.mobilecommon.annotation.DeviceAbility; import com.mm.android.deviceaddmodule.mobilecommon.entity.deviceadd.DeviceAddInfo; import com.mm.android.deviceaddmodule.mobilecommon.p2pDevice.P2PErrorHelper; import com.mm.android.deviceaddmodule.mobilecommon.utils.LogUtil; import com.mm.android.deviceaddmodule.model.DeviceAddModel; import org.greenrobot.eventbus.EventBus; import org.json.JSONException; import org.json.JSONObject; public class DeviceAddHelper { public static final String DEVICE_MODEL_NAME_PARAM= "device_model_name_param"; //è®¾å¤‡å¸‚åœºåž‹å· public static final int DEVICE_NAME_MAX_LENGTH = 20; //设备å长度é™åˆ¶ public static final int AP_NAME_MAX_LENGTH = 20; //é…ä»¶å长度é™åˆ¶ public static final String AP_WIFI_NAME_DAP = "DAP-XXXX"; //软Ap通用设备çƒç‚¹åç§° public static final String AP_WIFI_VERSION_V1 = "V1"; //软Ap wifi version版本 public static final String AP_WIFI_VERSION_V2 = "V2"; //软Ap wifi version版本 // æ˜¯å¦æ”¯æŒæ–°å£°æ³¢ï¼ŒäºŒè¿›åˆ¶ç¬¬1ä½ï¼Œ0表示å¦ï¼Œ1表示是 public static final int ALLOW_SoundWaveV2 = 1; // 0001 // æ˜¯å¦æ”¯æŒè€å£°æ³¢ï¼ŒäºŒè¿›åˆ¶ç¬¬2ä½ï¼Œ0表示å¦ï¼Œ1表示是 public static final int ALLOW_SoundWave = 1 << 1; // 0010 // æ˜¯å¦æ”¯æŒSmartConfig,二进制第3ä½ï¼Œ0表示å¦ï¼Œ1表示是 public static final int ALLOW_SmartConfig = 1 << 2; // 0100 // æ˜¯å¦æ”¯æŒSoftAP,二进制第4ä½ï¼Œ0表示å¦ï¼Œ1表示是 public static final int ALLOW_SoftAP = 1 << 3; // 1000 // æ˜¯å¦æ”¯æŒLAN,二进制第4ä½ï¼Œ0表示å¦ï¼Œ1表示是 public static final int ALLOW_LAN = 1 << 4; // 10000 // æ˜¯å¦æ”¯æŒè“牙,二进制第4ä½ï¼Œ0表示å¦ï¼Œ1表示是 public static final int ALLOW_BT = 1 << 5; // 100000 public enum TitleMode { // FLASH, //é—ªå…‰ç¯ MORE, //更多 MORE2, //更多模å¼2 MORE3, //更多模å¼3 MORE4, //更多模å¼4 REFRESH, //刷新 BLANK, //空白 SHARE, //设备共享 FREE_CLOUD_STORAGE, //å…费云å˜å‚¨ MODIFY_DEVICE_NAME //修改设备密ç } public enum TimeoutDevTypeModel { A_MODEL, //A系列 CK_MODEL, //CK系列 COMMON_MODEL, //通用设备 DOORBELL_MODEL, //门铃系列 AP_MODEL, //é…ä»¶ OTHER_MODEL, //å…¶ä»– TP1_MODEL, //TP1类型 TP1S_MODEL, //TP1S类型 G1_MODEL, //G1类型 K5_MODEL //é—¨é”类型 } //è®¾å¤‡æ·»åŠ ç›¸å…³é”™è¯¯ç public interface ErrorCode { //输入设备åºåˆ—å·æµç¨‹ç›¸å…³é”™è¯¯ç int INPUT_SN_ERROR_BIND_BY_OTHER = 1000 + 1; //输入åºåˆ—å·æ—¶è®¾å¤‡è¢«å…¶ä»–用户绑定 int DEVICE_BIND_ERROR_BIND_BY_OTHER = 1000 + 2; //绑定时设备被其他用户绑定 int DEVICE_BIND_ERROR_NOT_SUPPORT_TO_BIND = 1000 + 3; //扫ç ã€é€‰åž‹å·ã€è®¾å¤‡ä¸Šçº¿ç»‘å®šæ—¶ä¸æ”¯æŒç»‘定的设备类型 //设备选择æµç¨‹ç›¸å…³é”™è¯¯ç int TYPE_CHOOSE_ERROR_1 = 2000; //æœ‰çº¿æ— çº¿é…ç½®æµç¨‹ç›¸å…³é”™è¯¯ç int WIRED_WIRELESS_ERROR_CONFIG_TIMEOUT = 3000 + 1; //é…置超时 //软APæ·»åŠ æµç¨‹ç›¸å…³é”™è¯¯ç int SOFTAP_ERROR_CONNECT_HOT_FAILED = 4000 + 1; //连接设备çƒç‚¹å¤±è´¥ int SOFTAP_ERROR_CONNECT_WIFI_FAILED = 4000 + 2; //设备连接wifi失败 //设备åˆå§‹åŒ–æµç¨‹ç›¸å…³é”™è¯¯ç int INIT_ERROR_SERCRITY_CHECK_TIMEOUT = 5000 + 1; //安全检查超时 int INIT_ERROR_INIT_FAILED = 5000 + 2; //åˆå§‹åŒ–失败 //è¿žæŽ¥äº‘å¹³å°æµç¨‹ç›¸å…³é”™è¯¯ç int CLOUND_CONNECT_ERROR_CONNECT_TIMEOUT = 6000 + 1; //连接超时 int CLOUND_CONNECT_QUERY_STATUS_TIMEOUT = 6000 + 2; //查询超时 //通用 int COMMON_ERROR_NOT_SUPPORT_5G = 7000 + 1; //䏿”¯æŒ5G int COMMON_ERROR_NOT_SUPPORT_RESET = 7000 + 2; //é‡ç½®è®¾å¤‡ int COMMON_ERROR_NOT_SUPPORT_HUB_AP_RESET = 7000 + 3; //é‡ç½®è®¾å¤‡ int COMMON_ERROR_NOT_SUPPORT_HUB_RESET = 7000 + 4; //é‡ç½®è®¾å¤‡ int COMMON_ERROR_DEVICE_LOCKED = 7000 + 5; //设备é”定 int COMMON_ERROR_RED_ROTATE = 7000 + 6; //çº¢ç¯æ—‹è½¬ int COMMON_ERROR_RED_ALWAYS = 7000 + 7; //红ç¯é•¿äº® int COMMON_ERROR_RED_FLASH = 7000 + 8; //红ç¯é—ªçƒ int COMMON_ERROR_DEVICE_BIND_MROE_THAN_TEN = 7000 + 9; //超过10次 int COMMON_ERROR_DEVICE_MROE_THAN_TEN_TWICE = 7000 + 10; //冿¬¡è¶…过10次 int COMMON_ERROR_DEVICE_IP_ERROR = 7000 + 11; //IP int COMMON_ERROR_DEVICE_SN_CODE_CONFLICT = 7000 + 12; //ä¸²å· int COMMON_ERROR_DEVICE_SN_OR_IMEI_NOT_MATCH = 7000 + 13; //imeiå’Œdevice idä¸åŒ¹é… int COMMON_ERROR_ABOUT_WIFI_PWD = 7000 + 14; //关于WIFI密ç int COMMON_ERROR_CONNECT_FAIL = 7000 + 15; //软AP连接失败 int COMMON_ERROR_WIFI_NAME = 7000 + 16; //软AP连接失败 //é…ä»¶ int AP_ERROR_PAIR_TIMEOUT = 8000 + 2; //é…对超时 } //OMSé…ç½®key public interface OMSKey { final static String ERROR_TIPS_TYPE = "ErrorTipsType"; final static String ERROR_WIFI_TIPS_TYPE = "WifiErrorTipsType"; //æœ‰çº¿æ— çº¿é…ç½‘é”™è¯¯é¡µé¢æ¨¡å¼ final static String ERROR_SOFTAP_TIPS_TYPE = "SoftAPErrorTipsType"; //软APé…ç½‘é”™è¯¯é¡µé¢æ¨¡å¼ final static String ERROR_ACCESSORY_TIPS_TYPE = "AccessoryErrorTipsType"; //é…ä»¶é…ç½‘é”™è¯¯é¡µé¢æ¨¡å¼ //æœ‰çº¿æ— çº¿ final static String WIFI_MODE_GUIDING_LIGHT_IMAGE = "WifiModeGuidingLightImage"; final static String WIFI_MODE_CONFIG_INTRODUCTION = "WifiModeConfigIntroduction"; final static String WIFI_MODE_CONFIG_CONFIRM_INTRODUCTION = "WifiModeConfigConfirmIntroduction"; final static String WIFI_MODE_RESET_GUIDE_INTRODUCTION = "WifiModeResetGuideIntroduction"; final static String WIFI_MODE_RESET_IMAGE = "WifiModeResetImage"; final static String WIFI_MODE_RESET_OPERATION_INTRODUCTION = "WifiModeResetOperationIntroduction"; final static String WIFI_MODE_FINISH_DEVICE_IMAGE = "WifiModeFinishDeviceImage"; //软AP final static String SOFT_AP_MODE_WIFI_NAME = "SoftAPModeWifiName"; final static String SOFT_AP_MODE_GUIDING_STEP_ONE_IMAGE = "SoftAPModeGuidingStepOneImage"; final static String SOFT_AP_MODE_GUIDING_STEP_ONE_INTRODUCTION = "SoftAPModeGuidingStepOneIntroduction"; final static String SOFT_AP_MODE_GUIDING_STEP_TWO_IMAGE = "SoftAPModeGuidingStepTwoImage"; final static String SOFT_AP_MODE_GUIDING_STEP_TWO_INTRODUCTION = "SoftAPModeGuidingStepTwoIntroduction"; final static String SOFT_AP_MODE_GUIDING_STEP_THREE_IMAGE = "SoftAPModeGuidingStepThreeImage"; final static String SOFT_AP_MODE_GUIDING_STEP_THREE_INTRODUCTION = "SoftAPModeGuidingStepThreeIntroduction"; final static String SOFT_AP_MODE_GUIDING_STEP_FOUR_IMAGE = "SoftAPModeGuidingStepFourImage"; final static String SOFT_AP_MODE_GUIDING_STEP_FOUR_INTRODUCTION = "SoftAPModeGuidingStepFourIntroduction"; final static String SOFT_AP_MODE_RESET_GUIDE_INTRODUCTION = "SoftAPModeResetGuideIntroduction"; final static String SOFT_AP_MODE_RESET_IMAGE = "SoftAPModeResetImage"; final static String SOFT_AP_MODE_RESET_OPERATION_INTRODUCTION = "SoftAPModeResetOperationIntroduction"; final static String SOFT_AP_MODE_RESULT_PROMPT_IMAGE = "SoftAPModeResultPromptImage"; final static String SOFT_AP_MODE_RESULT_INTRODUCTION = "SoftAPModeResultIntroduction"; final static String SOFT_AP_MODE_CONFIRM_INTRODUCTION = "SoftAPModeConfirmIntroduction"; final static String SOFT_AP_MODE_WIFI_VERSION = "SoftAPModeWifiVersion"; //é…ä»¶ final static String ACCESSORY_MODE_PAIR_STATUS_IMAGE = "AccessoryModePairStatusImage"; final static String ACCESSORY_MODE_PAIR_OPERATION_INTRODUCTION = "AccessoryModePairOperationIntroduction"; final static String ACCESSORY_MODE_PAIR_CONFIRM_INTRODUCTION = "AccessoryModePairConfirmIntroduction"; final static String ACCESSORY_MODE_RESET_GUIDE_INTRODUCTION = "AccessoryModeResetGuideIntroduction"; final static String ACCESSORY_MODE_RESET_IMAGE = "AccessoryModeResetImage"; final static String ACCESSORY_MODE_RESET_OPERATION_INTRODUCTION = "AccessoryModeResetOperationIntroduction"; final static String ACCESSORY_MODE_FINISH_DEVICE_IMAGE = "AccessoryModeFinishDeviceImage"; //Hub final static String HUB_MODE_PAIR_STATUS_IMAGE = "HubModePairStatusImage"; final static String HUB_MODE_PAIR_OPERATION_INTRODUCTION = "HubModePairOperationIntroduction"; final static String HUB_MODE_RESET_GUIDE_INTRODUCTION = "HubModeResetGuideIntroduction"; final static String HUB_MODE_RESET_IMAGE = "HubModeResetImage"; final static String HUB_MODE_RESET_OPERATION_INTRODUCTION = "HubModeResetOperationIntroduction"; final static String HUB_ACCESSORY_MODE_PAIR_STATUS_IMAGE = "HubAccessoryModePairStatusImage"; final static String HUB_ACCESSORY_MODE_PAIR_OPERATION_INTRODUCTION = "HubAccessoryModePairOperationIntroduction"; final static String HUB_ACCESSORY_MODE_RESET_GUIDE_INTRODUCTION = "HubAccessoryModeResetGuideIntroduction"; final static String HUB_ACCESSORY_MODE_RESET_IMAGE = "HubAccessoryModeResetImage"; final static String HUB_ACCESSORY_MODE_RESET_OPERATION_INTRODUCTION = "HubAccessoryModeResetOperationIntroduction"; final static String HUB_MODE_RESULT_PROMPT_IMAGE = "HUBModeResultPromptImage"; final static String HUB_MODE_RESULT_INTRODUCTION = "HUBModeResultIntroduction"; final static String HUB_MODE_CONFIRM_INTRODUCTION = "HUBModeConfirmIntroduction"; //设备本地é…网 final static String LOCATION_MODE_OPERATION_IMAGE = "LocationOperationImages"; //引导图 final static String LOCATION_MODE_OPERATION_INTRODUCTION = "LocationOperationIntroduction"; //引导文案 final static String LOCATION_MODE_FINISH_DEVICE_IMAGE = "LocationModeFinishDeviceImage"; //æ·»åŠ å®Œæˆæ£è§†å›¾ // NB final static String THIRD_PARTY_PLATFORM_MODE_GUIDING_LIGHT_IMAGE = "ThirdPartyPlatformModeGuidingLightImage"; //引导图 final static String THIRD_PARTY_PLATFORM_MODE_RESULT_PROMPT_IMAGE = "ThirdPartyPlatformModeResultPromptImage"; } public static void updateTile(TitleMode titleMode) { Bundle bundle = new Bundle(); bundle.putString(DeviceAddEvent.KEY.TITLE_MODE, titleMode.name()); EventBus.getDefault().post(new DeviceAddEvent(DeviceAddEvent.TITLE_MODE_ACTION, bundle)); } //判æ–设备是å¦éœ€è¦åˆå§‹åŒ– public static boolean isDeviceNeedInit(DeviceInitInfo device_net_info_ex) { byte[] s = getByteArray(device_net_info_ex.mInitStatus); // 设备åˆå§‹åŒ–状æ€ï¼ŒæŒ‰ä½ç¡®å®šåˆå§‹åŒ–çŠ¶æ€ // bit0~1:0-è€è®¾å¤‡ï¼Œæ²¡æœ‰åˆå§‹åŒ–功能 1-未åˆå§‹åŒ–å¸å· 2-å·²åˆå§‹åŒ–叿ˆ· // bit2~3:0-è€è®¾å¤‡ï¼Œä¿ç•™ 1-公网接入未使能 2-公网接入已使能 // bit4~5:0-è€è®¾å¤‡ï¼Œä¿ç•™ 1-手机直连未使能 2-手机直连使能 if (s[s.length - 1] != 1) { return false; } else { return true; } } //判æ–设备是å¦å·²ç»åˆå§‹åŒ– public static boolean isDeviceInited(DeviceInitInfo device_net_info_ex) { byte[] s = getByteArray(device_net_info_ex.mInitStatus); // 设备åˆå§‹åŒ–状æ€ï¼ŒæŒ‰ä½ç¡®å®šåˆå§‹åŒ–çŠ¶æ€ // bit0~1:0-è€è®¾å¤‡ï¼Œæ²¡æœ‰åˆå§‹åŒ–功能 1-未åˆå§‹åŒ–å¸å· 2-å·²åˆå§‹åŒ–叿ˆ· // bit2~3:0-è€è®¾å¤‡ï¼Œä¿ç•™ 1-公网接入未使能 2-公网接入已使能 // bit4~5:0-è€è®¾å¤‡ï¼Œä¿ç•™ 1-手机直连未使能 2-手机直连使能 if (s[s.length - 1] != 2) { return false; } else { return true; } } //判æ–è®¾å¤‡æ˜¯å¦æ”¯æŒåˆå§‹åŒ–,仅在软APæ·»åŠ æµç¨‹ä¸ä½¿ç”¨ï¼ˆä¸ºäº†å…¼å®¹K5䏿”¯æŒåˆå§‹åŒ–,需è¦ç”¨é»˜è®¤ç”¨adminç™»å½•è®¾å¤‡ï¼‰ã€‚å…¶ä½™æ·»åŠ æµç¨‹ä»…åˆ¤æ–æ˜¯å¦éœ€è¦åˆå§‹åŒ–å³å¯ï¼Œéœ€è¦çš„弹框用户输入,ä¸éœ€è¦çš„跳过。 public static boolean isDeviceSupportInit(DeviceInitInfo device_net_info_ex){ byte[] s = getByteArray(device_net_info_ex.mInitStatus); // 设备åˆå§‹åŒ–状æ€ï¼ŒæŒ‰ä½ç¡®å®šåˆå§‹åŒ–çŠ¶æ€ // bit0~1:0-è€è®¾å¤‡ï¼Œæ²¡æœ‰åˆå§‹åŒ–功能 1-未åˆå§‹åŒ–å¸å· 2-å·²åˆå§‹åŒ–叿ˆ· // bit2~3:0-è€è®¾å¤‡ï¼Œä¿ç•™ 1-公网接入未使能 2-公网接入已使能 // bit4~5:0-è€è®¾å¤‡ï¼Œä¿ç•™ 1-手机直连未使能 2-手机直连使能 if (s[s.length - 2] != 1) { return false; } else { return true; } } /** * 获å–é…置,3代åè®® * * @param loginHandle * @param channelID * @param strCommand * @param BUFFERLEN * @param stCfg * @return */ public static boolean getNewDevConfig(long loginHandle, int channelID, String strCommand, int BUFFERLEN, CFG_NETAPP_WLAN stCfg, String requestId) { boolean ret = false; //netsdk 使用局é™ï¼Œåªèƒ½ä½¿ç”¨ ç±»å¯¹è±¡ä¼ é€’å‚æ•°ã€‚ Integer error = new Integer(0); char szBuffer[] = new char[BUFFERLEN]; ret = INetSDK.GetNewDevConfig(loginHandle, strCommand, channelID, szBuffer, BUFFERLEN, error, 5 * 1000); if (!ret) { return false; } ret = INetSDK.ParseData(strCommand, szBuffer, stCfg, null); if (!ret) { return false; } return true; } /** * åˆ¤æ–æ˜¯å¦æ˜¯è®¾å¤‡ç”¨æˆ·å或密ç 错误 * * @param error */ public static boolean isDevPwdError(int error) { return (error == P2PErrorHelper.LOGIN_ERROR_KEY_OR_USER_MISMATCH || error == P2PErrorHelper.LOGIN_ERROR_KEY_MISMATCH || error == FinalVar.NET_LOGIN_ERROR_PASSWORD || error == FinalVar.NET_USER_FLASEPWD || error == FinalVar.NET_LOGIN_ERROR_USER_OR_PASSOWRD); } public static byte[] getByteArray(byte b) { byte[] array = new byte[8]; for (int i = 7; i >= 0; i--) { array[i] = (byte) (b & 1); b = (byte) (b >> 1); } return array; } /** * å—符过滤 * @param str * @return */ public static String strDeviceNameFilter(String str) { if (TextUtils.isEmpty(str)) { return str; } StringBuilder builder = new StringBuilder(); String strEx = "^[a-zA-Z0-9\\-\u4E00-\u9FA5\\_\\@\\s]+"; for (int i = 0; i < str.length(); i++) { String temp = str.substring(i, i + 1); if (temp.matches(strEx)) { builder.append(temp); } } return builder.toString(); } /** * 支æŒscç æ·»åŠ * @param deviceAddInfo * @return */ public static boolean isSupportAddBySc(DeviceAddInfo deviceAddInfo) { if(deviceAddInfo == null) { return false; } if(!TextUtils.isEmpty(deviceAddInfo.getSc()) && deviceAddInfo.getSc().length() == 8) { return true; } if(deviceAddInfo.hasAbility(DeviceAbility.SCCode)) { return true; } return false; } /** * 支æŒSCç 的设备,使用SCç 作为设备密ç */ public static void setDevicePwdBySc() { DeviceAddInfo deviceAddInfo = DeviceAddModel.newInstance().getDeviceInfoCache(); if(DeviceAddHelper.isSupportAddBySc(deviceAddInfo)) { deviceAddInfo.setDevicePwd(deviceAddInfo.getSc()); } } /** * 支æŒ2代声波 * @param deviceAddInfo * @return */ public static boolean isSupportSoundWaveV2(DeviceAddInfo deviceAddInfo) { if(deviceAddInfo == null) { return false; } return deviceAddInfo.getConfigMode() != null && deviceAddInfo.getConfigMode().contains(DeviceAddInfo.ConfigMode.SoundWaveV2.name()); } public static String getJsonString(DeviceAddInfo deviceAddInfo, boolean offlineConfigType) { JSONObject result = new JSONObject(); try { result.put("SN", deviceAddInfo.getDeviceSn()); if(offlineConfigType) { result.put("deviceModelName", deviceAddInfo.getDeviceModel()); } else { result.put("SC", deviceAddInfo.getSc()); } } catch (JSONException e){ e.printStackTrace(); } return result.toString(); } // 打å°é”™è¯¯ç public static int printError() { int error = (INetSDK.GetLastError() & 0x7fffffff); LogUtil.debugLog("DeviceAddHelper", "error:" + error); return error; } public interface BindNetworkListener{ void onBindWifiListener(); } /** * 指定手机走wifi链路 */ public static void bindNetwork(final BindNetworkListener bindNetworkListener){ final ConnectivityManager connectivityManager = (ConnectivityManager) ProviderManager.getAppProvider().getAppContext().getSystemService(Context.CONNECTIVITY_SERVICE); NetworkRequest.Builder builder; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { builder = new NetworkRequest.Builder(); //set the transport type do WIFI builder.addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN) .addTransportType(NetworkCapabilities.TRANSPORT_WIFI) .build(); connectivityManager.requestNetwork(builder.build(), new ConnectivityManager.NetworkCallback() { @TargetApi(Build.VERSION_CODES.M) @Override public void onAvailable(Network network) { LogUtil.debugLog(DeviceAddActivity.TAG, "bindNetwork succuss"); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { connectivityManager.bindProcessToNetwork(null); connectivityManager.bindProcessToNetwork(network); } else { //This method was deprecated in API level 23 ConnectivityManager.setProcessDefaultNetwork(null); ConnectivityManager.setProcessDefaultNetwork(network); } connectivityManager.unregisterNetworkCallback(this); if(bindNetworkListener != null){ bindNetworkListener.onBindWifiListener(); } } }); } } /** * 清除网络链路é…置,注æ„软ap调用过{@link #bindNetwork},需è¦åœ¨åˆé€‚的时机释放,å¦åˆ™æ— 法连外网 */ public static void clearNetWork(){ LogUtil.debugLog(DeviceAddActivity.TAG, "clearNetWork succuss"); final ConnectivityManager connectivityManager = (ConnectivityManager) ProviderManager.getAppProvider().getAppContext().getSystemService(Context.CONNECTIVITY_SERVICE); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { connectivityManager.bindProcessToNetwork(null); } else if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){ //This method was deprecated in API level 23 ConnectivityManager.setProcessDefaultNetwork(null); } } /** * 连接之å‰çš„wifi * @return */ public static void connectPreviousWifi(){ DeviceAddInfo deviceAddInfo = DeviceAddModel.newInstance().getDeviceInfoCache(); String previousSsid = deviceAddInfo.getPreviousSsid(); if(!TextUtils.isEmpty(previousSsid)) { deviceAddInfo.setPreviousSsid(""); DHWifiUtil wifiUtil = new DHWifiUtil(ProviderManager.getAppProvider().getAppContext()); wifiUtil.connectWifi(previousSsid, ""); } } }