设备备用网络业务实现

更新时间:2024-07-05 08:07:42下载pdf

设备备用网络能力包括:

  • 设备是否支持备用网络
  • 获取设备当前网络信息
  • 获取设备备用网络列表
  • 变更设备备用网络列表
  • 设备是否支持主动切换网络
  • 设备是否支持变更备用网络列表
  • 将设备连接至新的 Wi-Fi 中(不在备用网络列表中)
  • 将设备连接至新的 Wi-Fi 中(在备用网络列表中)

前置准备

获取设备备用网络管理类

val manager = DeviceBusinessDataManager.getInstance().getDeviceNetSetManager(deviceId)

查看设备是否支持备用网络

val isSupport = manager?.isSupportBackupNetwork()

只有当设备支持备用网络,方可根据下文的步骤来实现备用网络业务。

步骤 1:获取设备当前网络信息

获取设备当前连接的 Wi-Fi 信息。

manager?.getDeviceCurrentNetInfo(object : IThingDataCallback<CurrentWifiInfoBean?> {
    override fun onSuccess(result: CurrentWifiInfoBean?) {

    }

    override fun onError(errorCode: String?, errorMessage: String?) {

    }

})

步骤 2:获取设备备用网络列表

获取设备当前备用的 Wi-Fi 网络列表。

manager?.getDeviceBackupWiFiList(object : IThingDataCallback<BackupWifiListInfo?> {
    override fun onSuccess(result: BackupWifiListInfo?) {

    }

    override fun onError(errorCode: String?, errorMessage: String?) {

    }

})

步骤 3:变更设备备用网络列表

只要设备支持变更备用网络,才能通过 变更设备备用网络列表 的接口来实现变更备用网络的业务。另外,需要注意的是:当设备的备用网络数量达到最大值时,无法再添加新的备用网络。可以根据步骤 1 返回的 maxNum 来判断。

检查是否支持变更列表

manager?.canUpdateDeviceBackupWiFiList(bean)

变更列表

如果是新增一个备用 Wi-Fi 网络,需要将 Wi-Fi 网络的 SSID、密码以及 Hash 值组装成 BackupWifiBean,再通过 updateDeviceBackupWiFiList 接口增加备用 Wi-Fi 网络。

// 组装数据
val backupWifiBean = BackupWifiBean()
backupWifiBean.ssid = ssid
backupWifiBean.passwd = pwd
backupWifiBean.hash =
    SHA256Utils.getBase64Hash(viewModel.deviceBean?.getLocalKey() + ssid + pwd)
backupWifiBeans.add(backupWifiBean)
// 变更列表
manager?.updateDeviceBackupWiFiList(backupWifiList,
    object : IThingDataCallback<BackupWifiResultBean?> {
        override fun onSuccess(result: BackupWifiResultBean?) {

        }

        override fun onError(errorCode: String?, errorMessage: String?) {

        }

    })

步骤 4:主动切换设备网络

只要设备支持主动切换网络,才能通过 切换设备网络 的接口来实现备用网络切换的业务。

检查是否支持主动切换

canSwitchDeviceWiFi.value = manager?.canSwitchDeviceWiFi(bean)

切换设备网络

设备可以切换到一个新的 Wi-Fi 网络上,或者切换到备用网络列表中某一个 Wi-Fi 网络。

切换到新的 Wi-Fi 网络

manager?.switchToNewWifi(ssid, pwd, object : IThingDataCallback<SwitchWifiResultBean?> {
    override fun onSuccess(result: SwitchWifiResultBean?) {

    }

    override fun onError(errorCode: String?, errorMessage: String?) {

    }

})

切换到备用网络列表中的 Wi-Fi 网络

manager?.switchToBackupWifi(hash, object : IThingDataCallback<SwitchWifiResultBean?> {
    override fun onSuccess(result: SwitchWifiResultBean?) {

    }

    override fun onError(errorCode: String?, errorMessage: String?) {

    }

})

Demo

上述的步骤是按照查增的思路完成设备备用网络业务。实际业务开发时,可灵活组合。更多信息,可以参考 业务拓展 SDK Demo 中的 备用网络模块