harmony 鸿蒙@ohos.net.connection (网络连接管理)

2022-08-09 浏览 (1938)

@ohos.net.connection (网络连接管理)

网络连接管理提供管理网络一些基础能力,包括获取默认激活的数据网络、获取所有激活数据网络列表、开启关闭飞行模式、获取网络能力信息等功能。

说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import connection from '@ohos.net.connection'

connection.createNetConnection8+

createNetConnection(netSpecifier?: NetSpecifier, timeout?: number): NetConnection

返回一个NetConnection对象,netSpecifier指定关注的网络的各项特征;timeout是超时时间(单位是毫秒);netSpecifier是timeout的必要条件,两者都没有则表示关注默认网络。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
netSpecifierNetSpecifier指定网络的各项特征,不指定或为undefined时关注默认网络。
timeoutnumber获取netSpecifier指定的网络时的超时时间,仅netSpecifier存在时生效,undefined时默认值为0。

返回值:

类型说明
NetConnection所关注的网络的句柄。

示例:

import connection from '@ohos.net.connection'

// 关注默认网络, 不需要传参
let netConnection = connection.createNetConnection()

// 关注蜂窝网络,需要传入相关网络特征,timeout参数未传入说明未使用超时时间,此时timeout为0
let netConnectionCellular = connection.createNetConnection({
  netCapabilities: {
    bearerTypes: [connection.NetBearType.BEARER_CELLULAR]
  }
})

connection.getDefaultNet8+

getDefaultNet(callback: AsyncCallback<NetHandle>): void

获取默认激活的数据网络,使用callback方式作为异步方法。可以使用getNetCapabilities去获取网络的类型、拥有的能力等信息。

需要权限:ohos.permission.GET_NETWORK_INFO

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
callbackAsyncCallback<NetHandle>回调函数。当成功获取默认激活的数据网络时,error为undefined,data为默认激活的数据网络;否则为错误对象

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from '@ohos.base'

connection.getDefaultNet((error: BusinessError, data: connection.NetHandle) => {
  console.log(JSON.stringify(error))
  console.log(JSON.stringify(data))
})

connection.getDefaultNet8+

getDefaultNet(): Promise<NetHandle>

获取默认激活的数据网络,使用Promise方式作为异步方法。可以使用getNetCapabilities去获取网络的类型、拥有的能力等信息。

需要权限:ohos.permission.GET_NETWORK_INFO

系统能力:SystemCapability.Communication.NetManager.Core

返回值:

类型说明
Promise<NetHandle>以Promise形式返回默认激活的数据网络。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
connection.getDefaultNet().then((data: connection.NetHandle) => {
  console.log(JSON.stringify(data))
})

connection.getDefaultNetSync9+

getDefaultNetSync(): NetHandle

使用同步方法获取默认激活的数据网络。可以使用getNetCapabilities去获取网络的类型、拥有的能力等信息。

需要权限:ohos.permission.GET_NETWORK_INFO

系统能力:SystemCapability.Communication.NetManager.Core

返回值:

类型说明
NetHandle以同步方式返回默认激活的数据网络。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'

let netHandle = connection.getDefaultNetSync();

connection.getGlobalHttpProxy10+

getGlobalHttpProxy(callback: AsyncCallback<HttpProxy>): void

获取网络的全局代理配置信息,使用callback方式作为异步方法。

系统接口:此接口为系统接口。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
callbackAsyncCallback<HttpProxy>回调函数。当成功获取网络的全局代理配置信息时,error为undefined,data为网络的全局代理配置信息;否则为错误对象

错误码:

错误码ID错误信息
401Parameter error.
202Non-system applications use system APIs.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from '@ohos.base'

connection.getGlobalHttpProxy((error: BusinessError, data: connection.HttpProxy) => {
  console.info(JSON.stringify(error));
  console.info(JSON.stringify(data));
})

connection.getGlobalHttpProxy10+

getGlobalHttpProxy(): Promise<HttpProxy>;

获取网络的全局代理配置信息,使用Promise方式作为异步方法。

系统接口:此接口为系统接口。

系统能力:SystemCapability.Communication.NetManager.Core

返回值:

类型说明
Promise<HttpProxy>以Promise形式返回网络的全局代理配置信息。

错误码:

错误码ID错误信息
401Parameter error.
202Non-system applications use system APIs.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from '@ohos.base'

connection.getGlobalHttpProxy().then((data: connection.HttpProxy) => {
  console.info(JSON.stringify(data));
}).catch((error: BusinessError) => {
  console.info(JSON.stringify(error));
})

connection.setGlobalHttpProxy10+

setGlobalHttpProxy(httpProxy: HttpProxy, callback: AsyncCallback<void>): void

设置网络全局Http代理配置信息,使用callback方式作为异步方法。

系统接口:此接口为系统接口。

需要权限:ohos.permission.CONNECTIVITY_INTERNAL

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
httpProxyHttpProxy网络全局Http代理配置信息
callbackAsyncCallback<void>回调函数。当成功设置网络全局Http代理配置信息时,error为undefined,否则为错误对象

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
202Non-system applications use system APIs.
2100001Invalid parameter value.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from '@ohos.base';

let exclusionStr = "192.168,baidu.com"
let exclusionArray = exclusionStr.split(',');
connection.setGlobalHttpProxy({
  host: "192.168.xx.xxx",
  port: 8080,
  exclusionList: exclusionArray
} as connection.HttpProxy).then(() => {
  console.info("success");
}).catch((error: BusinessError) => {
  console.info(JSON.stringify(error));
});

connection.setGlobalHttpProxy10+

setGlobalHttpProxy(httpProxy: HttpProxy): Promise<void>;

设置网络全局Http代理配置信息,使用Promise方式作为异步方法。

系统接口:此接口为系统接口。

