备用网络

更新时间:2024-03-15 02:56:47下载pdf

在一些安全场景中,用户需要定期修改 Wi-Fi 密码。如果没有 Wi-Fi 多组连接功能,意味着所有连接的 Wi-Fi 设备都需要重新配网。此时,可以通过提前预设多组 Wi-Fi 密码,称为 备用网络,然后设置自动尝试连接。从而实现无需经过重新配网,即可在线切换 Wi-Fi 连接网络环境。

请通过 deviceBean.getDevAttribute() & (1 << 12) 判断当前设备是否支持设置备用网络,1 表示支持,0 表示不支持。

网络设置

查询设备连接的 Wi-Fi 信息

初始化

IThingDevicePlugin devicePlugin = PluginManager.service(IThingDevicePlugin.class);
IThingWifiBackup wifiBackupManager = devicePlugin.getWifiBackupManager(devId);

接口说明

void getCurrentWifiInfo(IThingDataCallback<CurrentWifiInfoBean> dataCallback);

参数说明

参数 描述
dataCallback 回调

示例代码

wifiBackupManager.getCurrentWifiInfo(new IThingDataCallback<CurrentWifiInfoBean>() {
    @Override
    public void onSuccess(CurrentWifiInfoBean result) {

    }

    @Override
    public void onError(String errorCode, String errorMessage) {

    }
});

查询设备的备用 Wi-Fi 列表

接口说明

void getBackupWifiList(IThingDataCallback<BackupWifiListInfo> dataCallback);

参数说明

参数 描述
dataCallback 回调

示例代码

wifiBackupManager.getBackupWifiList(new IThingDataCallback<BackupWifiListInfo>() {
            @Override
            public void onSuccess(BackupWifiListInfo result) {

            }

            @Override
            public void onError(String errorCode, String errorMessage) {

            }
        });

设置备用网络列表

接口说明

void setBackupWifiList(List<BackupWifiBean> backupWifiList, IThingDataCallback<BackupWifiResultBean> dataCallback);

参数说明

参数 描述
backupWifiList 备用 Wi-Fi 信息 Bean
dataCallback 回调

示例代码

ArrayList<BackupWifiBean> backupWifiList = new ArrayList<>();

// 新添加的,设置密码
BackupWifiBean backupWifiBean = new BackupWifiBean();
backupWifiBean.ssid = "test1";
backupWifiBean.passwd = "12345678";
backupWifiList.add(backupWifiBean);

// 之前已添加过的,设置 hash
String ssid="test2";
String pwd="123123";
DeviceBean dev = ThingOSDevice.getDeviceBean(devId);
String hashStr=SHA256Util.getBase64Hash(dev.getLocalKey() + ssid + pwd);
BackupWifiBean backupWifiBean2 = new BackupWifiBean();
backupWifiBean2.ssid = "test2";
backupWifiBean2.hash = hashStr;
backupWifiList.add(backupWifiBean2);

final IThingDataCallback<BackupWifiResultBean> setBackupCallback = new IThingDataCallback<BackupWifiResultBean>() {
    @Override
    public void onSuccess(BackupWifiResultBean result) {

    }

    @Override
    public void onError(String errorCode, String errorMessage) {

    }
};
wifiBackupManager.setBackupWifiList(backupWifiList, setBackupCallback);

退出页面销毁监听

接口说明

wifiBackupManager.onDestory();

切换网络

切换到新 Wi-Fi

初始化

IThingDevicePlugin devicePlugin = PluginManager.service(IThingDevicePlugin.class);
IThingWifiSwitch wifiSwitchManager = devicePlugin.getWifiSwitchManager(devId);

接口说明

void switchToNewWifi(String ssid, String password, IThingDataCallback<SwitchWifiResultBean> callback);

参数说明

参数 说明
ssid Wi-Fi 名称
password Wi-Fi 密码
callback 回调

示例代码

wifiSwitchManager.switchToNewWifi(String ssid, String password, new IThingDataCallback<SwitchWifiResultBean>() {
            @Override
            public void onSuccess(SwitchWifiResultBean result) {

            }

            @Override
            public void onError(String errorCode, String errorMessage) {

            }
        });

切换到已备份的 Wi-Fi

接口说明

void switchToBackupWifi(String hash, IThingDataCallback<SwitchWifiResultBean> callback);

参数说明

参数 说明
hash Wi-Fi 密码的哈希值
callback 回调

示例代码

wifiSwitchManager.switchToBackupWifi(hash,new IThingDataCallback<SwitchWifiResultBean>() {
            @Override
            public void onSuccess(SwitchWifiResultBean result) {

            }

            @Override
            public void onError(String errorCode, String errorMessage) {

            }
        });

退出页面销毁监听

接口说明

wifiSwitchManager.onDestory();