NetworkUtil.ets 1.4 KB
import { NetworkManager } from '../network/NetworkManager'
import { NetworkType } from '../network/NetworkType'

/**
 * 网络相关工具类
 * 要实时监听网络,需要添加注册函数{例:src/main/ets/entryability/EntryAbility.ets:32}
 */
export class NetworkUtil {
  /**
   * 网络环境:0:无网 1:WiFi 2:2G 3:3G 4:4G 5:5G,暂时只识别出蜂窝网
   * 扩展6-以太网
   */
  static TYPE_NONE = '0'
  static TYPE_WIFI = '1'
  static TYPE_CELLULAR = '5'
  // TODO 以太网,手机不涉及
  static TYPE_ETHERNET = '6'

  static getNetworkType(): string {
    let type = NetworkManager.getInstance().getNetType()
    return NetworkUtil.parseType(type)
  }

  static parseType(type: NetworkType): string {
    switch (type) {
      case NetworkType.TYPE_UNKNOWN:
      case NetworkType.TYPE_NONE:
        return NetworkUtil.TYPE_NONE;
      case NetworkType.TYPE_WIFI:
        return NetworkUtil.TYPE_WIFI;
      case NetworkType.TYPE_CELLULAR:
        return NetworkUtil.TYPE_CELLULAR;
      case NetworkType.TYPE_ETHERNET:
        return NetworkUtil.TYPE_ETHERNET;
      default:
        return NetworkUtil.TYPE_NONE;
    }
  }

  /**
   * 判断网络是否已连接
   * @returns
   */
  static isNetConnected(): boolean {
    let type = NetworkManager.getInstance().getNetType()
    if (type == NetworkType.TYPE_UNKNOWN || type == NetworkType.TYPE_NONE) {
      return false
    }
    return true
  }
}