需要权限:ohos.permission.CONNECTIVITY_INTERNAL

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
httpProxyHttpProxy网络全局Http代理配置信息。

返回值:

类型说明
Promise<void>无返回值的Promise对象。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
202Non-system applications use system APIs.
2100001Invalid parameter value.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from '@ohos.base';

let exclusionStr = "192.168,baidu.com"
let exclusionArray = exclusionStr.split(',');
connection.setGlobalHttpProxy({
  host: "192.168.xx.xxx",
  port: 8080,
  exclusionList: exclusionArray
} as connection.HttpProxy).then(() => {
  console.info("success");
}).catch((error: BusinessError) => {
  console.info(JSON.stringify(error));
});

connection.getDefaultHttpProxy10+

getDefaultHttpProxy(callback: AsyncCallback<HttpProxy>): void

获取网络默认的代理配置信息。 如果设置了全局代理,则会返回全局代理配置信息。如果进程使用setAppNet绑定到指定NetHandle对应的网络,则返回NetHandle对应网络的代理配置信息。在其它情况下,将返回默认网络的代理配置信息。 使用callback方式作为异步方法。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
callbackAsyncCallback<HttpProxy>回调函数。当成功获取网络默认的代理配置信息时,error为undefined,data为网络默认的代理配置信息;否则为错误对象

错误码:

错误码ID错误信息
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from '@ohos.base'

connection.getDefaultHttpProxy((error: BusinessError, data: connection.HttpProxy) => {
  console.info(JSON.stringify(error));
  console.info(JSON.stringify(data));
})

connection.getDefaultHttpProxy10+

getDefaultHttpProxy(): Promise<HttpProxy>;

获取网络默认的代理配置信息。 如果设置了全局代理,则会返回全局代理配置信息。如果进程使用setAppNet绑定到指定NetHandle对应的网络,则返回NetHandle对应网络的代理配置信息。在其它情况下,将返回默认网络的代理配置信息。 使用Promise方式作为异步方法。

系统能力:SystemCapability.Communication.NetManager.Core

返回值:

类型说明
Promise<HttpProxy>以Promise形式返回网络默认的代理配置信息。

错误码:

错误码ID错误信息
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from '@ohos.base'

connection.getDefaultHttpProxy().then((data: connection.HttpProxy) => {
  console.info(JSON.stringify(data));
}).catch((error: BusinessError) => {
  console.info(JSON.stringify(error));
})

connection.getAppNet9+

getAppNet(callback: AsyncCallback<NetHandle>): void

获取App绑定的网络信息,使用callback方式作为异步方法。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
callbackAsyncCallback<NetHandle>回调函数。当成功获取App绑定的网络信息时,error为undefined,data为获取到App绑定的网络信息;否则为错误对象

错误码:

错误码ID错误信息
401Parameter error.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from '@ohos.base'

connection.getAppNet((error: BusinessError, data: connection.NetHandle) => {
  console.log(JSON.stringify(error))
  console.log(JSON.stringify(data))
})

connection.getAppNet9+

getAppNet(): Promise<NetHandle>;

获取App绑定的网络信息,使用Promise方式作为异步方法。

系统能力:SystemCapability.Communication.NetManager.Core

返回值:

类型说明
Promise<NetHandle>以Promise形式返回App绑定的网络信息。

错误码:

错误码ID错误信息
401Parameter error.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from '@ohos.base'

connection.getAppNet().then((data: connection.NetHandle) => {
  console.info(JSON.stringify(data));
}).catch((error: BusinessError) => {
  console.info(JSON.stringify(error));
})

connection.getAppNetSync10+

getAppNetSync(): NetHandle

使用同步方法获取App绑定的网络信息。

系统能力:SystemCapability.Communication.NetManager.Core

返回值:

类型说明
NetHandle返回APP绑定的数据网络。

错误码:

错误码ID错误信息
401Parameter error.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'

let netHandle = connection.getAppNetSync();

connection.SetAppNet9+

setAppNet(netHandle: NetHandle, callback: AsyncCallback<void>): void

绑定App到指定网络,绑定后的App只能通过指定网络访问外网,使用callback方式作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
netHandleNetHandle数据网络的句柄。
callbackAsyncCallback<void>回调函数。当成功绑定App到指定网络时,error为undefined,否则为错误对象

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100001Invalid parameter value.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from '@ohos.base'

connection.getDefaultNet((error: BusinessError, netHandle: connection.NetHandle) => {
  connection.setAppNet(netHandle, (error: BusinessError, data: void) => {
    console.log(JSON.stringify(error))
    console.log(JSON.stringify(data))
  });
})

connection.SetAppNet9+

setAppNet(netHandle: NetHandle): Promise<void>;

绑定App到指定网络,绑定后的App只能通过指定网络访问外网,使用Promise方式作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
netHandleNetHandle数据网络的句柄。

返回值:

类型说明
Promise<void>无返回值的Promise对象。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100001Invalid parameter value.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from '@ohos.base'

connection.getDefaultNet().then((netHandle: connection.NetHandle) => {
  connection.setAppNet(netHandle).then(() => {
    console.log("success")
  }).catch((error: BusinessError) => {
    console.log(JSON.stringify(error))
  })
})

connection.getAllNets8+

getAllNets(callback: AsyncCallback<Array<NetHandle>>): void

获取所有处于连接状态的网络列表,使用callback方式作为异步方法。

需要权限:ohos.permission.GET_NETWORK_INFO

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
callbackAsyncCallback<Array<NetHandle>>回调函数。当成功获取所有处于连接状态的网络列表时,error为undefined,data为激活的数据网络列表;否则为错误对象

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from '@ohos.base'

connection.getAllNets((error: BusinessError, data: connection.NetHandle[]) => {
  console.log(JSON.stringify(error))
  console.log(JSON.stringify(data))
}); 

