【鸿蒙next教程】企业设备管理:@ohos.enterprise.networkManager(网络管理)_鸿蒙 企业设备信息管理能力
往期鸿蒙5.0全套实战文章必看:(文中附带鸿蒙5.0全栈学习资料)
-
鸿蒙开发核心知识点,看这篇文章就够了
-
最新版!鸿蒙HarmonyOS Next应用开发实战学习路线
-
鸿蒙HarmonyOS NEXT开发技术最全学习路线指南
-
鸿蒙应用开发实战项目,看这一篇文章就够了(部分项目附源码)
@ohos.enterprise.networkManager(网络管理)
本模块提供设备网络管理能力,包括查询设备IP地址、MAC地址信息等。
说明
本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
本模块接口仅可在Stage模型下使用。
本模块接口仅对设备管理应用开放,需将设备管理应用激活后调用,实现相应功能。
导入模块
import { networkManager } from \'@kit.MDMKit\';
networkManager.getAllNetworkInterfacesSync
getAllNetworkInterfacesSync(admin: Want): Array
获取所有激活的有线网络接口。
需要权限: ohos.permission.ENTERPRISE_MANAGE_NETWORK
系统能力: SystemCapability.Customization.EnterpriseDeviceManager
参数:
返回值:
错误码:
以下错误码的详细介绍。
示例:
import { Want } from \'@kit.AbilityKit\';let wantTemp: Want = { bundleName: \'com.example.myapplication\', abilityName: \'EntryAbility\',};try { let result: Array = networkManager.getAllNetworkInterfacesSync(wantTemp); console.info(`Succeeded in getting all network interfaces, result : ${JSON.stringify(result)}`);} catch (err) { console.error(`Failed to get all network interfaces. Code: ${err.code}, message: ${err.message}`);}
networkManager.getIpAddressSync
getIpAddressSync(admin: Want, networkInterface: string): string
根据网络接口获取设备IP地址。
需要权限: ohos.permission.ENTERPRISE_MANAGE_NETWORK
系统能力: SystemCapability.Customization.EnterpriseDeviceManager
参数:
返回值:
错误码:
以下错误码的详细介绍。
示例:
import { Want } from \'@kit.AbilityKit\';let wantTemp: Want = { bundleName: \'com.example.myapplication\', abilityName: \'EntryAbility\',};try { let result: string = networkManager.getIpAddressSync(wantTemp, \'eth0\'); console.info(`Succeeded in getting ip address, result : ${result}`);} catch (err) { console.error(`Failed to get ip address. Code: ${err.code}, message: ${err.message}`);}
networkManager.getMacSync
getMacSync(admin: Want, networkInterface: string): string
根据网络接口获取设备MAC地址。
需要权限: ohos.permission.ENTERPRISE_MANAGE_NETWORK
系统能力: SystemCapability.Customization.EnterpriseDeviceManager
参数:
返回值:
错误码:
以下错误码的详细介绍。
示例:
import { Want } from \'@kit.AbilityKit\';let wantTemp: Want = { bundleName: \'com.example.myapplication\', abilityName: \'EntryAbility\',};try { let result: string = networkManager.getMacSync(wantTemp, \'eth0\'); console.info(`Succeeded in getting mac, result : ${result}`);} catch (err) { console.error(`Failed to get mac. Code: ${err.code}, message: ${err.message}`);}
networkManager.isNetworkInterfaceDisabledSync
isNetworkInterfaceDisabledSync(admin: Want, networkInterface: string): boolean
查询指定网络接口是否被禁用。
需要权限: ohos.permission.ENTERPRISE_MANAGE_NETWORK
系统能力: SystemCapability.Customization.EnterpriseDeviceManager
参数:
返回值:
错误码:
以下错误码的详细介绍。
示例:
import { Want } from \'@kit.AbilityKit\';let wantTemp: Want = { bundleName: \'com.example.myapplication\', abilityName: \'EntryAbility\',};try { let result: boolean = networkManager.isNetworkInterfaceDisabledSync(wantTemp, \'eth0\'); console.info(`Succeeded in querying network interface is disabled or not, result : ${result}`);} catch (err) { console.error(`Failed to query network interface is disabled or not. Code: ${err.code}, message: ${err.message}`);}
networkManager.setNetworkInterfaceDisabledSync
setNetworkInterfaceDisabledSync(admin: Want, networkInterface: string, isDisabled: boolean): void
禁止设备使用指定网络接口。
需要权限: ohos.permission.ENTERPRISE_MANAGE_NETWORK
系统能力: SystemCapability.Customization.EnterpriseDeviceManager
参数:
错误码:
以下错误码的详细介绍。
示例:
import { Want } from \'@kit.AbilityKit\';import { BusinessError } from \'@kit.BasicServicesKit\';let wantTemp: Want = { bundleName: \'com.example.myapplication\', abilityName: \'EntryAbility\',};try { networkManager.setNetworkInterfaceDisabledSync(wantTemp, \'eth0\', true); console.info(`Succeeded in setting network interface disabled`);} catch (err) { console.error(`Failed to set network interface disabled. Code: ${err.code}, message: ${err.message}`);}
networkManager.setGlobalProxySync
setGlobalProxySync(admin: Want, httpProxy: connection.HttpProxy): void
设置网络全局代理。
需要权限: ohos.permission.ENTERPRISE_MANAGE_NETWORK
系统能力: SystemCapability.Customization.EnterpriseDeviceManager
参数:
错误码:
以下错误码的详细介绍。
示例:
import { Want } from \'@kit.AbilityKit\';import { connection } from \'@kit.NetworkKit\';let wantTemp: Want = { bundleName: \'com.example.myapplication\', abilityName: \'EntryAbility\',};let exclusionStr: string = \"192.168,baidu.com\"let exclusionArray: Array = exclusionStr.split(\',\');let httpProxy: connection.HttpProxy = { host: \"192.168.xx.xxx\", port: 8080, exclusionList: exclusionArray};try { networkManager.setGlobalProxySync(wantTemp, httpProxy); console.info(`Succeeded in setting network global proxy.`);} catch (err) { console.error(`Failed to set network global proxy. Code: ${err.code}, message: ${err.message}`);}
networkManager.getGlobalProxySync
getGlobalProxySync(admin: Want): connection.HttpProxy
获取网络全局代理。
需要权限: ohos.permission.ENTERPRISE_MANAGE_NETWORK
系统能力: SystemCapability.Customization.EnterpriseDeviceManager
参数:
返回值:
错误码:
以下错误码的详细介绍。
示例:
import { Want } from \'@kit.AbilityKit\';import { connection } from \'@kit.NetworkKit\';let wantTemp: Want = { bundleName: \'com.example.myapplication\', abilityName: \'EntryAbility\',};try { let result: connection.HttpProxy = networkManager.getGlobalProxySync(wantTemp); console.info(`Succeeded in getting network global proxy, result : ${JSON.stringify(result)}`);} catch (err) { console.error(`Failed to get network global proxy. Code: ${err.code}, message: ${err.message}`);}
networkManager.addFirewallRule
addFirewallRule(admin: Want, firewallRule: FirewallRule): void
为设备添加防火墙过滤规则。
添加了Action为ALLOW规则后,将会默认添加DENY规则,不在ALLOW规则之内的网络数据包将会被丢弃或拦截。
需要权限: ohos.permission.ENTERPRISE_MANAGE_NETWORK
系统能力: SystemCapability.Customization.EnterpriseDeviceManager
参数:
错误码:
以下错误码的详细介绍。
示例:
import { Want } from \'@kit.AbilityKit\';let wantTemp: Want = { bundleName: \'com.example.myapplication\', abilityName: \'EntryAbility\',};let firewallRule: networkManager.FirewallRule = { \"srcAddr\": \"192.168.1.1-192.188.22.66\", \"destAddr\": \"10.1.1.1\", \"srcPort\": \"8080\", \"destPort\": \"8080\", \"appUid\": \"9696\", \"direction\": networkManager.Direction.OUTPUT, \"action\": networkManager.Action.DENY, \"protocol\": networkManager.Protocol.UDP,}networkManager.addFirewallRule(wantTemp, firewallRule);
networkManager.removeFirewallRule
removeFirewallRule(admin: Want, firewallRule?: FirewallRule): void
移除设备防火墙过滤规则。
移除规则后如果不存在Action为ALLOW规则后,会将addFirewallRule添加的默认DENY规则清空。
需要权限: ohos.permission.ENTERPRISE_MANAGE_NETWORK
系统能力: SystemCapability.Customization.EnterpriseDeviceManager
参数:
错误码:
以下错误码的详细介绍。
示例:
import { Want } from \'@kit.AbilityKit\';let wantTemp: Want = { bundleName: \'com.example.myapplication\', abilityName: \'EntryAbility\',};// 移除指定的规则let firewallRule: networkManager.FirewallRule = { \"srcAddr\": \"192.168.1.1-192.188.22.66\", \"destAddr\": \"10.1.1.1\", \"srcPort\": \"8080\", \"destPort\": \"8080\", \"appUid\": \"9696\", \"direction\": networkManager.Direction.OUTPUT, \"action\": networkManager.Action.DENY, \"protocol\": networkManager.Protocol.UDP,}networkManager.removeFirewallRule(wantTemp, firewallRule);// 清空所有规则networkManager.removeFirewallRule(wantTemp);
networkManager.getFirewallRules
getFirewallRules(admin: Want): Array
查询设备防火墙过滤规则。
需要权限: ohos.permission.ENTERPRISE_MANAGE_NETWORK
系统能力: SystemCapability.Customization.EnterpriseDeviceManager
参数:
返回值:
错误码:
以下错误码的详细介绍。
示例:
import { Want } from \'@kit.AbilityKit\';let wantTemp: Want = { bundleName: \'com.example.myapplication\', abilityName: \'EntryAbility\',};let firewallRule: Array;firewallRule = networkManager.getFirewallRules(wantTemp);
networkManager.addDomainFilterRule
addDomainFilterRule(admin: Want, domainFilterRule: DomainFilterRule): void
为设备添加域名过滤规则。
添加了Action为ALLOW规则后,将会默认添加DENY规则,不在ALLOW规则之内的域名解析数据包将会被丢弃或拦截。
需要权限: ohos.permission.ENTERPRISE_MANAGE_NETWORK
系统能力: SystemCapability.Customization.EnterpriseDeviceManager
参数:
错误码:
以下错误码的详细介绍。
示例:
import { Want } from \'@kit.AbilityKit\';let wantTemp: Want = { bundleName: \'com.example.myapplication\', abilityName: \'EntryAbility\',};let domainFilterRule: networkManager.DomainFilterRule = { \"domainName\": \"www.example.com\", \"appUid\": \"9696\", \"action\": networkManager.Action.DENY,}networkManager.addDomainFilterRule(wantTemp, domainFilterRule);
networkManager.removeDomainFilterRule
removeDomainFilterRule(admin: Want, domainFilterRule?: DomainFilterRule): void
移除设备域名过滤规则。
移除规则后如果不存在Action为ALLOW规则后,会将addDomainFilterRule添加的默认DENY规则清空。
需要权限: ohos.permission.ENTERPRISE_MANAGE_NETWORK
系统能力: SystemCapability.Customization.EnterpriseDeviceManager
参数:
错误码:
以下错误码的详细介绍。
示例:
import { Want } from \'@kit.AbilityKit\';let wantTemp: Want = { bundleName: \'com.example.myapplication\', abilityName: \'EntryAbility\',};// 移除指定的规则let domainFilterRule: networkManager.DomainFilterRule = { \"domainName\": \"www.example.com\", \"appUid\": \"9696\", \"action\": networkManager.Action.DENY,}networkManager.removeDomainFilterRule(wantTemp, domainFilterRule);// 清空所有规则networkManager.removeDomainFilterRule(wantTemp);
networkManager.getDomainFilterRules
getDomainFilterRules(admin: Want): Array
查询设备域名过滤规则。
需要权限: ohos.permission.ENTERPRISE_MANAGE_NETWORK
系统能力: SystemCapability.Customization.EnterpriseDeviceManager
参数:
返回值:
错误码:
以下错误码的详细介绍。
示例:
import { Want } from \'@kit.AbilityKit\';let wantTemp: Want = { bundleName: \'com.example.myapplication\', abilityName: \'EntryAbility\',};let domainFilterRule: Array;domainFilterRule = networkManager.getDomainFilterRules(wantTemp);
FirewallRule
防火墙过滤规则。
系统能力: SystemCapability.Customization.EnterpriseDeviceManager
规则链。
添加防护墙过滤规则时必填;
移除防火墙时非必填,当值为空时,表示清空所有的Direction链,且srcAddr,destAddr,srcPort,destPort,appUid也必须传入空值。
接收或者丢弃数据包。
添加防护墙过滤规则时必填;
移除防火墙时非必填,当值为空时,表示清空所有的匹配Action规则的链,且srcAddr,destAddr,srcPort,destPort,appUid也必须传入空值。
DomainFilterRule
域名过滤规则。
系统能力: SystemCapability.Customization.EnterpriseDeviceManager
接收或者丢弃数据包。
添加域名过滤规则时必填;
移除域名过滤规则时非必填,当值为空时,表示清空所有的匹配Action规则的链,且domainName,appUid也必须传入空值。
Direction
规则链。
系统能力: SystemCapability.Customization.EnterpriseDeviceManager
Action
数据包的行为。
系统能力: SystemCapability.Customization.EnterpriseDeviceManager
Protocol
网络协议。
系统能力: SystemCapability.Customization.EnterpriseDeviceManager