This action will force synchronization from OpenHarmony/communication_netmanager_base, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
网络管理主要分为网络管理、策略管理、流量管理、网络共享、VPN管理以及以太网连接等模块,其中网络管理、策略管理、流量管理为基础服务,归档在netmanager_base仓,以太网连接、网络共享、VPN管理三个模块为可裁剪扩展模块,归档在netmanager_ext仓,netmanager_ext编译构建依赖netmanager_base库内容。如图1:网络管理架构图;
图 1 网络管理架构图
foundation/communication/netmanager_base/
├─figures # 架构图
├─frameworks # 接口实现
│ ├─js # JS接口
│ └─native # native接口
├─interfaces # 接口定义
│ ├─innerkits # native接口
│ └─kits # JS接口
├─sa_profile # sa定义
├─services # IPC服务端实现
│ ├─common # 公用代码存放目录
│ ├─etc # 进程配置文件目录
│ ├─netconnmanager # 网络管理核心代码目录
│ ├─netmanagernative # 网络子系统服务端代码
│ ├─netpolicymanager # 策略管理核心代码目录
│ ├─netstatsmanager # 流量管理核心代码目录
│ ├─netsys_bpf_stats # bpfReader为service提供功能接口目录
│ └─netsyscontroller # netsys客户端代码目录
├─test # 测试代码
│ ├─fuzztest # FUZZ测试目录
│ ├─netconnmanager # 网络管理单元测试目录
│ ├─netmanagernative # 网络子系统服务端单元测试目录
│ ├─netpolicymanager # 策略管理单元测试目录
│ ├─netstatsmanager # 流量统计单元测试目录
│ └─netsys_bpf_stats # bpfReader单元测试目录
└─utils # 公共功能
├─common_utils # 共同库目录
├─log # 日志实现目录
└─napi_utils # 公用NAPI代码目录
类型 | 接口 | 功能说明 |
---|---|---|
ohos.net.connection | function getDefaultNet(callback: AsyncCallback<NetHandle>): void; | 获取一个含有默认网络的netId的NetHandle对象,使用callback回调 |
ohos.net.connection | function getDefaultNet(): Promise<NetHandle>; | 获取一个含有默认网络的netId的NetHandle对象,使用Promise回调 |
ohos.net.connection | function getAllNets(callback: AsyncCallback<Array<NetHandle>>): void; | 获取所处于连接状态的网络的MetHandle对象列表,使用callback回调 |
ohos.net.connection | function getAllNets(): Promise<Array<NetHandle>>; | 获取所有处于连接状态的网络的NetHandle对象列表,使用Promise回调 |
ohos.net.connection | function getConnectionProperties(netHandle: NetHandle, callback: AsyncCallback<ConnectionProperties>): void; | 查询默认网络的链路信息,使用callback回调 |
ohos.net.connection | function getConnectionProperties(netHandle: NetHandle): Promise<ConnectionProperties>; | 查询默认网络的链路信息,使用Promise回调 |
ohos.net.connection | function getNetCapabilities(netHandle: NetHandle, callback: AsyncCallback<NetCapabilities>): void; | 查询默认网络的能力集信息,使用callback回调 |
ohos.net.connection | function getNetCapabilities(netHandle: NetHandle): Promise<NetCapabilities>; | 查询默认网络的能力集信息,使用Promise回调 |
ohos.net.connection | function hasDefaultNet(callback: AsyncCallback<boolean>): void; | 查询是否有默认网络,使用callback回调 |
ohos.net.connection | function hasDefaultNet(): Promise<boolean>; | 查询是否有默认网络,使用Promise回调 |
ohos.net.connection | function getAddressesByName(host: string, callback: AsyncCallback<Array<NetAddress>>): void; | 使用对应网络解析域名,获取所有IP,使用callback回调 |
ohos.net.connection | function getAddressesByName(host: string): Promise<Array<NetAddress>>; | 使用默认网络解析域名,获取所有IP,使用Promise回调 |
ohos.net.connection | function createNetConnection(netSpecifier?: NetSpecifier, timeout?: number): NetConnection; | 返回一个NetConnection对象,netSpecifier指定关注的网络的各项特征,timeout是超时时间(单位是毫秒),netSpecifier是timeout的必要条件,两者都没有则表示关注默认网络 |
ohos.net.connection | function enableAirplaneMode(callback: AsyncCallback<void>): void; | 设置网络为飞行模式,使用callback回调 |
ohos.net.connection | function enableAirplaneMode(): Promise<void>; | 设置网络为飞行模式,使用Promise回调 |
ohos.net.connection | function disableAirplaneMode(callback: AsyncCallback<void>): void; | 关闭网络飞行模式,使用callback回调 |
ohos.net.connection | function disableAirplaneMode(): Promise<void>; | 关闭网络飞行模式,使用Promise回调 |
ohos.net.connection | function reportNetConnected(netHandle: NetHandle, callback: AsyncCallback<void>): void; | 向网络管理报告网络处于可用状态,调用此接口说明应用程序认为网络的可用性(ohos.net.connection.NetCap.NET_CAPABILITY_VAILDATED)与网络管理不一致。使用callback回调 |
ohos.net.connection | function reportNetConnected(netHandle: NetHandle): Promise<void>; | 向网络管理报告网络处于可用状态,调用此接口说明应用程序认为网络的可用性(ohos.net.connection.NetCap.NET_CAPABILITY_VAILDATED)与网络管理不一致。使用Promise回调 |
ohos.net.connection | function reportNetDisconnected(netHandle: NetHandle, callback: AsyncCallback<void>): void; | 向网络管理报告网络处于不可用状态,调用此接口说明应用程序认为网络的可用性(ohos.net.connection.NetCap.NET_CAPABILITY_VAILDATED)与网络管理不一致。使用callback回调 |
ohos.net.connection | function reportNetDisconnected(netHandle: NetHandle): Promise<void>; | 向网络管理报告网络处于不可用状态,调用此接口说明应用程序认为网络的可用性(ohos.net.connection.NetCap.NET_CAPABILITY_VAILDATED)与网络管理不一致。使用Promise回调 |
ohos.net.connection.NetHandle | bindSocket(socketParam: TCPSocket | UDPSocket, callback: AsyncCallback<void>): void; | 将TCPSocket或UDPSockett绑定到当前网络,使用callback回调 |
ohos.net.connection.NetHandle | bindSocket(socketParam: TCPSocket | UDPSocket): Promise<void>; | 将TCPSocket或UDPSockett绑定到当前网络,使用Promise回调 |
ohos.net.connection.NetHandle | getAddressesByName(host: string, callback: AsyncCallback<Array<NetAddress>>): void; | 使用默认网络解析域名,获取所有IP,使用callback回调 |
ohos.net.connection.NetHandle | getAddressesByName(host: string): Promise<Array<NetAddress>>; | 使用对应网络解析域名,获取所有IP,使用Promise回调 |
ohos.net.connection.NetHandle | getAddressByName(host: string, callback: AsyncCallback<NetAddress>): void; | 使用对应网络解析域名,获取一个IP,调用callbac |
ohos.net.connection.NetHandle | getAddressByName(host: string): Promise<NetAddress>; | 使用对应网络解析域名,获取一个IP,使用Promise回调 |
ohos.net.connection.NetConnection | on(type: 'netAvailable', callback: Callback<NetHandle>): void; | 监听收到网络可用的事件 |
ohos.net.connection.NetConnection | on(type: 'netCapabilitiesChange', callback: Callback<{ netHandle: NetHandle, netCap: NetCapabilities }>): void; | 监听网络能力变化的事件 |
ohos.net.connection.NetConnection | on(type: 'netConnectionPropertiesChange', callback: Callback<{ netHandle: NetHandle, connectionProperties: ConnectionProperties }>): void; | 监听网络连接信息变化的事件 |
ohos.net.connection.NetConnection | on(type: 'netLost', callback: Callback<NetHandle>): void; | 监听网络丢失的事件 |
ohos.net.connection.NetConnection | on(type: 'netUnavailable', callback: Callback<void>): void; | 监听网络不可用的事件 |
ohos.net.connection.NetConnection | register(callback: AsyncCallback<void>): void; | 注册默认网络或者createNetConnection中指定的网络的监听 |
ohos.net.connection.NetConnection | unregister(callback: AsyncCallback<void>): void; | 注销默认网络或者createNetConnection中指定的网络的监听 |
@ohos.net.policy | function setBackgroundPolicy(allow: boolean, callback: AsyncCallback<void>): void; | 设置后台网络策略,callback为回调函数 |
@ohos.net.policy | function setBackgroundPolicy(allow: boolean): Promise<void>; | 设置后台网络策略 |
@ohos.net.policy | function getBackgroundPolicy(callback: AsyncCallback<NetBackgroundPolicy>): void; | 获取后台网络限制策略,callback为回调函数 |
@ohos.net.policy | function getBackgroundPolicy(): Promise<NetBackgroundPolicy>; | 获取后台网络限制策略 |
@ohos.net.policy | function setPolicyByUid(uid: number, policy: NetUidPolicy, callback: AsyncCallback<void>): void; | 设置对应uid应用的访问计量网络的策略,callback为回调函数 |
@ohos.net.policy | function setPolicyByUid(uid: number, policy: NetUidPolicy): Promise<void>; | 设置对应uid应用的访问计量网络的策略 |
@ohos.net.policy | function getPolicyByUid(uid: number, callback: AsyncCallback<NetUidPolicy>): void; | 通过应用uid获取策略,callback为回调函数 |
@ohos.net.policy | function getPolicyByUid(uid: number): Promise<NetUidPolicy>; | 通过应用uid获取策略 |
@ohos.net.policy | function getUidsByPolicy(policy: NetUidPolicy, callback: AsyncCallback<Array<number>>): void; | 通过策略获取设置这一策略的应用uid数组,callback为回调函数 |
@ohos.net.policy | function getUidsByPolicy(policy: NetUidPolicy): Promise<Array<number>>; | 通过策略获取设置这一策略的应用uid数组 |
@ohos.net.policy | function getNetQuotaPolicies(callback: AsyncCallback<Array<NetQuotaPolicy>>): void; | 获取计量网络策略,callback为回调函数 |
@ohos.net.policy | function getNetQuotaPolicies(): Promise<Array<NetQuotaPolicy>>; | 获取计量网络策略 |
@ohos.net.policy | function setNetQuotaPolicies(quotaPolicies: Array<NetQuotaPolicy>, callback: AsyncCallback<void>): void; | 设置计量网络策略,callback为回调函数 |
@ohos.net.policy | function setNetQuotaPolicies(quotaPolicies: Array<NetQuotaPolicy>): Promise<void>; | 设置计量网络策略 |
@ohos.net.policy | function restoreAllPolicies(simId: string, callback: AsyncCallback<void>): void; | 重置对应sim卡id的蜂窝网络、后台网络策略、防火墙策略、应用对应的策略,callback为回调函数 |
@ohos.net.policy | function restoreAllPolicies(simId: string): Promise<void>; | 重置对应sim卡id的蜂窝网络、后台网络策略、防火墙策略、应用对应的策略 |
@ohos.net.policy | function isUidNetAllowedIsMetered(uid: number, isMetered: boolean, callback: AsyncCallback<boolean>): void; | 获取对应uid能否访问计量或非计量网络,callback为回调函数 |
@ohos.net.policy | function isUidNetAllowedIsMetered(uid: number, isMetered: boolean): Promise<boolean>; | 获取对应uid能否访问计量或非计量网络 |
@ohos.net.policy | function isUidNetAllowedIface(uid: number, iface: string, callback: AsyncCallback<boolean>): void; | 获取对应uid能否访问指定的iface的网络,callback为回调函数 |
@ohos.net.policy | function isUidNetAllowedIface(uid: number, iface: string): Promise<boolean>; | 获取对应uid能否访问指定的iface的网络 |
@ohos.net.policy | function setDeviceIdleAllowlist(uid: number, isAllow: boolean, callback: AsyncCallback<void>): void | 设置指定uid能应用是否在休眠防火墙的白名单,callback为回调函数 |
@ohos.net.policy | function setDeviceIdleAllowlist(uid: number, isAllow: boolean): Promise<void>; | 设置指定uid能应用是否在休眠防火墙的白名单 |
@ohos.net.policy | function getDeviceIdleAllowlist(callback: AsyncCallback<Array<number>>): void | 获取休眠模式白名单所包含的uid数组,callback为回调函数 |
@ohos.net.policy | function getDeviceIdleAllowlist(): Promise<Array<number>>; | 获取休眠模式白名单所包含的uid数组 |
@ohos.net.policy | function getBackgroundPolicyByUid(uid: number, callback: AsyncCallback<NetBackgroundPolicy>): void | 获取指定uid能否访问后台网络,callback为回调函数 |
@ohos.net.policy | function getBackgroundPolicyByUid(uid: number): Promise<NetBackgroundPolicy>; | 获取指定uid能否访问后台网络 |
@ohos.net.policy | function resetPolicies(simId: string, callback: AsyncCallback<void>): void; | 重置对应sim卡id的蜂窝网络、后台网络策略、防火墙策略、应用对应的策略,callback为回调函数 |
@ohos.net.policy | function resetPolicies(simId: string): Promise<void>; | 重置对应sim卡id的蜂窝网络、后台网络策略、防火墙策略、应用对应的策略 |
@ohos.net.policy | function updateRemindPolicy(netType: NetBearType, simId: string, remindType: RemindType, callback: AsyncCallback<void>): void | 更新提醒策略,netType为网络类型,simId为SIM卡id, remindType为提醒类型。callback为回调函数 |
@ohos.net.policy | function updateRemindPolicy(netType: NetBearType, simId: string, remindType: RemindType): Promise<void>; | 更新提醒策略,netType为网络类型,simId为SIM卡id, remindType为提醒类型 |
@ohos.net.policy | function on(type: 'netUidPolicyChange', callback: Callback<{ uid: number, policy: NetUidPolicy }>): void; | 注册policy发生改变时的回调 |
@ohos.net.policy | function off(type: 'netUidPolicyChange', callback: Callback<void>): void; | 反注册policy发生改变时的回调 |
@ohos.net.policy | function on(type: "netUidRuleChange", callback: Callback<{ uid: number, rule: NetUidRule }>): void; | 注册rule发生改变时的回调 |
@ohos.net.policy | function off(type: "netUidRuleChange", callback: Callback<void>): void; | 反注册rule发生改变时的回调 |
@ohos.net.policy | function on(type: "netMeteredIfacesChange", callback: Callback<Array<string>>): void; | 注册计量iface发生改变时的回调 |
@ohos.net.policy | function off(type: "netMeteredIfacesChange", callback: Callback<void>): void; | 反注册计量iface发生改变时的回调 |
@ohos.net.policy | function on(type: "netQuotaPolicyChange", callback: Callback<Array<NetQuotaPolicy>>): void; | 注册计量网络策略发生改变时的回调 |
@ohos.net.policy | function off(type: "netQuotaPolicyChange", callback: Callback<void>): void; | 反注册计量网络策略发生改变时的回调 |
@ohos.net.policy | function on(type: "netBackgroundPolicyChange", callback: Callback<boolean>): void; | 注册后台网络策略发生改变时的回调 |
@ohos.net.policy | function off(type: "netBackgroundPolicyChange", callback: Callback<void>): void; | 反注册后台网络策略发生改变时的回调 |
ohos.net.statistics | function getIfaceRxBytes(nic: string, callback: AsyncCallback<number>): void; | 查询指定网卡的下行流量数据,使用callback回调 |
ohos.net.statistics | function getIfaceRxBytes(nic: string): Promise<number>; | 获取指定网卡的下行流量数据,使用Promise回调 |
ohos.net.statistics | function getIfaceTxBytes(nic: string, callback: AsyncCallback<number>): void; | 查询指定网卡的上行流量数据,使用callback回调 |
ohos.net.statistics | function getIfaceRxBytes(nic: string): Promise<number>; | 获取指定网卡的上行流量数据,使用Promise回调 |
ohos.net.statistics | function getCellularRxBytes(callback: AsyncCallback<number>): void; | 查询指蜂窝网的下行流量数据,使用callback回调 |
ohos.net.statistics | function getCellularRxBytes(): Promise<number>; | 查询指蜂窝网的下行流量数据,使用Promise回调 |
ohos.net.statistics | function getCellularTxBytes(callback: AsyncCallback<number>): void; | 查询蜂窝网的上行流量数据,使用callback回调 |
ohos.net.statistics | function getCellularTxBytes(): Promise<number>; | 查询蜂窝网的上行流量数据,使用Promise回调 |
ohos.net.statistics | function getAllRxBytes(callback: AsyncCallback<number>): void; | 查询所有网卡的下行流量数据,使用callback回调 |
ohos.net.statistics | function getAllRxBytes(): Promise<number>; | 查询所有网卡的下行流量数据,使用Promise回调 |
ohos.net.statistics | function getAllTxBytes(callback: AsyncCallback<number>): void; | 查询所有网卡的上行流量数据,使用callback回调 |
ohos.net.statistics | function getAllTxBytes(): Promise<number>; | 查询所有网卡的上行流量数据,使用Promise回调 |
ohos.net.statistics | function getUidRxBytes(uid: number, callback: AsyncCallback<number>): void; | 查询指定应用的下行流量数据,使用callback回调 |
ohos.net.statistics | function getUidRxBytes(uid: number): Promise<number>; | 查询指定应用的下行流量数据,使用Promise回调 |
ohos.net.statistics | function getUidTxBytes(uid: number, callback: AsyncCallback<number>): void; | 查询指定应用的上行流量数据,使用callback回调 |
ohos.net.statistics | function getUidTxBytes(uid: number): Promise<number>; | 查询指定应用的上行流量数据,使用Promise回调 |
完整的JS API说明以及实例代码请参考:网络管理。
import connection from '@ohos.net.connection'
let connection = connection.createNetConnection()
connection.on('netAvailable', function(data) {
console.log(JSON.stringify(data))
})
connection.register(function (error) {
if (error) {
console.log(JSON.stringify(error))
}
})
import connection from '@ohos.net.connection'
connection.getAllNets((err, data) => {
this.callBack(err, data);
if (data) {
this.netList = data;
}
})
import connection from '@ohos.net.connection'
connection.getConnectionProperties(this.netHandle, (err, data) => {
this.callBack(err, data);
})
import connection from '@ohos.net.connection'
connection.getAddressesByName(this.host, (err, data) => {
this.callBack(err, data);
})
示例
import policy from '@ohos.net.policy'
policy.setBackgroundPolicy(Boolean(Number.parseInt(this.isBoolean)), (err, data) => {
this.callBack(err, data);
})
示例
import policy from '@ohos.net.policy'
policy.getBackgroundPolicy((err, data) => {
this.callBack(err, data);
})
示例
import policy from '@ohos.net.policy'
policy.setPolicyByUid(Number.parseInt(this.firstParam), Number.parseInt(this.currentNetUidPolicy), (err, data) => {
this.callBack(err, data);
})
示例
import policy from '@ohos.net.policy'
policy.setDeviceIdleAllowList(Number.parseInt(this.firstParam), Boolean(Number.parseInt(this.isBoolean)), (err, data) => {
this.callBack(err, data);
})
import statistics from '@ohos.net.statistics'
statistics.getIfaceRxBytes("wlan0").then(function (addresses) {
console.log(JSON.stringify(addresses))
})
import statistics from '@ohos.net.statistics'
statistics.getIfaceTxBytes("wlan0").then(function (addresses) {
console.log(JSON.stringify(addresses))
})
communication_netmanager_base
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。