connection.getAllNets8+

getAllNets(): Promise<Array<NetHandle>>

获取所有处于连接状态的网络列表,使用Promise方式作为异步方法。

需要权限:ohos.permission.GET_NETWORK_INFO

系统能力:SystemCapability.Communication.NetManager.Core

返回值:

类型说明
Promise<Array<NetHandle>>以Promise形式返回激活的数据网络列表。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'

connection.getAllNets().then((data: connection.NetHandle[]) => {
  console.log(JSON.stringify(data))
});

connection.getAllNetsSync10+

getAllNetsSync(): Array<NetHandle>

使用同步方法获取所有处于连接状态的网络列表。

需要权限:ohos.permission.GET_NETWORK_INFO

系统能力:SystemCapability.Communication.NetManager.Core

返回值:

类型说明
Array<NetHandle>返回激活的数据网络列表。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'

let netHandle = connection.getAllNetsSync();

connection.getConnectionProperties8+

getConnectionProperties(netHandle: NetHandle, callback: AsyncCallback<ConnectionProperties>): void

获取netHandle对应的网络的连接信息,使用callback方式作为异步方法。

需要权限:ohos.permission.GET_NETWORK_INFO

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
netHandleNetHandle数据网络的句柄。
callbackAsyncCallback<ConnectionProperties>回调函数。当成功获取netHandle对应的网络的连接信息时,error为undefined,data为获取的网络连接信息;否则为错误对象

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100001Invalid parameter value.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from '@ohos.base'

connection.getDefaultNet().then((netHandle: connection.NetHandle) => {
  connection.getConnectionProperties(netHandle, (error: BusinessError, data: connection.ConnectionProperties) => {
    console.log(JSON.stringify(error))
    console.log(JSON.stringify(data))
  })
})

connection.getConnectionProperties8+

getConnectionProperties(netHandle: NetHandle): Promise<ConnectionProperties>

获取netHandle对应的网络的连接信息,使用Promise方式作为异步方法。

需要权限:ohos.permission.GET_NETWORK_INFO

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
netHandleNetHandle数据网络的句柄。

返回值:

类型说明
Promise<ConnectionProperties>以Promise形式返回网络的连接信息。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100001Invalid parameter value.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'

connection.getDefaultNet().then((netHandle: connection.NetHandle) => {
  connection.getConnectionProperties(netHandle).then((data: connection.ConnectionProperties) => {
    console.log(JSON.stringify(data))
  })
})

connection.getConnectionPropertiesSync10+

getConnectionPropertiesSync(netHandle: NetHandle): ConnectionProperties

获取netHandle对应的网络的连接信息,使用同步方法返回。

需要权限:ohos.permission.GET_NETWORK_INFO

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
netHandleNetHandle数据网络的句柄。

返回值:

类型说明
ConnectionProperties返回网络的连接信息。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100001Invalid parameter value.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'

let netHandle = connection.getDefaultNetSync();
let connectionproperties = connection.getConnectionPropertiesSync(netHandle);

connection.getNetCapabilities8+

getNetCapabilities(netHandle: NetHandle, callback: AsyncCallback<NetCapabilities>): void

获取netHandle对应的网络的能力信息,使用callback方式作为异步方法。

需要权限:ohos.permission.GET_NETWORK_INFO

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
netHandleNetHandle数据网络的句柄。
callbackAsyncCallback<NetCapabilities>回调函数。当成功获取netHandle对应的网络的能力信息时,error为undefined,data为获取到的网络能力信息;否则为错误对象

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100001Invalid parameter value.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from '@ohos.base'

connection.getDefaultNet().then((netHandle: connection.NetHandle) => {
  connection.getNetCapabilities(netHandle, (error: BusinessError, data: connection.NetCapabilities) => {
    console.log(JSON.stringify(error))
    console.log(JSON.stringify(data))
  })
})

connection.getNetCapabilities8+

getNetCapabilities(netHandle: NetHandle): Promise<NetCapabilities>

获取netHandle对应的网络的能力信息,使用Promise方式作为异步方法。

需要权限:ohos.permission.GET_NETWORK_INFO

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
netHandleNetHandle数据网络的句柄。

返回值:

类型说明
Promise<NetCapabilities>以Promise形式返回网络的能力信息。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100001Invalid parameter value.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'

connection.getDefaultNet().then((netHandle: connection.NetHandle) => {
  connection.getNetCapabilities(netHandle).then((data: connection.NetCapabilities) => {
    console.log(JSON.stringify(data))
  })
})

connection.getNetCapabilitiesSync10+

getNetCapabilitiesSync(netHandle: NetHandle): NetCapabilities

获取netHandle对应的网络的能力信息,使用同步方式返回。

需要权限:ohos.permission.GET_NETWORK_INFO

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
netHandleNetHandle数据网络的句柄。

返回值:

类型说明
NetCapabilities返回网络的能力信息。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100001Invalid parameter value.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'

let netHandle = connection.getDefaultNetSync();
let getNetCapabilitiesSync = connection.getNetCapabilitiesSync(netHandle);

connection.isDefaultNetMetered9+

isDefaultNetMetered(callback: AsyncCallback<boolean>): void

检查当前网络上的数据流量使用是否被计量,使用callback方式作为异步方法。

需要权限:ohos.permission.GET_NETWORK_INFO

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
callbackAsyncCallback<boolean>回调函数。当前网络上的数据流量使用被计量返回true。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from '@ohos.base'

connection.isDefaultNetMetered((error: BusinessError, data: boolean) => {
  console.log(JSON.stringify(error))
  console.log('data: ' + data)
})

connection.isDefaultNetMetered9+

isDefaultNetMetered(): Promise<boolean>

检查当前网络上的数据流量使用是否被计量,使用Promise方式作为异步方法。

需要权限:ohos.permission.GET_NETWORK_INFO

系统能力:SystemCapability.Communication.NetManager.Core

返回值:

类型说明
Promise<boolean>以Promise形式返回,当前网络上的数据流量使用被计量true。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'

connection.isDefaultNetMetered().then((data: boolean) => {
  console.log('data: ' + data)
})

connection.isDefaultNetMeteredSync10+

isDefaultNetMeteredSync(): boolean

检查当前网络上的数据流量使用是否被计量,使用同步方式返回。

需要权限:ohos.permission.GET_NETWORK_INFO

系统能力:SystemCapability.Communication.NetManager.Core

返回值:

类型说明
boolean当前网络上的数据流量使用被计量true。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'

let isMetered = connection.isDefaultNetMeteredSync();

connection.hasDefaultNet8+

hasDefaultNet(callback: AsyncCallback<boolean>): void

检查默认数据网络是否被激活,使用callback方式作为异步方法。如果有默认数据网路,可以使用getDefaultNet去获取。

需要权限:ohos.permission.GET_NETWORK_INFO

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
callbackAsyncCallback<boolean>回调函数。默认数据网络被激活返回true。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from '@ohos.base'

connection.hasDefaultNet((error: BusinessError, data: boolean) => {
  console.log(JSON.stringify(error))
  console.log('data: ' + data)
})

connection.hasDefaultNet8+

hasDefaultNet(): Promise<boolean>

检查默认数据网络是否被激活,使用Promise方式作为异步方法。如果有默认数据网路,可以使用getDefaultNet去获取。

需要权限:ohos.permission.GET_NETWORK_INFO

系统能力:SystemCapability.Communication.NetManager.Core

返回值:

类型说明
Promise<boolean>以Promise形式返回,默认数据网络被激活返回true。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
connection.hasDefaultNet().then((data: boolean) => {
  console.log('data: ' + data)
})

connection.hasDefaultNetSync10+

hasDefaultNetSync(): boolean

检查默认数据网络是否被激活,使用同步方式返回接口,如果被激活则返回true。

需要权限:ohos.permission.GET_NETWORK_INFO

系统能力:SystemCapability.Communication.NetManager.Core

返回值:

类型说明
boolean默认数据网络被激活返回true。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'

let isDefaultNet = connection.hasDefaultNetSync();

connection.enableAirplaneMode8+

enableAirplaneMode(callback: AsyncCallback<void>): void

开启飞行模式,使用callback方式作为异步方法。

系统接口:此接口为系统接口。

需要权限:ohos.permission.CONNECTIVITY_INTERNAL

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
callbackAsyncCallback<void>回调函数。

错误码:

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from '@ohos.base'

connection.enableAirplaneMode((error: BusinessError) => {
  console.log(JSON.stringify(error))
})

connection.enableAirplaneMode8+

enableAirplaneMode(): Promise<void>

开启飞行模式,使用Promise方式作为异步方法。

系统接口:此接口为系统接口。

需要权限:ohos.permission.CONNECTIVITY_INTERNAL

系统能力:SystemCapability.Communication.NetManager.Core

返回值:

类型说明
Promise<void>无返回值的Promise对象。

错误码:

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'

connection.enableAirplaneMode().then((error: void) => {
  console.log(JSON.stringify(error))
})

connection.disableAirplaneMode8+

disableAirplaneMode(callback: AsyncCallback<void>): void

关闭飞行模式,使用callback方式作为异步方法。

系统接口:此接口为系统接口。

需要权限:ohos.permission.CONNECTIVITY_INTERNAL

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
callbackAsyncCallback<void>回调函数。当关闭飞行模式成功,error为undefined,否则为错误对象。

错误码:

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from '@ohos.base'

connection.disableAirplaneMode((error: BusinessError) => {
  console.log(JSON.stringify(error))
})

connection.disableAirplaneMode8+

disableAirplaneMode(): Promise<void>

关闭飞行模式,使用Promise方式作为异步方法。

系统接口:此接口为系统接口。

需要权限:ohos.permission.CONNECTIVITY_INTERNAL

系统能力:SystemCapability.Communication.NetManager.Core

返回值:

类型说明
Promise<void>无返回值的Promise对象。

错误码:

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'

connection.disableAirplaneMode().then((error: void) => {
  console.log(JSON.stringify(error))
})

connection.reportNetConnected8+

reportNetConnected(netHandle: NetHandle, callback: AsyncCallback<void>): void

向网络管理报告网络处于可用状态,使用callback方式作为异步方法。

需要权限:ohos.permission.GET_NETWORK_INFO 和 ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
netHandleNetHandle数据网络的句柄,参考NetHandle
callbackAsyncCallback<void>回调函数。当向网络管理报告网络处于可用状态成功,error为undefined,否则为错误对象。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100001Invalid parameter value.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from '@ohos.base'

connection.getDefaultNet().then((netHandle: connection.NetHandle) => {
  connection.reportNetConnected(netHandle, (error: BusinessError) => {
    console.log(JSON.stringify(error))
  });
});

connection.reportNetConnected8+

reportNetConnected(netHandle: NetHandle): Promise<void>

向网络管理报告网络处于可用状态,使用Promise方式作为异步方法。

需要权限:ohos.permission.GET_NETWORK_INFO 和 ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
netHandleNetHandle数据网络的句柄,参考NetHandle

返回值:

类型说明
Promise<void>无返回值的Promise对象。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100001Invalid parameter value.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
connection.getDefaultNet().then((netHandle: connection.NetHandle) => {
  connection.reportNetConnected(netHandle).then(() => {
    console.log(`report success`)
  });
});

connection.reportNetDisconnected8+

reportNetDisconnected(netHandle: NetHandle, callback: AsyncCallback<void>): void

向网络管理报告网络处于不可用状态,使用callback方式作为异步方法。

需要权限:ohos.permission.GET_NETWORK_INFO 和 ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
netHandleNetHandle数据网络的句柄,参考NetHandle
callbackAsyncCallback<void>回调函数。当向网络管理报告网络处于不可用状态成功,error为undefined,否则为错误对象。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100001Invalid parameter value.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
connection.getDefaultNet().then((netHandle: connection.NetHandle) => {
  connection.reportNetDisconnected(netHandle).then( () => {
    console.log(`report success`)
  });
});

connection.reportNetDisconnected8+

reportNetDisconnected(netHandle: NetHandle): Promise<void>

向网络管理报告网络处于不可用状态,使用Promise方式作为异步方法。

需要权限:ohos.permission.GET_NETWORK_INFO 和 ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
netHandleNetHandle数据网络的句柄,参考NetHandle

返回值:

类型说明
Promise<void>无返回值的Promise对象。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100001Invalid parameter value.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
connection.getDefaultNet().then((netHandle: connection.NetHandle) => {
  connection.reportNetDisconnected(netHandle).then( () => {
    console.log(`report success`)
  });
});

connection.getAddressesByName8+

getAddressesByName(host: string, callback: AsyncCallback<Array<NetAddress>>): void

使用默认网络解析主机名以获取所有IP地址,使用callback方式作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
hoststring需要解析的主机名。
callbackAsyncCallback<Array<NetAddress>>回调函数。当使用默认网络解析主机名成功获取所有IP地址,error为undefined,data为获取到的所有IP地址;否则为错误对象。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100001Invalid parameter value.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from "@ohos.base"
connection.getAddressesByName("xxxx", (error: BusinessError, data: connection.NetAddress[]) => {
  console.log(JSON.stringify(error))
  console.log(JSON.stringify(data))
})

connection.getAddressesByName8+

getAddressesByName(host: string): Promise<Array<NetAddress>>

使用默认网络解析主机名以获取所有IP地址,使用Promise方式作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
hoststring需要解析的主机名。

返回值:

类型说明
Promise<Array<NetAddress>>以Promise形式返回所有IP地址。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100001Invalid parameter value.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
connection.getAddressesByName("xxxx").then((data: connection.NetAddress[]) => {
  console.log(JSON.stringify(data))
})

NetConnection

网络连接的句柄。

说明: 设备从无网络到有网络会触发netAvailable事件、netCapabilitiesChange事件和netConnectionPropertiesChange事件; 设备从有网络到无网络状态会触发netLost事件; 设备从WiFi到蜂窝会触发netLost事件(WiFi丢失)之后触发 netAvaliable事件(蜂窝可用);

register8+

register(callback: AsyncCallback<void>): void

订阅指定网络状态变化的通知。

需要权限:ohos.permission.GET_NETWORK_INFO

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
callbackAsyncCallback<void>回调函数。当订阅指定网络状态变化的通知成功,error为undefined,否则为错误对象。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100002Operation failed. Cannot connect to service.
2100003System internal error.
2101008The same callback exists.
2101022The number of requests exceeded the maximum.

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from "@ohos.base"
let netCon: connection.NetConnection = connection.createNetConnection();
netCon.register((error: BusinessError) => {
  console.log(JSON.stringify(error))
})

unregister8+

unregister(callback: AsyncCallback<void>): void

取消订阅默认网络状态变化的通知。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
callbackAsyncCallback<void>回调函数。当取消订阅指定网络状态变化的通知成功,error为undefined,否则为错误对象。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100002Operation failed. Cannot connect to service.
2100003System internal error.
2101007The callback is not exists.

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from "@ohos.base"
let netCon: connection.NetConnection = connection.createNetConnection();
netCon.unregister((error: BusinessError) => {
  console.log(JSON.stringify(error))
})

on('netAvailable')8+

on(type: 'netAvailable', callback: Callback<NetHandle>): void

订阅网络可用事件。

模型约束:此接口调用之前需要先调用register接口,使用unregister取消订阅默认网络状态变化的通知。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
typestring订阅事件,固定为'netAvailable'。
netAvailable:数据网络可用事件。
callbackCallback<NetHandle>回调函数,返回数据网络句柄。

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from "@ohos.base"

// 创建NetConnection对象
let netCon: connection.NetConnection = connection.createNetConnection();

// 先使用register接口注册订阅事件
netCon.register((error: BusinessError) => {
  console.log(JSON.stringify(error))
})

// 订阅网络可用事件。调用register后,才能接收到此事件通知
netCon.on('netAvailable', (data: connection.NetHandle) => {
  console.log(JSON.stringify(data))
})

// 使用unregister接口取消订阅
netCon.unregister((error: BusinessError) => {
  console.log(JSON.stringify(error))
})

on('netBlockStatusChange')8+

on(type: 'netBlockStatusChange', callback: Callback<{ netHandle: NetHandle, blocked: boolean }>): void

订阅网络阻塞状态事件,使用callback方式作为异步方法。

模型约束:此接口调用之前需要先调用register接口,使用unregister取消订阅默认网络状态变化的通知。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
typestring订阅事件,固定为'netBlockStatusChange'。
netBlockStatusChange:网络阻塞状态事件。
callbackCallback<{ netHandle: NetHandle, blocked: boolean }>回调函数,返回数据网络句柄(netHandle),及网络堵塞状态(blocked)。

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from "@ohos.base"

// 创建NetConnection对象
let netCon: connection.NetConnection = connection.createNetConnection();

// 先使用register接口注册订阅事件
netCon.register((error: BusinessError) => {
  console.log(JSON.stringify(error))
})

// 订阅网络可用事件。调用register后,才能接收到此事件通知
netCon.on('netBlockStatusChange', (data: connection.NetHandle) => {
  console.log(JSON.stringify(data))
})

// 使用unregister接口取消订阅
netCon.unregister((error: BusinessError) => {
  console.log(JSON.stringify(error))
})

on('netCapabilitiesChange')8+

on(type: 'netCapabilitiesChange', callback: Callback<NetCapabilityInfo>): void

订阅网络能力变化事件。

模型约束:此接口调用之前需要先调用register接口,使用unregister取消订阅默认网络状态变化的通知。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
typestring订阅事件,固定为'netCapabilitiesChange'。
netCapabilitiesChange:网络能力变化事件。
callbackCallback<NetCapabilityInfo>回调函数,返回数据网络句柄(netHandle)和网络的能力信息(netCap)。

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from "@ohos.base"

// 创建NetConnection对象
let netCon: connection.NetConnection = connection.createNetConnection();

// 先使用register接口注册订阅事件
netCon.register((error: BusinessError) => {
  console.log(JSON.stringify(error))
})

// 订阅网络可用事件。调用register后,才能接收到此事件通知
netCon.on('netAvailable', (data: connection.NetHandle) => {
  console.log(JSON.stringify(data))
})

// 使用unregister接口取消订阅
netCon.unregister((error: BusinessError) => {
  console.log(JSON.stringify(error))
})

on('netConnectionPropertiesChange')8+

on(type: 'netConnectionPropertiesChange', callback: Callback<{ netHandle: NetHandle, connectionProperties: ConnectionProperties }>): void

订阅网络连接信息变化事件。

模型约束:此接口调用之前需要先调用register接口,使用unregister取消订阅默认网络状态变化的通知。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
typestring订阅事件,固定为'netConnectionPropertiesChange'。
netConnectionPropertiesChange:网络连接信息变化事件。
callbackCallback<{ netHandle: NetHandle, connectionProperties: ConnectionProperties }>回调函数,返回数据网络句柄(netHandle)和网络的连接信息(connectionProperties)

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from "@ohos.base"

// 创建NetConnection对象
let netCon: connection.NetConnection = connection.createNetConnection();

// 先使用register接口注册订阅事件
netCon.register((error: BusinessError) => {
  console.log(JSON.stringify(error))
})

// 订阅网络可用事件。调用register后,才能接收到此事件通知
netCon.on('netConnectionPropertiesChange', (data: connection.NetHandle) => {
  console.log(JSON.stringify(data))
})

// 使用unregister接口取消订阅
netCon.unregister((error: BusinessError) => {
  console.log(JSON.stringify(error))
})

on('netLost')8+

on(type: 'netLost', callback: Callback<NetHandle>): void

订阅网络丢失事件。

模型约束:此接口调用之前需要先调用register接口,使用unregister取消订阅默认网络状态变化的通知。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
typestring订阅事件,固定为'netLost'。
netLost:网络严重中断或正常断开事件。
callbackCallback<NetHandle>回调函数,数据网络句柄(netHandle)

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from "@ohos.base"

// 创建NetConnection对象
let netCon: connection.NetConnection = connection.createNetConnection();

// 先使用register接口注册订阅事件
netCon.register((error: BusinessError) => {
  console.log(JSON.stringify(error))
})

// 订阅网络可用事件。调用register后,才能接收到此事件通知
netCon.on('netLost', (data: connection.NetHandle) => {
  console.log(JSON.stringify(data))
})

// 使用unregister接口取消订阅
netCon.unregister((error: BusinessError) => {
  console.log(JSON.stringify(error))
})

on('netUnavailable')8+

on(type: 'netUnavailable', callback: Callback<void>): void

订阅网络不可用事件。

模型约束:此接口调用之前需要先调用register接口,使用unregister取消订阅默认网络状态变化的通知。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
typestring订阅事件,固定为'netUnavailable'。
netUnavailable:网络不可用事件。
callbackCallback<void>回调函数,无返回结果。

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from "@ohos.base"

// 创建NetConnection对象
let netCon: connection.NetConnection = connection.createNetConnection();

// 先使用register接口注册订阅事件
netCon.register((error: BusinessError) => {
  console.log(JSON.stringify(error))
})

// 订阅网络可用事件。调用register后,才能接收到此事件通知
netCon.on('netAvailable', (data: connection.NetHandle) => {
  console.log(JSON.stringify(data))
})

// 使用unregister接口取消订阅
netCon.unregister((error: BusinessError) => {
  console.log(JSON.stringify(error))
})

NetHandle8+

数据网络的句柄。

在调用NetHandle的方法之前,需要先获取NetHandle对象。

系统能力:SystemCapability.Communication.NetManager.Core

属性

名称类型必填说明
netIdnumber网络ID,取值为0代表没有默认网络,其余取值必须大于等于100。

bindSocket9+

bindSocket(socketParam: TCPSocket |UDPSocket, callback: AsyncCallback<void>): void

将TCPSocket或UDPSocket绑定到当前网络,使用callback方式作为异步方法。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
socketParamTCPSocket |UDPSocket待绑定的TCPSocket或UDPSocket对象。
callbackAsyncCallback<void>回调函数。当TCPSocket或UDPSocket成功绑定到当前网络,error为undefined,否则为错误对象。

错误码:

错误码ID错误信息
401Parameter error.
2100001Invalid parameter value.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import socket from "@ohos.net.socket";
import connection from '@ohos.net.connection';
import { BusinessError } from '@ohos.base';

interface Data {
  message: ArrayBuffer,
  remoteInfo: socket.SocketRemoteInfo
}

connection.getDefaultNet().then((netHandle: connection.NetHandle) => {
  let tcp = socket.constructTCPSocketInstance();
  let udp = socket.constructUDPSocketInstance();
  let socketType = "TCPSocket";
  if (socketType == "TCPSocket") {
    tcp.bind({address:"192.168.xxx.xxx",
              port:8080,
              family:1} as socket.NetAddress, (error: Error) => {
      if (error) {
        console.log('bind fail');
        return;
      }
      netHandle.bindSocket(tcp, (error: BusinessError, data: void) => {
        if (error) {
          console.log(JSON.stringify(error));
        } else {
          console.log(JSON.stringify(data));
        }
      })
    })
  } else {
    let callback: (value: Data) => void = (value: Data) => {
      console.log("on message, message:" + value.message + ", remoteInfo:" + value.remoteInfo);
    }
    udp.bind({address:"192.168.xxx.xxx",
              port:8080,
              family:1} as socket.NetAddress, (error: BusinessError) => {
      if (error) {
        console.log('bind fail');
        return;
      }
      udp.on('message', (data: Data) => {
        console.log(JSON.stringify(data))
      });
      netHandle.bindSocket(udp, (error: BusinessError, data: void) => {
        if (error) {
          console.log(JSON.stringify(error));
        } else {
          console.log(JSON.stringify(data));
        }
      })
    })
  }
})

bindSocket9+

bindSocket(socketParam: TCPSocket |UDPSocket): Promise<void>;

将TCPSocket或UDPSockett绑定到当前网络,使用Promise方式作为异步方法。

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
socketParamTCPSocket |UDPSocket待绑定的TCPSocket或UDPSocket对象。

返回值:

类型说明
Promise<void>无返回值的Promise对象。

错误码:

错误码ID错误信息
401Parameter error.
2100001Invalid parameter value.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import socket from "@ohos.net.socket";
import connection from '@ohos.net.connection';
import { BusinessError } from '@ohos.base';
interface Data {
  message: ArrayBuffer,
  remoteInfo: socket.SocketRemoteInfo
}

connection.getDefaultNet().then((netHandle: connection.NetHandle) => {
  let tcp = socket.constructTCPSocketInstance();
  let udp = socket.constructUDPSocketInstance();
  let socketType = "TCPSocket";
  if (socketType == "TCPSocket") {
    tcp.bind({address:"192.168.xxx.xxx",
              port:8080,
              family:1} as socket.NetAddress, (error: Error) => {
      if (error) {
        console.log('bind fail');
        return;
      }
      netHandle.bindSocket(tcp, (error: BusinessError, data: void) => {
        if (error) {
          console.log(JSON.stringify(error));
        } else {
          console.log(JSON.stringify(data));
        }
      })
    })
  } else {
    let callback: (value: Data) => void = (value: Data) => {
      console.log("on message, message:" + value.message + ", remoteInfo:" + value.remoteInfo);
    }
    udp.bind({address:"192.168.xxx.xxx",
              port:8080,
              family:1} as socket.NetAddress, (error: BusinessError) => {
    if (error) {
      console.log('bind fail');
      return;
    }
    udp.on('message', (data: Data) => {
      console.log(JSON.stringify(data))
    });
    netHandle.bindSocket(udp, (error: BusinessError, data: void) => {
      if (error) {
        console.log(JSON.stringify(error));
      } else {
        console.log(JSON.stringify(data));
      }
    })
  })
}
})

getAddressesByName8+

getAddressesByName(host: string, callback: AsyncCallback<Array<NetAddress>>): void

使用对应网络解析主机名以获取所有IP地址,使用callback方式作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
hoststring需要解析的主机名。
callbackAsyncCallback<Array<NetAddress>>回调函数。当使用对应网络解析主机名成功获取所有IP地址,error为undefined,data为获取到的所有IP地址;否则为错误对象。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100001Invalid parameter value.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from "@ohos.base"

connection.getDefaultNet().then((netHandle: connection.NetHandle) => {
  let host = "xxxx";
  netHandle.getAddressesByName(host, (error: BusinessError, data: connection.NetAddress[]) => {
    console.log(JSON.stringify(error))
    console.log(JSON.stringify(data))
  })
})

getAddressesByName8+

getAddressesByName(host: string): Promise<Array<NetAddress>>

使用对应网络解析主机名以获取所有IP地址,使用Promise方式作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
hoststring需要解析的主机名。

返回值:

类型说明
Promise<Array<NetAddress>>以Promise形式返回所有IP地址。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100001Invalid parameter value.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'

connection.getDefaultNet().then((netHandle: connection.NetHandle) => {
  let host = "xxxx";
  netHandle.getAddressesByName(host).then((data: connection.NetAddress[]) => {
    console.log(JSON.stringify(data))
  })
})

getAddressByName8+

getAddressByName(host: string, callback: AsyncCallback<NetAddress>): void

使用对应网络解析主机名以获取第一个IP地址,使用callback方式作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
hoststring需要解析的主机名。
callbackAsyncCallback<NetAddress>回调函数。当使用对应网络解析主机名获取第一个IP地址成功,error为undefined,data为获取的第一个IP地址;否则为错误对象。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100001Invalid parameter value.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'
import { BusinessError } from "@ohos.base"

connection.getDefaultNet().then((netHandle: connection.NetHandle) => {
  let host = "xxxx";
  netHandle.getAddressByName(host, (error: BusinessError, data: connection.NetAddress) => {
    console.log(JSON.stringify(error))
    console.log(JSON.stringify(data))
  })
}) 

getAddressByName8+

getAddressByName(host: string): Promise<NetAddress>

使用对应网络解析主机名以获取第一个IP地址,使用Promise方式作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetManager.Core

参数:

参数名类型必填说明
hoststring需要解析的主机名。

返回值:

类型说明
Promise<NetAddress>以Promise形式返回第一个IP地址。

错误码:

错误码ID错误信息
201Permission denied.
401Parameter error.
2100001Invalid parameter value.
2100002Operation failed. Cannot connect to service.
2100003System internal error.

示例:

import connection from '@ohos.net.connection'

connection.getDefaultNet().then((netHandle: connection.NetHandle) => {
  let host = "xxxx";
  netHandle.getAddressByName(host).then((data: connection.NetAddress) => {
    console.log(JSON.stringify(data))
  })
})

NetCap8+

网络具体能力。

系统能力:SystemCapability.Communication.NetManager.Core

名称说明
NET_CAPABILITY_MMS0表示网络可以访问运营商的MMSC(Multimedia Message Service,多媒体短信服务)发送和接收彩信。
NET_CAPABILITY_NOT_METERED11表示网络流量未被计费。
NET_CAPABILITY_INTERNET12表示该网络应具有访问Internet的能力,该能力由网络提供者设置。
NET_CAPABILITY_NOT_VPN15表示网络不使用VPN(Virtual Private Network,虚拟专用网络)。
NET_CAPABILITY_VALIDATED16表示该网络访问Internet的能力被网络管理成功验证,该能力由网络管理模块设置。

NetBearType8+

网络类型。

系统能力:SystemCapability.Communication.NetManager.Core

名称说明
BEARER_CELLULAR0蜂窝网络。
BEARER_WIFI1Wi-Fi网络。
BEARER_ETHERNET3以太网网络。

HttpProxy10+

网络代理配置信息

系统能力:SystemCapability.Communication.NetManager.Core

名称类型必填说明
hoststring代理服务器主机名。
portnumber主机端口。
exclusionListArray不使用代理的主机名列表,主机名支持域名、IP地址以及通配符形式,详细匹配规则如下:
1、域名匹配规则:
(1)完全匹配:代理服务器主机名只要与列表中的任意一个主机名完全相同,就可以匹配。
(2)包含匹配:代理服务器主机名只要包含列表中的任意一个主机名,就可以匹配。
例如,如果在主机名列表中设置了 “ample.com”,则 “ample.com”、“www.ample.com”、“ample.com:80”都会被匹配,而 “www.example.com”、“ample.com.org”则不会被匹配。
2、IP地址匹配规则:代理服务器主机名只要与列表中的任意一个IP地址完全相同,就可以匹配。
3、域名跟IP地址可以同时添加到列表中进行匹配。
4、单个“*”是唯一有效的通配符,当列表中只有通配符时,将与所有代理服务器主机名匹配,表示禁用代理。通配符只能单独添加,不可以与其他域名、IP地址一起添加到列表中,否则通配符将不生效。
5、匹配规则不区分主机名大小写。
6、匹配主机名时,不考虑http和https等协议前缀。

NetSpecifier8+

提供承载数据网络能力的实例。

系统能力:SystemCapability.Communication.NetManager.Core

名称类型必填说明
netCapabilitiesNetCapabilities存储数据网络的传输能力和承载类型。
bearerPrivateIdentifierstring网络标识符,Wi-Fi网络的标识符是"wifi",蜂窝网络的标识符是"slot0"(对应SIM卡1)。

NetCapabilityInfo10+

提供承载数据网络能力的实例。

系统能力:SystemCapability.Communication.NetManager.Core

名称类型必填说明
netHandleNetHandle数据网络句柄。
netCapNetCapabilities存储数据网络的传输能力和承载类型。

NetCapabilities8+

网络的能力集。

系统能力:SystemCapability.Communication.NetManager.Core

名称类型必填说明
linkUpBandwidthKbpsnumber上行(设备到网络)带宽,0表示无法评估当前网络带宽。
linkDownBandwidthKbpsnumber下行(网络到设备)带宽,0表示无法评估当前网络带宽。
networkCapArray<NetCap>网络具体能力。
bearerTypesArray<NetBearType>网络类型。

ConnectionProperties8+

网络连接信息。

系统能力:SystemCapability.Communication.NetManager.Core

名称类型必填说明
interfaceNamestring网卡名称。
domainsstring所属域,默认""。
linkAddressesArray<LinkAddress>链路信息。
routesArray<RouteInfo>路由信息。
dnsesArray<NetAddress>网络地址,参考NetAddress
mtunumber最大传输单元。

RouteInfo8+

网络路由信息。

系统能力:SystemCapability.Communication.NetManager.Core

名称类型必填说明
interfacestring网卡名称。
destinationLinkAddress目的地址。
gatewayNetAddress网关地址。
hasGatewayboolean是否有网关。
isDefaultRouteboolean是否为默认路由。

LinkAddress8+

网络链路信息。

系统能力:SystemCapability.Communication.NetManager.Core

名称类型必填说明
addressNetAddress链路地址。
prefixLengthnumber链路地址前缀的长度。

NetAddress8+

网络地址。

系统能力:SystemCapability.Communication.NetManager.Core

名称类型必填说明
addressstring地址。
familynumberIPv4 = 1,IPv6 = 2,默认IPv4。
portnumber端口,取值范围[0, 65535]。

你可能感兴趣的鸿蒙文章

harmony 鸿蒙接口

harmony 鸿蒙系统公共事件定义(待停用)

harmony 鸿蒙系统公共事件定义

harmony 鸿蒙开发说明

harmony 鸿蒙企业设备管理概述(仅对系统应用开放)

harmony 鸿蒙BundleStatusCallback

harmony 鸿蒙@ohos.bundle.innerBundleManager (innerBundleManager模块)

harmony 鸿蒙@ohos.distributedBundle (分布式包管理)

harmony 鸿蒙@ohos.bundle (Bundle模块)

harmony 鸿蒙@ohos.enterprise.EnterpriseAdminExtensionAbility (企业设备管理扩展能力)

  • 所属分类: 后端技术
  • 本文标签: 鸿蒙 软件
  • 版权声明: 本文链接 https://seaxiang.com/blog/e219febe39b74186a73b52dc7feb2e56