1e41f4b71Sopenharmony_ci# @ohos.net.connection (网络连接管理) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci网络连接管理提供管理网络一些基础能力,包括获取默认激活的数据网络、获取所有激活数据网络列表、开启关闭飞行模式、获取网络能力信息等功能。 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ci> **说明:** 6e41f4b71Sopenharmony_ci> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 7e41f4b71Sopenharmony_ci 8e41f4b71Sopenharmony_ci## 导入模块 9e41f4b71Sopenharmony_ci 10e41f4b71Sopenharmony_ci```ts 11e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 12e41f4b71Sopenharmony_ci``` 13e41f4b71Sopenharmony_ci 14e41f4b71Sopenharmony_ci## connection.createNetConnection 15e41f4b71Sopenharmony_ci 16e41f4b71Sopenharmony_cicreateNetConnection(netSpecifier?: NetSpecifier, timeout?: number): NetConnection 17e41f4b71Sopenharmony_ci 18e41f4b71Sopenharmony_ci创建一个NetConnection对象,[netSpecifier](#netspecifier)指定关注的网络的各项特征;timeout是超时时间(单位是毫秒);netSpecifier是timeout的必要条件,两者都没有则表示关注默认网络。 19e41f4b71Sopenharmony_ci 20e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 21e41f4b71Sopenharmony_ci 22e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 23e41f4b71Sopenharmony_ci 24e41f4b71Sopenharmony_ci**参数:** 25e41f4b71Sopenharmony_ci 26e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 27e41f4b71Sopenharmony_ci| ------------ | ----------------------------- | ---- | ------------------------------------------------------------ | 28e41f4b71Sopenharmony_ci| netSpecifier | [NetSpecifier](#netspecifier) | 否 | 指定网络的各项特征,不指定或为undefined时关注默认网络。 | 29e41f4b71Sopenharmony_ci| timeout | number | 否 | 获取netSpecifier指定的网络时的超时时间,仅netSpecifier存在时生效,undefined时默认值为0。 | 30e41f4b71Sopenharmony_ci 31e41f4b71Sopenharmony_ci**返回值:** 32e41f4b71Sopenharmony_ci 33e41f4b71Sopenharmony_ci| 类型 | 说明 | 34e41f4b71Sopenharmony_ci| ------------------------------- | -------------------- | 35e41f4b71Sopenharmony_ci| [NetConnection](#netconnection) | 所关注的网络的句柄。 | 36e41f4b71Sopenharmony_ci 37e41f4b71Sopenharmony_ci**示例:** 38e41f4b71Sopenharmony_ci 39e41f4b71Sopenharmony_ci```ts 40e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 41e41f4b71Sopenharmony_ci 42e41f4b71Sopenharmony_ci// 关注默认网络, 不需要传参 43e41f4b71Sopenharmony_cilet netConnection = connection.createNetConnection(); 44e41f4b71Sopenharmony_ci 45e41f4b71Sopenharmony_ci// 关注蜂窝网络,需要传入相关网络特征,timeout参数未传入说明未使用超时时间,此时timeout为0 46e41f4b71Sopenharmony_cilet netConnectionCellular = connection.createNetConnection({ 47e41f4b71Sopenharmony_ci netCapabilities: { 48e41f4b71Sopenharmony_ci bearerTypes: [connection.NetBearType.BEARER_CELLULAR] 49e41f4b71Sopenharmony_ci } 50e41f4b71Sopenharmony_ci}); 51e41f4b71Sopenharmony_ci``` 52e41f4b71Sopenharmony_ci 53e41f4b71Sopenharmony_ci## connection.getDefaultNet 54e41f4b71Sopenharmony_ci 55e41f4b71Sopenharmony_cigetDefaultNet(callback: AsyncCallback\<NetHandle>): void 56e41f4b71Sopenharmony_ci 57e41f4b71Sopenharmony_ci获取默认激活的数据网络,使用callback方式作为异步方法。可以使用[getNetCapabilities](#connectiongetnetcapabilities)去获取网络的类型、拥有的能力等信息。 58e41f4b71Sopenharmony_ci 59e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.GET_NETWORK_INFO 60e41f4b71Sopenharmony_ci 61e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 62e41f4b71Sopenharmony_ci 63e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 64e41f4b71Sopenharmony_ci 65e41f4b71Sopenharmony_ci**参数:** 66e41f4b71Sopenharmony_ci 67e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 68e41f4b71Sopenharmony_ci| -------- | --------------------------------------- | ---- | ------------------------------------------------------------ | 69e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[NetHandle](#nethandle)> | 是 | 回调函数。当成功获取默认激活的数据网络时,error为undefined,data为默认激活的数据网络;否则为错误对象。 | 70e41f4b71Sopenharmony_ci 71e41f4b71Sopenharmony_ci**错误码:** 72e41f4b71Sopenharmony_ci 73e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 74e41f4b71Sopenharmony_ci 75e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 76e41f4b71Sopenharmony_ci| ------- | ----------------------------- | 77e41f4b71Sopenharmony_ci| 201 | Permission denied. | 78e41f4b71Sopenharmony_ci| 401 | Parameter error. | 79e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 80e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 81e41f4b71Sopenharmony_ci 82e41f4b71Sopenharmony_ci**示例:** 83e41f4b71Sopenharmony_ci 84e41f4b71Sopenharmony_ci```ts 85e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 86e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 87e41f4b71Sopenharmony_ci 88e41f4b71Sopenharmony_ciconnection.getDefaultNet((error: BusinessError, data: connection.NetHandle) => { 89e41f4b71Sopenharmony_ci if (error) { 90e41f4b71Sopenharmony_ci console.error(`Failed to get default net. Code:${error.code}, message:${error.message}`); 91e41f4b71Sopenharmony_ci return; 92e41f4b71Sopenharmony_ci } 93e41f4b71Sopenharmony_ci console.info("Succeeded to get data " + JSON.stringify(data)); 94e41f4b71Sopenharmony_ci}); 95e41f4b71Sopenharmony_ci``` 96e41f4b71Sopenharmony_ci 97e41f4b71Sopenharmony_ci## connection.getDefaultNet 98e41f4b71Sopenharmony_ci 99e41f4b71Sopenharmony_cigetDefaultNet(): Promise\<NetHandle> 100e41f4b71Sopenharmony_ci 101e41f4b71Sopenharmony_ci获取默认激活的数据网络,使用Promise方式作为异步方法。可以使用[getNetCapabilities](#connectiongetnetcapabilities)去获取网络的类型、拥有的能力等信息。 102e41f4b71Sopenharmony_ci 103e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.GET_NETWORK_INFO 104e41f4b71Sopenharmony_ci 105e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 106e41f4b71Sopenharmony_ci 107e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 108e41f4b71Sopenharmony_ci 109e41f4b71Sopenharmony_ci**返回值:** 110e41f4b71Sopenharmony_ci 111e41f4b71Sopenharmony_ci| 类型 | 说明 | 112e41f4b71Sopenharmony_ci| --------------------------------- | ------------------------------------- | 113e41f4b71Sopenharmony_ci| Promise\<[NetHandle](#nethandle)> | 以Promise形式返回默认激活的数据网络。 | 114e41f4b71Sopenharmony_ci 115e41f4b71Sopenharmony_ci**错误码:** 116e41f4b71Sopenharmony_ci 117e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 118e41f4b71Sopenharmony_ci 119e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 120e41f4b71Sopenharmony_ci| ------- | -------------------------------- | 121e41f4b71Sopenharmony_ci| 201 | Permission denied. | 122e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service.| 123e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 124e41f4b71Sopenharmony_ci 125e41f4b71Sopenharmony_ci**示例:** 126e41f4b71Sopenharmony_ci 127e41f4b71Sopenharmony_ci```ts 128e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 129e41f4b71Sopenharmony_ci 130e41f4b71Sopenharmony_ciconnection.getDefaultNet().then((data: connection.NetHandle) => { 131e41f4b71Sopenharmony_ci console.info("Succeeded to get data: " + JSON.stringify(data)); 132e41f4b71Sopenharmony_ci}); 133e41f4b71Sopenharmony_ci``` 134e41f4b71Sopenharmony_ci 135e41f4b71Sopenharmony_ci## connection.getDefaultNetSync<sup>9+</sup> 136e41f4b71Sopenharmony_ci 137e41f4b71Sopenharmony_cigetDefaultNetSync(): NetHandle 138e41f4b71Sopenharmony_ci 139e41f4b71Sopenharmony_ci使用同步方法获取默认激活的数据网络。可以使用[getNetCapabilities](#connectiongetnetcapabilities)去获取网络的类型、拥有的能力等信息。 140e41f4b71Sopenharmony_ci 141e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.GET_NETWORK_INFO 142e41f4b71Sopenharmony_ci 143e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 144e41f4b71Sopenharmony_ci 145e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 146e41f4b71Sopenharmony_ci 147e41f4b71Sopenharmony_ci**返回值:** 148e41f4b71Sopenharmony_ci 149e41f4b71Sopenharmony_ci| 类型 | 说明 | 150e41f4b71Sopenharmony_ci| --------- | ---------------------------------- | 151e41f4b71Sopenharmony_ci| [NetHandle](#nethandle) | 以同步方式返回默认激活的数据网络。 | 152e41f4b71Sopenharmony_ci 153e41f4b71Sopenharmony_ci**错误码:** 154e41f4b71Sopenharmony_ci 155e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 156e41f4b71Sopenharmony_ci 157e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 158e41f4b71Sopenharmony_ci| ------- | -------------------------------- | 159e41f4b71Sopenharmony_ci| 201 | Permission denied. | 160e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service.| 161e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 162e41f4b71Sopenharmony_ci 163e41f4b71Sopenharmony_ci**示例:** 164e41f4b71Sopenharmony_ci 165e41f4b71Sopenharmony_ci```ts 166e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 167e41f4b71Sopenharmony_ci 168e41f4b71Sopenharmony_cilet netHandle = connection.getDefaultNetSync(); 169e41f4b71Sopenharmony_ci``` 170e41f4b71Sopenharmony_ci 171e41f4b71Sopenharmony_ci 172e41f4b71Sopenharmony_ci## connection.setAppHttpProxy<sup>11+</sup> 173e41f4b71Sopenharmony_ci 174e41f4b71Sopenharmony_cisetAppHttpProxy(httpProxy: HttpProxy): void 175e41f4b71Sopenharmony_ci 176e41f4b71Sopenharmony_ci设置网络应用级Http代理配置信息。 177e41f4b71Sopenharmony_ci 178e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 179e41f4b71Sopenharmony_ci 180e41f4b71Sopenharmony_ci**参数:** 181e41f4b71Sopenharmony_ci 182e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 183e41f4b71Sopenharmony_ci| --------- | ------------------------------------------------------------ | ---- | ---------------- | 184e41f4b71Sopenharmony_ci| httpProxy | [HttpProxy](#httpproxy10) | 是 | 网络应用级Http代理配置信息。 | 185e41f4b71Sopenharmony_ci 186e41f4b71Sopenharmony_ci**错误码:** 187e41f4b71Sopenharmony_ci 188e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 189e41f4b71Sopenharmony_ci 190e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 191e41f4b71Sopenharmony_ci| ------- | ----------------------------- | 192e41f4b71Sopenharmony_ci| 401 | Parameter error. | 193e41f4b71Sopenharmony_ci| 2100001 | Invalid http proxy. | 194e41f4b71Sopenharmony_ci 195e41f4b71Sopenharmony_ci**示例:** 196e41f4b71Sopenharmony_ci 197e41f4b71Sopenharmony_ci```ts 198e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 199e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 200e41f4b71Sopenharmony_ci 201e41f4b71Sopenharmony_cilet exclusionStr = "192.168,baidu.com"; 202e41f4b71Sopenharmony_cilet exclusionArray = exclusionStr.split(','); 203e41f4b71Sopenharmony_ciconnection.setAppHttpProxy({ 204e41f4b71Sopenharmony_ci host: "192.168.xx.xxx", 205e41f4b71Sopenharmony_ci port: 8080, 206e41f4b71Sopenharmony_ci exclusionList: exclusionArray 207e41f4b71Sopenharmony_ci} as connection.HttpProxy); 208e41f4b71Sopenharmony_ci``` 209e41f4b71Sopenharmony_ci 210e41f4b71Sopenharmony_ci**预置锁定证书PIN:** 211e41f4b71Sopenharmony_ci 212e41f4b71Sopenharmony_ci证书PIN是对证书文件用sha256算法计算出的hash值。 213e41f4b71Sopenharmony_ci对于证书server.pem, 可以用如下openssl命令计算它的PIN: 214e41f4b71Sopenharmony_ci 215e41f4b71Sopenharmony_ci```shell 216e41f4b71Sopenharmony_cicat server.pem \ 217e41f4b71Sopenharmony_ci| sed -n '/-----BEGIN/,/-----END/p' \ 218e41f4b71Sopenharmony_ci| openssl x509 -noout -pubkey \ 219e41f4b71Sopenharmony_ci| openssl pkey -pubin -outform der \ 220e41f4b71Sopenharmony_ci| openssl dgst -sha256 -binary \ 221e41f4b71Sopenharmony_ci| openssl enc -base64 222e41f4b71Sopenharmony_ci``` 223e41f4b71Sopenharmony_ci 224e41f4b71Sopenharmony_ci**预置应用级证书:** 225e41f4b71Sopenharmony_ci 226e41f4b71Sopenharmony_ci直接把证书原文件预置在APP中。目前支持crt和pem格式的证书文件。 227e41f4b71Sopenharmony_ci 228e41f4b71Sopenharmony_ci**注意:** 229e41f4b71Sopenharmony_ci 230e41f4b71Sopenharmony_ci当前ohos.net.http和Image组件的证书锁定,会匹配证书链上所有证书的哈希值,如果服务器更新了任意一本证书,都会导致校验失败。如果服务器出现了更新证书的情况,APP版本应当随之更新并推荐消费者尽快升级APP版本,否则可能导致联网失败。 231e41f4b71Sopenharmony_ci 232e41f4b71Sopenharmony_ci**预置JSON配置文件:** 233e41f4b71Sopenharmony_ci 234e41f4b71Sopenharmony_ci预置的证书与网络服务器的对应关系通过JSON配置。 235e41f4b71Sopenharmony_ci配置文件在APP中的路径是:src/main/resources/base/profile/network_config.json 236e41f4b71Sopenharmony_ci 237e41f4b71Sopenharmony_ci**JSON配置文件:** 238e41f4b71Sopenharmony_ci 239e41f4b71Sopenharmony_ci证书锁定的配置例子如下: 240e41f4b71Sopenharmony_ci```json 241e41f4b71Sopenharmony_ci{ 242e41f4b71Sopenharmony_ci "network-security-config": { 243e41f4b71Sopenharmony_ci "domain-config": [ 244e41f4b71Sopenharmony_ci { 245e41f4b71Sopenharmony_ci "domains": [ 246e41f4b71Sopenharmony_ci { 247e41f4b71Sopenharmony_ci "include-subdomains": true, 248e41f4b71Sopenharmony_ci "name": "server.com" 249e41f4b71Sopenharmony_ci } 250e41f4b71Sopenharmony_ci ], 251e41f4b71Sopenharmony_ci "pin-set": { 252e41f4b71Sopenharmony_ci "expiration": "2024-11-08", 253e41f4b71Sopenharmony_ci "pin": [ 254e41f4b71Sopenharmony_ci { 255e41f4b71Sopenharmony_ci "digest-algorithm": "sha256", 256e41f4b71Sopenharmony_ci "digest": "FEDCBA987654321" 257e41f4b71Sopenharmony_ci } 258e41f4b71Sopenharmony_ci ] 259e41f4b71Sopenharmony_ci } 260e41f4b71Sopenharmony_ci } 261e41f4b71Sopenharmony_ci ] 262e41f4b71Sopenharmony_ci } 263e41f4b71Sopenharmony_ci} 264e41f4b71Sopenharmony_ci``` 265e41f4b71Sopenharmony_ci 266e41f4b71Sopenharmony_ci应用级证书的配置例子如下: 267e41f4b71Sopenharmony_ci```json 268e41f4b71Sopenharmony_ci{ 269e41f4b71Sopenharmony_ci "network-security-config": { 270e41f4b71Sopenharmony_ci "base-config": { 271e41f4b71Sopenharmony_ci "trust-anchors": [ 272e41f4b71Sopenharmony_ci { 273e41f4b71Sopenharmony_ci "certificates": "/etc/security/certificates" 274e41f4b71Sopenharmony_ci } 275e41f4b71Sopenharmony_ci ] 276e41f4b71Sopenharmony_ci }, 277e41f4b71Sopenharmony_ci "domain-config": [ 278e41f4b71Sopenharmony_ci { 279e41f4b71Sopenharmony_ci "domains": [ 280e41f4b71Sopenharmony_ci { 281e41f4b71Sopenharmony_ci "include-subdomains": true, 282e41f4b71Sopenharmony_ci "name": "example.com" 283e41f4b71Sopenharmony_ci } 284e41f4b71Sopenharmony_ci ], 285e41f4b71Sopenharmony_ci "trust-anchors": [ 286e41f4b71Sopenharmony_ci { 287e41f4b71Sopenharmony_ci "certificates": "/data/storage/el1/bundle/entry/resources/resfile" 288e41f4b71Sopenharmony_ci } 289e41f4b71Sopenharmony_ci ] 290e41f4b71Sopenharmony_ci } 291e41f4b71Sopenharmony_ci ] 292e41f4b71Sopenharmony_ci } 293e41f4b71Sopenharmony_ci} 294e41f4b71Sopenharmony_ci 295e41f4b71Sopenharmony_ci``` 296e41f4b71Sopenharmony_ci 297e41f4b71Sopenharmony_ci**各个字段含义:** 298e41f4b71Sopenharmony_ci 299e41f4b71Sopenharmony_ci**network-security-config(object:网络安全配置)** 300e41f4b71Sopenharmony_ci 301e41f4b71Sopenharmony_ci可包含0或者1个base-config 302e41f4b71Sopenharmony_ci 303e41f4b71Sopenharmony_ci必须包含1个domain-config 304e41f4b71Sopenharmony_ci 305e41f4b71Sopenharmony_ci**base-config(object:指示应用程序范围的安全配置)** 306e41f4b71Sopenharmony_ci 307e41f4b71Sopenharmony_ci必须包含1个trust-anchors 308e41f4b71Sopenharmony_ci 309e41f4b71Sopenharmony_ci**domain-config(array:指示每个域的安全配置)** 310e41f4b71Sopenharmony_ci 311e41f4b71Sopenharmony_ci可以包含任意个item 312e41f4b71Sopenharmony_ci 313e41f4b71Sopenharmony_ciitem必须包含1个domain 314e41f4b71Sopenharmony_ci 315e41f4b71Sopenharmony_ciitem可以包含0或者1个trust-anchors 316e41f4b71Sopenharmony_ci 317e41f4b71Sopenharmony_ciitem可包含0个或者1个pin-set 318e41f4b71Sopenharmony_ci 319e41f4b71Sopenharmony_ci**trust-anchors(array:受信任的CA)** 320e41f4b71Sopenharmony_ci 321e41f4b71Sopenharmony_ci可以包含任意个item 322e41f4b71Sopenharmony_ci 323e41f4b71Sopenharmony_ciitem必须包含1个certificates(string:CA证书路径) 324e41f4b71Sopenharmony_ci 325e41f4b71Sopenharmony_ci**domain(array:域)** 326e41f4b71Sopenharmony_ci 327e41f4b71Sopenharmony_ci可以包含任意个item 328e41f4b71Sopenharmony_ci 329e41f4b71Sopenharmony_ciitem必须包含1个name(string:指示域名) 330e41f4b71Sopenharmony_ci 331e41f4b71Sopenharmony_ciitem可以包含0或者1个include-subdomains(boolean:指示规则是否适用于子域) 332e41f4b71Sopenharmony_ci 333e41f4b71Sopenharmony_ci**pin-set(object:证书PIN设置)** 334e41f4b71Sopenharmony_ci 335e41f4b71Sopenharmony_ci必须包含1个pin 336e41f4b71Sopenharmony_ci 337e41f4b71Sopenharmony_ci可以包含0或者1个expiration(string:指示证书PIN的过期时间) 338e41f4b71Sopenharmony_ci 339e41f4b71Sopenharmony_ci**pin(array:证书PIN)** 340e41f4b71Sopenharmony_ci 341e41f4b71Sopenharmony_ci可以包含任意个item 342e41f4b71Sopenharmony_ci 343e41f4b71Sopenharmony_ciitem必须包含1个digest-algorithm(string:指示用于生成pin的摘要算法) 344e41f4b71Sopenharmony_ci 345e41f4b71Sopenharmony_ciitem必须包含1个digest(string:指示公钥PIN) 346e41f4b71Sopenharmony_ci 347e41f4b71Sopenharmony_ci## connection.getDefaultHttpProxy<sup>10+</sup> 348e41f4b71Sopenharmony_ci 349e41f4b71Sopenharmony_cigetDefaultHttpProxy(callback: AsyncCallback\<HttpProxy>): void 350e41f4b71Sopenharmony_ci 351e41f4b71Sopenharmony_ci获取网络默认的代理配置信息。 352e41f4b71Sopenharmony_ci如果设置了全局代理,则会返回全局代理配置信息。如果进程使用[setAppNet](#connectionsetappnet9)绑定到指定[NetHandle](#nethandle)对应的网络,则返回[NetHandle](#nethandle)对应网络的代理配置信息。在其它情况下,将返回默认网络的代理配置信息。 353e41f4b71Sopenharmony_ci使用callback方式作为异步方法。 354e41f4b71Sopenharmony_ci 355e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 356e41f4b71Sopenharmony_ci 357e41f4b71Sopenharmony_ci**参数:** 358e41f4b71Sopenharmony_ci 359e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 360e41f4b71Sopenharmony_ci| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ | 361e41f4b71Sopenharmony_ci| callback | AsyncCallback<[HttpProxy](#httpproxy10)> | 是 | 回调函数。当成功获取网络默认的代理配置信息时,error为undefined,data为网络默认的代理配置信息;否则为错误对象。 | 362e41f4b71Sopenharmony_ci 363e41f4b71Sopenharmony_ci**错误码:** 364e41f4b71Sopenharmony_ci 365e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 366e41f4b71Sopenharmony_ci 367e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 368e41f4b71Sopenharmony_ci| -------- | -------------------------------------------- | 369e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 370e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 371e41f4b71Sopenharmony_ci 372e41f4b71Sopenharmony_ci**示例:** 373e41f4b71Sopenharmony_ci 374e41f4b71Sopenharmony_ci```ts 375e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 376e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 377e41f4b71Sopenharmony_ci 378e41f4b71Sopenharmony_ciconnection.getDefaultHttpProxy((error: BusinessError, data: connection.HttpProxy) => { 379e41f4b71Sopenharmony_ci if (error) { 380e41f4b71Sopenharmony_ci console.error(`Failed to get default http proxy. Code:${error.code}, message:${error.message}`); 381e41f4b71Sopenharmony_ci return; 382e41f4b71Sopenharmony_ci } 383e41f4b71Sopenharmony_ci console.log("Succeeded to get data" + JSON.stringify(data)); 384e41f4b71Sopenharmony_ci}); 385e41f4b71Sopenharmony_ci``` 386e41f4b71Sopenharmony_ci 387e41f4b71Sopenharmony_ci## connection.getDefaultHttpProxy<sup>10+</sup> 388e41f4b71Sopenharmony_ci 389e41f4b71Sopenharmony_cigetDefaultHttpProxy(): Promise\<HttpProxy> 390e41f4b71Sopenharmony_ci 391e41f4b71Sopenharmony_ci获取网络默认的代理配置信息。 392e41f4b71Sopenharmony_ci如果设置了全局代理,则会返回全局代理配置信息。如果进程使用[setAppNet](#connectionsetappnet9)绑定到指定[NetHandle](#nethandle)对应的网络,则返回[NetHandle](#nethandle)对应网络的代理配置信息。在其它情况下,将返回默认网络的代理配置信息。 393e41f4b71Sopenharmony_ci使用Promise方式作为异步方法。 394e41f4b71Sopenharmony_ci 395e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 396e41f4b71Sopenharmony_ci 397e41f4b71Sopenharmony_ci**返回值:** 398e41f4b71Sopenharmony_ci 399e41f4b71Sopenharmony_ci| 类型 | 说明 | 400e41f4b71Sopenharmony_ci| -------------------------------- | ----------------------------------------- | 401e41f4b71Sopenharmony_ci| Promise<[HttpProxy](#httpproxy10)> | 以Promise形式返回网络默认的代理配置信息。 | 402e41f4b71Sopenharmony_ci 403e41f4b71Sopenharmony_ci**错误码:** 404e41f4b71Sopenharmony_ci 405e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 406e41f4b71Sopenharmony_ci 407e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 408e41f4b71Sopenharmony_ci| -------- | -------------------------------------------- | 409e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 410e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 411e41f4b71Sopenharmony_ci 412e41f4b71Sopenharmony_ci**示例:** 413e41f4b71Sopenharmony_ci 414e41f4b71Sopenharmony_ci```ts 415e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 416e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 417e41f4b71Sopenharmony_ci 418e41f4b71Sopenharmony_ciconnection.getDefaultHttpProxy().then((data: connection.HttpProxy) => { 419e41f4b71Sopenharmony_ci console.info(JSON.stringify(data)); 420e41f4b71Sopenharmony_ci}).catch((error: BusinessError) => { 421e41f4b71Sopenharmony_ci console.info(JSON.stringify(error)); 422e41f4b71Sopenharmony_ci}); 423e41f4b71Sopenharmony_ci``` 424e41f4b71Sopenharmony_ci 425e41f4b71Sopenharmony_ci## connection.getAppNet<sup>9+</sup> 426e41f4b71Sopenharmony_ci 427e41f4b71Sopenharmony_cigetAppNet(callback: AsyncCallback\<NetHandle>): void 428e41f4b71Sopenharmony_ci 429e41f4b71Sopenharmony_ci获取App绑定的网络信息,使用callback方式作为异步方法。 430e41f4b71Sopenharmony_ci 431e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 432e41f4b71Sopenharmony_ci 433e41f4b71Sopenharmony_ci**参数:** 434e41f4b71Sopenharmony_ci 435e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 436e41f4b71Sopenharmony_ci| -------- | --------------------------------------- | ---- | ------------------------------------------------------------ | 437e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[NetHandle](#nethandle)> | 是 | 回调函数。当成功获取App绑定的网络信息时,error为undefined,data为获取到App绑定的网络信息;否则为错误对象。 | 438e41f4b71Sopenharmony_ci 439e41f4b71Sopenharmony_ci**错误码:** 440e41f4b71Sopenharmony_ci 441e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 442e41f4b71Sopenharmony_ci 443e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 444e41f4b71Sopenharmony_ci| ------- | ----------------------------- | 445e41f4b71Sopenharmony_ci| 401 | Parameter error. | 446e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service.| 447e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 448e41f4b71Sopenharmony_ci 449e41f4b71Sopenharmony_ci**示例:** 450e41f4b71Sopenharmony_ci 451e41f4b71Sopenharmony_ci```ts 452e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 453e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 454e41f4b71Sopenharmony_ci 455e41f4b71Sopenharmony_ciconnection.getAppNet((error: BusinessError, data: connection.NetHandle) => { 456e41f4b71Sopenharmony_ci if (error) { 457e41f4b71Sopenharmony_ci console.error(`Failed to get app net. Code:${error.code}, message:${error.message}`); 458e41f4b71Sopenharmony_ci return; 459e41f4b71Sopenharmony_ci } 460e41f4b71Sopenharmony_ci console.info("Succeeded to get data: " + JSON.stringify(data)); 461e41f4b71Sopenharmony_ci}) 462e41f4b71Sopenharmony_ci``` 463e41f4b71Sopenharmony_ci 464e41f4b71Sopenharmony_ci## connection.getAppNet<sup>9+</sup> 465e41f4b71Sopenharmony_ci 466e41f4b71Sopenharmony_cigetAppNet(): Promise\<NetHandle> 467e41f4b71Sopenharmony_ci 468e41f4b71Sopenharmony_ci获取App绑定的网络信息,使用Promise方式作为异步方法。 469e41f4b71Sopenharmony_ci 470e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 471e41f4b71Sopenharmony_ci 472e41f4b71Sopenharmony_ci**返回值:** 473e41f4b71Sopenharmony_ci 474e41f4b71Sopenharmony_ci| 类型 | 说明 | 475e41f4b71Sopenharmony_ci| --------------------------------- | ------------------------------------- | 476e41f4b71Sopenharmony_ci| Promise\<[NetHandle](#nethandle)> | 以Promise形式返回App绑定的网络信息。 | 477e41f4b71Sopenharmony_ci 478e41f4b71Sopenharmony_ci**错误码:** 479e41f4b71Sopenharmony_ci 480e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 481e41f4b71Sopenharmony_ci 482e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 483e41f4b71Sopenharmony_ci| ------- | ----------------------------- | 484e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service.| 485e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 486e41f4b71Sopenharmony_ci 487e41f4b71Sopenharmony_ci**示例:** 488e41f4b71Sopenharmony_ci 489e41f4b71Sopenharmony_ci```ts 490e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 491e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 492e41f4b71Sopenharmony_ci 493e41f4b71Sopenharmony_ciconnection.getAppNet().then((data: connection.NetHandle) => { 494e41f4b71Sopenharmony_ci console.info(JSON.stringify(data)); 495e41f4b71Sopenharmony_ci}).catch((error: BusinessError) => { 496e41f4b71Sopenharmony_ci console.info(JSON.stringify(error)); 497e41f4b71Sopenharmony_ci}); 498e41f4b71Sopenharmony_ci``` 499e41f4b71Sopenharmony_ci 500e41f4b71Sopenharmony_ci## connection.getAppNetSync<sup>10+</sup> 501e41f4b71Sopenharmony_ci 502e41f4b71Sopenharmony_cigetAppNetSync(): NetHandle 503e41f4b71Sopenharmony_ci 504e41f4b71Sopenharmony_ci使用同步方法获取App绑定的网络信息。 505e41f4b71Sopenharmony_ci 506e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 507e41f4b71Sopenharmony_ci 508e41f4b71Sopenharmony_ci**返回值:** 509e41f4b71Sopenharmony_ci 510e41f4b71Sopenharmony_ci| 类型 | 说明 | 511e41f4b71Sopenharmony_ci| --------- | ---------------------------------- | 512e41f4b71Sopenharmony_ci| [NetHandle](#nethandle) | 返回APP绑定的数据网络。 | 513e41f4b71Sopenharmony_ci 514e41f4b71Sopenharmony_ci**错误码:** 515e41f4b71Sopenharmony_ci 516e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 517e41f4b71Sopenharmony_ci 518e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 519e41f4b71Sopenharmony_ci| ------- | ----------------------------- | 520e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service.| 521e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 522e41f4b71Sopenharmony_ci 523e41f4b71Sopenharmony_ci**示例:** 524e41f4b71Sopenharmony_ci 525e41f4b71Sopenharmony_ci```ts 526e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 527e41f4b71Sopenharmony_ci 528e41f4b71Sopenharmony_cilet netHandle = connection.getAppNetSync(); 529e41f4b71Sopenharmony_ci``` 530e41f4b71Sopenharmony_ci 531e41f4b71Sopenharmony_ci## connection.setAppNet<sup>9+</sup> 532e41f4b71Sopenharmony_ci 533e41f4b71Sopenharmony_cisetAppNet(netHandle: NetHandle, callback: AsyncCallback\<void>): void 534e41f4b71Sopenharmony_ci 535e41f4b71Sopenharmony_ci绑定App到指定网络,绑定后的App只能通过指定网络访问外网,使用callback方式作为异步方法。 536e41f4b71Sopenharmony_ci 537e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 538e41f4b71Sopenharmony_ci 539e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 540e41f4b71Sopenharmony_ci 541e41f4b71Sopenharmony_ci**参数:** 542e41f4b71Sopenharmony_ci 543e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 544e41f4b71Sopenharmony_ci| --------- | ----------------------- | ---- | ------------------------------------------------------------ | 545e41f4b71Sopenharmony_ci| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄。 | 546e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当成功绑定App到指定网络时,error为undefined,否则为错误对象。| 547e41f4b71Sopenharmony_ci 548e41f4b71Sopenharmony_ci**错误码:** 549e41f4b71Sopenharmony_ci 550e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 551e41f4b71Sopenharmony_ci 552e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 553e41f4b71Sopenharmony_ci| ------- | ----------------------------- | 554e41f4b71Sopenharmony_ci| 201 | Permission denied. | 555e41f4b71Sopenharmony_ci| 401 | Parameter error. | 556e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 557e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service.| 558e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 559e41f4b71Sopenharmony_ci 560e41f4b71Sopenharmony_ci**示例:** 561e41f4b71Sopenharmony_ci 562e41f4b71Sopenharmony_ci```ts 563e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 564e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 565e41f4b71Sopenharmony_ci 566e41f4b71Sopenharmony_ciconnection.getDefaultNet((error: BusinessError, netHandle: connection.NetHandle) => { 567e41f4b71Sopenharmony_ci if (netHandle.netId == 0) { 568e41f4b71Sopenharmony_ci // 当前无默认网络时,获取的netHandler的netid为0,属于异常场景,此处可以实际情况自行添加一些处理机制。 569e41f4b71Sopenharmony_ci return; 570e41f4b71Sopenharmony_ci } 571e41f4b71Sopenharmony_ci connection.setAppNet(netHandle, (error: BusinessError, data: void) => { 572e41f4b71Sopenharmony_ci if (error) { 573e41f4b71Sopenharmony_ci console.error(`Failed to get default net. Code:${error.code}, message:${error.message}`); 574e41f4b71Sopenharmony_ci return; 575e41f4b71Sopenharmony_ci } 576e41f4b71Sopenharmony_ci console.info("Succeeded to get data: " + JSON.stringify(data)); 577e41f4b71Sopenharmony_ci }); 578e41f4b71Sopenharmony_ci}); 579e41f4b71Sopenharmony_ci``` 580e41f4b71Sopenharmony_ci 581e41f4b71Sopenharmony_ci## connection.setAppNet<sup>9+</sup> 582e41f4b71Sopenharmony_ci 583e41f4b71Sopenharmony_cisetAppNet(netHandle: NetHandle): Promise\<void> 584e41f4b71Sopenharmony_ci 585e41f4b71Sopenharmony_ci绑定App到指定网络,绑定后的App只能通过指定网络访问外网,使用Promise方式作为异步方法。 586e41f4b71Sopenharmony_ci 587e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 588e41f4b71Sopenharmony_ci 589e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 590e41f4b71Sopenharmony_ci 591e41f4b71Sopenharmony_ci**参数:** 592e41f4b71Sopenharmony_ci 593e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 594e41f4b71Sopenharmony_ci| --------- | ------------------------------------------------------------ | ---- | ---------------- | 595e41f4b71Sopenharmony_ci| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄。 | 596e41f4b71Sopenharmony_ci 597e41f4b71Sopenharmony_ci**返回值:** 598e41f4b71Sopenharmony_ci 599e41f4b71Sopenharmony_ci| 类型 | 说明 | 600e41f4b71Sopenharmony_ci| ------------------------------------------- | ----------------------------- | 601e41f4b71Sopenharmony_ci| Promise\<void> | 无返回值的Promise对象。 | 602e41f4b71Sopenharmony_ci 603e41f4b71Sopenharmony_ci**错误码:** 604e41f4b71Sopenharmony_ci 605e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 606e41f4b71Sopenharmony_ci 607e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 608e41f4b71Sopenharmony_ci| ------- | ----------------------------- | 609e41f4b71Sopenharmony_ci| 201 | Permission denied. | 610e41f4b71Sopenharmony_ci| 401 | Parameter error. | 611e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 612e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service.| 613e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 614e41f4b71Sopenharmony_ci 615e41f4b71Sopenharmony_ci**示例:** 616e41f4b71Sopenharmony_ci 617e41f4b71Sopenharmony_ci```ts 618e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 619e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 620e41f4b71Sopenharmony_ci 621e41f4b71Sopenharmony_ciconnection.getDefaultNet().then((netHandle: connection.NetHandle) => { 622e41f4b71Sopenharmony_ci if (netHandle.netId == 0) { 623e41f4b71Sopenharmony_ci // 当前无默认网络时,获取的netHandler的netid为0,属于异常场景,此处可以实际情况自行添加一些处理机制。 624e41f4b71Sopenharmony_ci return; 625e41f4b71Sopenharmony_ci } 626e41f4b71Sopenharmony_ci 627e41f4b71Sopenharmony_ci connection.setAppNet(netHandle).then(() => { 628e41f4b71Sopenharmony_ci console.log("success"); 629e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 630e41f4b71Sopenharmony_ci console.log(JSON.stringify(error)); 631e41f4b71Sopenharmony_ci }) 632e41f4b71Sopenharmony_ci}); 633e41f4b71Sopenharmony_ci``` 634e41f4b71Sopenharmony_ci 635e41f4b71Sopenharmony_ci## connection.getAllNets 636e41f4b71Sopenharmony_ci 637e41f4b71Sopenharmony_cigetAllNets(callback: AsyncCallback<Array<NetHandle>>): void 638e41f4b71Sopenharmony_ci 639e41f4b71Sopenharmony_ci获取所有处于连接状态的网络列表,使用callback方式作为异步方法。 640e41f4b71Sopenharmony_ci 641e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.GET_NETWORK_INFO 642e41f4b71Sopenharmony_ci 643e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 644e41f4b71Sopenharmony_ci 645e41f4b71Sopenharmony_ci**参数:** 646e41f4b71Sopenharmony_ci 647e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 648e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 649e41f4b71Sopenharmony_ci| callback | AsyncCallback<Array<[NetHandle](#nethandle)>> | 是 | 回调函数。当成功获取所有处于连接状态的网络列表时,error为undefined,data为激活的数据网络列表;否则为错误对象。| 650e41f4b71Sopenharmony_ci 651e41f4b71Sopenharmony_ci**错误码:** 652e41f4b71Sopenharmony_ci 653e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 654e41f4b71Sopenharmony_ci 655e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 656e41f4b71Sopenharmony_ci| ------- | ----------------------------- | 657e41f4b71Sopenharmony_ci| 201 | Permission denied. | 658e41f4b71Sopenharmony_ci| 401 | Parameter error. | 659e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service.| 660e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 661e41f4b71Sopenharmony_ci 662e41f4b71Sopenharmony_ci**示例:** 663e41f4b71Sopenharmony_ci 664e41f4b71Sopenharmony_ci```ts 665e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 666e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 667e41f4b71Sopenharmony_ci 668e41f4b71Sopenharmony_ciconnection.getAllNets((error: BusinessError, data: connection.NetHandle[]) => { 669e41f4b71Sopenharmony_ci if (error) { 670e41f4b71Sopenharmony_ci console.error(`Failed to get all nets. Code:${error.code}, message:${error.message}`); 671e41f4b71Sopenharmony_ci return; 672e41f4b71Sopenharmony_ci } 673e41f4b71Sopenharmony_ci console.info("Succeeded to get data: " + JSON.stringify(data)); 674e41f4b71Sopenharmony_ci}); 675e41f4b71Sopenharmony_ci``` 676e41f4b71Sopenharmony_ci 677e41f4b71Sopenharmony_ci## connection.getAllNets 678e41f4b71Sopenharmony_ci 679e41f4b71Sopenharmony_cigetAllNets(): Promise<Array<NetHandle>> 680e41f4b71Sopenharmony_ci 681e41f4b71Sopenharmony_ci获取所有处于连接状态的网络列表,使用Promise方式作为异步方法。 682e41f4b71Sopenharmony_ci 683e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.GET_NETWORK_INFO 684e41f4b71Sopenharmony_ci 685e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 686e41f4b71Sopenharmony_ci 687e41f4b71Sopenharmony_ci**返回值:** 688e41f4b71Sopenharmony_ci 689e41f4b71Sopenharmony_ci| 类型 | 说明 | 690e41f4b71Sopenharmony_ci| -------- | -------- | 691e41f4b71Sopenharmony_ci| Promise<Array<[NetHandle](#nethandle)>> | 以Promise形式返回激活的数据网络列表。 | 692e41f4b71Sopenharmony_ci 693e41f4b71Sopenharmony_ci**错误码:** 694e41f4b71Sopenharmony_ci 695e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 696e41f4b71Sopenharmony_ci 697e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 698e41f4b71Sopenharmony_ci| ------- | ----------------------------- | 699e41f4b71Sopenharmony_ci| 201 | Permission denied. | 700e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service.| 701e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 702e41f4b71Sopenharmony_ci 703e41f4b71Sopenharmony_ci**示例:** 704e41f4b71Sopenharmony_ci 705e41f4b71Sopenharmony_ci```ts 706e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 707e41f4b71Sopenharmony_ci 708e41f4b71Sopenharmony_ciconnection.getAllNets().then((data: connection.NetHandle[]) => { 709e41f4b71Sopenharmony_ci console.info("Succeeded to get data: " + JSON.stringify(data)); 710e41f4b71Sopenharmony_ci}); 711e41f4b71Sopenharmony_ci``` 712e41f4b71Sopenharmony_ci 713e41f4b71Sopenharmony_ci## connection.getAllNetsSync<sup>10+</sup> 714e41f4b71Sopenharmony_ci 715e41f4b71Sopenharmony_cigetAllNetsSync(): Array<NetHandle> 716e41f4b71Sopenharmony_ci 717e41f4b71Sopenharmony_ci使用同步方法获取所有处于连接状态的网络列表。 718e41f4b71Sopenharmony_ci 719e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.GET_NETWORK_INFO 720e41f4b71Sopenharmony_ci 721e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 722e41f4b71Sopenharmony_ci 723e41f4b71Sopenharmony_ci**返回值:** 724e41f4b71Sopenharmony_ci 725e41f4b71Sopenharmony_ci| 类型 | 说明 | 726e41f4b71Sopenharmony_ci| --------- | ---------------------------------- | 727e41f4b71Sopenharmony_ci| Array<[NetHandle](#nethandle)> | 返回激活的数据网络列表。 | 728e41f4b71Sopenharmony_ci 729e41f4b71Sopenharmony_ci**错误码:** 730e41f4b71Sopenharmony_ci 731e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 732e41f4b71Sopenharmony_ci 733e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 734e41f4b71Sopenharmony_ci| ------- | ----------------------------- | 735e41f4b71Sopenharmony_ci| 201 | Permission denied. | 736e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service.| 737e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 738e41f4b71Sopenharmony_ci 739e41f4b71Sopenharmony_ci**示例:** 740e41f4b71Sopenharmony_ci 741e41f4b71Sopenharmony_ci```ts 742e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 743e41f4b71Sopenharmony_ci 744e41f4b71Sopenharmony_cilet netHandle = connection.getAllNetsSync(); 745e41f4b71Sopenharmony_ci``` 746e41f4b71Sopenharmony_ci 747e41f4b71Sopenharmony_ci## connection.getConnectionProperties 748e41f4b71Sopenharmony_ci 749e41f4b71Sopenharmony_cigetConnectionProperties(netHandle: NetHandle, callback: AsyncCallback\<ConnectionProperties>): void 750e41f4b71Sopenharmony_ci 751e41f4b71Sopenharmony_ci获取netHandle对应的网络的连接信息,使用callback方式作为异步方法。 752e41f4b71Sopenharmony_ci 753e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.GET_NETWORK_INFO 754e41f4b71Sopenharmony_ci 755e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 756e41f4b71Sopenharmony_ci 757e41f4b71Sopenharmony_ci**参数:** 758e41f4b71Sopenharmony_ci 759e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 760e41f4b71Sopenharmony_ci| --------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 761e41f4b71Sopenharmony_ci| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄。 | 762e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[ConnectionProperties](#connectionproperties)> | 是 | 回调函数。当成功获取netHandle对应的网络的连接信息时,error为undefined,data为获取的网络连接信息;否则为错误对象。| 763e41f4b71Sopenharmony_ci 764e41f4b71Sopenharmony_ci**错误码:** 765e41f4b71Sopenharmony_ci 766e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 767e41f4b71Sopenharmony_ci 768e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 769e41f4b71Sopenharmony_ci| ------- | ----------------------------- | 770e41f4b71Sopenharmony_ci| 201 | Permission denied. | 771e41f4b71Sopenharmony_ci| 401 | Parameter error. | 772e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 773e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service.| 774e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 775e41f4b71Sopenharmony_ci 776e41f4b71Sopenharmony_ci**示例:** 777e41f4b71Sopenharmony_ci 778e41f4b71Sopenharmony_ci```ts 779e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 780e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 781e41f4b71Sopenharmony_ci 782e41f4b71Sopenharmony_ciconnection.getDefaultNet().then((netHandle: connection.NetHandle) => { 783e41f4b71Sopenharmony_ci if (netHandle.netId == 0) { 784e41f4b71Sopenharmony_ci // 当前无默认网络时,获取的netHandler的netid为0,属于异常场景,此处可以实际情况自行添加一些处理机制。 785e41f4b71Sopenharmony_ci return; 786e41f4b71Sopenharmony_ci } 787e41f4b71Sopenharmony_ci connection.getConnectionProperties(netHandle, (error: BusinessError, data: connection.ConnectionProperties) => { 788e41f4b71Sopenharmony_ci if (error) { 789e41f4b71Sopenharmony_ci console.error(`Failed to get connection properties. Code:${error.code}, message:${error.message}`); 790e41f4b71Sopenharmony_ci return; 791e41f4b71Sopenharmony_ci } 792e41f4b71Sopenharmony_ci console.info("Succeeded to get data: " + JSON.stringify(data)); 793e41f4b71Sopenharmony_ci }) 794e41f4b71Sopenharmony_ci}); 795e41f4b71Sopenharmony_ci``` 796e41f4b71Sopenharmony_ci 797e41f4b71Sopenharmony_ci## connection.getConnectionProperties 798e41f4b71Sopenharmony_ci 799e41f4b71Sopenharmony_cigetConnectionProperties(netHandle: NetHandle): Promise\<ConnectionProperties> 800e41f4b71Sopenharmony_ci 801e41f4b71Sopenharmony_ci获取netHandle对应的网络的连接信息,使用Promise方式作为异步方法。 802e41f4b71Sopenharmony_ci 803e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.GET_NETWORK_INFO 804e41f4b71Sopenharmony_ci 805e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 806e41f4b71Sopenharmony_ci 807e41f4b71Sopenharmony_ci**参数:** 808e41f4b71Sopenharmony_ci 809e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 810e41f4b71Sopenharmony_ci| --------- | ----------------------- | ---- | ---------------- | 811e41f4b71Sopenharmony_ci| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄。 | 812e41f4b71Sopenharmony_ci 813e41f4b71Sopenharmony_ci**返回值:** 814e41f4b71Sopenharmony_ci 815e41f4b71Sopenharmony_ci| 类型 | 说明 | 816e41f4b71Sopenharmony_ci| ------------------------------------------------------- | --------------------------------- | 817e41f4b71Sopenharmony_ci| Promise\<[ConnectionProperties](#connectionproperties)> | 以Promise形式返回网络的连接信息。 | 818e41f4b71Sopenharmony_ci 819e41f4b71Sopenharmony_ci**错误码:** 820e41f4b71Sopenharmony_ci 821e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 822e41f4b71Sopenharmony_ci 823e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 824e41f4b71Sopenharmony_ci| ------- | ----------------------------- | 825e41f4b71Sopenharmony_ci| 201 | Permission denied. | 826e41f4b71Sopenharmony_ci| 401 | Parameter error. | 827e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 828e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service.| 829e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 830e41f4b71Sopenharmony_ci 831e41f4b71Sopenharmony_ci**示例:** 832e41f4b71Sopenharmony_ci 833e41f4b71Sopenharmony_ci```ts 834e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 835e41f4b71Sopenharmony_ci 836e41f4b71Sopenharmony_ciconnection.getDefaultNet().then((netHandle: connection.NetHandle) => { 837e41f4b71Sopenharmony_ci if (netHandle.netId == 0) { 838e41f4b71Sopenharmony_ci // 当前无默认网络时,获取的netHandler的netid为0,属于异常场景,此处可以实际情况自行添加一些处理机制。 839e41f4b71Sopenharmony_ci return; 840e41f4b71Sopenharmony_ci } 841e41f4b71Sopenharmony_ci 842e41f4b71Sopenharmony_ci connection.getConnectionProperties(netHandle).then((data: connection.ConnectionProperties) => { 843e41f4b71Sopenharmony_ci console.info("Succeeded to get data: " + JSON.stringify(data)); 844e41f4b71Sopenharmony_ci }) 845e41f4b71Sopenharmony_ci}); 846e41f4b71Sopenharmony_ci``` 847e41f4b71Sopenharmony_ci 848e41f4b71Sopenharmony_ci## connection.getConnectionPropertiesSync<sup>10+</sup> 849e41f4b71Sopenharmony_ci 850e41f4b71Sopenharmony_cigetConnectionPropertiesSync(netHandle: NetHandle): ConnectionProperties 851e41f4b71Sopenharmony_ci 852e41f4b71Sopenharmony_ci获取netHandle对应的网络的连接信息,使用同步方法返回。 853e41f4b71Sopenharmony_ci 854e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.GET_NETWORK_INFO 855e41f4b71Sopenharmony_ci 856e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 857e41f4b71Sopenharmony_ci 858e41f4b71Sopenharmony_ci**参数:** 859e41f4b71Sopenharmony_ci 860e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 861e41f4b71Sopenharmony_ci| --------- | ----------------------- | ---- | ---------------- | 862e41f4b71Sopenharmony_ci| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄。 | 863e41f4b71Sopenharmony_ci 864e41f4b71Sopenharmony_ci**返回值:** 865e41f4b71Sopenharmony_ci 866e41f4b71Sopenharmony_ci| 类型 | 说明 | 867e41f4b71Sopenharmony_ci| ------------------------------------------------------- | --------------------------------- | 868e41f4b71Sopenharmony_ci| [ConnectionProperties](#connectionproperties) | 返回网络的连接信息。 | 869e41f4b71Sopenharmony_ci 870e41f4b71Sopenharmony_ci**错误码:** 871e41f4b71Sopenharmony_ci 872e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 873e41f4b71Sopenharmony_ci 874e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 875e41f4b71Sopenharmony_ci| ------- | ----------------------------- | 876e41f4b71Sopenharmony_ci| 201 | Permission denied. | 877e41f4b71Sopenharmony_ci| 401 | Parameter error. | 878e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 879e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service.| 880e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 881e41f4b71Sopenharmony_ci 882e41f4b71Sopenharmony_ci**示例:** 883e41f4b71Sopenharmony_ci 884e41f4b71Sopenharmony_ci```ts 885e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 886e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 887e41f4b71Sopenharmony_ci 888e41f4b71Sopenharmony_cilet netHandle: connection.NetHandle; 889e41f4b71Sopenharmony_cilet connectionproperties: connection.ConnectionProperties; 890e41f4b71Sopenharmony_ci 891e41f4b71Sopenharmony_ciconnection.getDefaultNet().then((netHandle: connection.NetHandle) => { 892e41f4b71Sopenharmony_ci if (netHandle.netId == 0) { 893e41f4b71Sopenharmony_ci // 当前无默认网络时,获取的netHandler的netid为0,属于异常场景,此处可以实际情况自行添加一些处理机制。 894e41f4b71Sopenharmony_ci return; 895e41f4b71Sopenharmony_ci } 896e41f4b71Sopenharmony_ci netHandle = connection.getDefaultNetSync(); 897e41f4b71Sopenharmony_ci connectionproperties = connection.getConnectionPropertiesSync(netHandle); 898e41f4b71Sopenharmony_ci console.info("Succeeded to get connectionproperties: " + JSON.stringify(connectionproperties)); 899e41f4b71Sopenharmony_ci}); 900e41f4b71Sopenharmony_ci 901e41f4b71Sopenharmony_ci``` 902e41f4b71Sopenharmony_ci 903e41f4b71Sopenharmony_ci## connection.getNetCapabilities 904e41f4b71Sopenharmony_ci 905e41f4b71Sopenharmony_cigetNetCapabilities(netHandle: NetHandle, callback: AsyncCallback\<NetCapabilities>): void 906e41f4b71Sopenharmony_ci 907e41f4b71Sopenharmony_ci获取netHandle对应的网络的能力信息,使用callback方式作为异步方法。 908e41f4b71Sopenharmony_ci 909e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.GET_NETWORK_INFO 910e41f4b71Sopenharmony_ci 911e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 912e41f4b71Sopenharmony_ci 913e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 914e41f4b71Sopenharmony_ci 915e41f4b71Sopenharmony_ci**参数:** 916e41f4b71Sopenharmony_ci 917e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 918e41f4b71Sopenharmony_ci| --------- | --------------------------------------------------- | ---- | ------------------------------------------------------------ | 919e41f4b71Sopenharmony_ci| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄。 | 920e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[NetCapabilities](#netcapabilities)> | 是 | 回调函数。当成功获取netHandle对应的网络的能力信息时,error为undefined,data为获取到的网络能力信息;否则为错误对象。| 921e41f4b71Sopenharmony_ci 922e41f4b71Sopenharmony_ci**错误码:** 923e41f4b71Sopenharmony_ci 924e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 925e41f4b71Sopenharmony_ci 926e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 927e41f4b71Sopenharmony_ci| ------- | ----------------------------- | 928e41f4b71Sopenharmony_ci| 201 | Permission denied. | 929e41f4b71Sopenharmony_ci| 401 | Parameter error. | 930e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 931e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service.| 932e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 933e41f4b71Sopenharmony_ci 934e41f4b71Sopenharmony_ci**示例:** 935e41f4b71Sopenharmony_ci 936e41f4b71Sopenharmony_ci```ts 937e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 938e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 939e41f4b71Sopenharmony_ci 940e41f4b71Sopenharmony_ciconnection.getDefaultNet().then((netHandle: connection.NetHandle) => { 941e41f4b71Sopenharmony_ci if (netHandle.netId == 0) { 942e41f4b71Sopenharmony_ci // 当前无默认网络时,获取的netHandler的netid为0,属于异常场景,此处可以实际情况自行添加一些处理机制。 943e41f4b71Sopenharmony_ci return; 944e41f4b71Sopenharmony_ci } 945e41f4b71Sopenharmony_ci connection.getNetCapabilities(netHandle, (error: BusinessError, data: connection.NetCapabilities) => { 946e41f4b71Sopenharmony_ci if (error) { 947e41f4b71Sopenharmony_ci console.error(`Failed to get net capabilities. Code:${error.code}, message:${error.message}`); 948e41f4b71Sopenharmony_ci return; 949e41f4b71Sopenharmony_ci } 950e41f4b71Sopenharmony_ci console.info("Succeeded to get data: " + JSON.stringify(data)); 951e41f4b71Sopenharmony_ci }) 952e41f4b71Sopenharmony_ci}); 953e41f4b71Sopenharmony_ci``` 954e41f4b71Sopenharmony_ci 955e41f4b71Sopenharmony_ci## connection.getNetCapabilities 956e41f4b71Sopenharmony_ci 957e41f4b71Sopenharmony_cigetNetCapabilities(netHandle: NetHandle): Promise\<NetCapabilities> 958e41f4b71Sopenharmony_ci 959e41f4b71Sopenharmony_ci获取netHandle对应的网络的能力信息,使用Promise方式作为异步方法。 960e41f4b71Sopenharmony_ci 961e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.GET_NETWORK_INFO 962e41f4b71Sopenharmony_ci 963e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 964e41f4b71Sopenharmony_ci 965e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 966e41f4b71Sopenharmony_ci 967e41f4b71Sopenharmony_ci**参数:** 968e41f4b71Sopenharmony_ci 969e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 970e41f4b71Sopenharmony_ci| --------- | ----------------------- | ---- | ---------------- | 971e41f4b71Sopenharmony_ci| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄。 | 972e41f4b71Sopenharmony_ci 973e41f4b71Sopenharmony_ci**返回值:** 974e41f4b71Sopenharmony_ci 975e41f4b71Sopenharmony_ci| 类型 | 说明 | 976e41f4b71Sopenharmony_ci| --------------------------------------------- | --------------------------------- | 977e41f4b71Sopenharmony_ci| Promise\<[NetCapabilities](#netcapabilities)> | 以Promise形式返回网络的能力信息。 | 978e41f4b71Sopenharmony_ci 979e41f4b71Sopenharmony_ci**错误码:** 980e41f4b71Sopenharmony_ci 981e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 982e41f4b71Sopenharmony_ci 983e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 984e41f4b71Sopenharmony_ci| ------- | ----------------------------- | 985e41f4b71Sopenharmony_ci| 201 | Permission denied. | 986e41f4b71Sopenharmony_ci| 401 | Parameter error. | 987e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 988e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service.| 989e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 990e41f4b71Sopenharmony_ci 991e41f4b71Sopenharmony_ci**示例:** 992e41f4b71Sopenharmony_ci 993e41f4b71Sopenharmony_ci```ts 994e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 995e41f4b71Sopenharmony_ci 996e41f4b71Sopenharmony_ciconnection.getDefaultNet().then((netHandle: connection.NetHandle) => { 997e41f4b71Sopenharmony_ci if (netHandle.netId == 0) { 998e41f4b71Sopenharmony_ci // 当前无默认网络时,获取的netHandler的netid为0,属于异常场景,此处可以实际情况自行添加一些处理机制。 999e41f4b71Sopenharmony_ci return; 1000e41f4b71Sopenharmony_ci } 1001e41f4b71Sopenharmony_ci connection.getNetCapabilities(netHandle).then((data: connection.NetCapabilities) => { 1002e41f4b71Sopenharmony_ci console.info("Succeeded to get data: " + JSON.stringify(data)); 1003e41f4b71Sopenharmony_ci }) 1004e41f4b71Sopenharmony_ci}); 1005e41f4b71Sopenharmony_ci``` 1006e41f4b71Sopenharmony_ci 1007e41f4b71Sopenharmony_ci## connection.getNetCapabilitiesSync<sup>10+</sup> 1008e41f4b71Sopenharmony_ci 1009e41f4b71Sopenharmony_cigetNetCapabilitiesSync(netHandle: NetHandle): NetCapabilities 1010e41f4b71Sopenharmony_ci 1011e41f4b71Sopenharmony_ci获取netHandle对应的网络的能力信息,使用同步方式返回。 1012e41f4b71Sopenharmony_ci 1013e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.GET_NETWORK_INFO 1014e41f4b71Sopenharmony_ci 1015e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1016e41f4b71Sopenharmony_ci 1017e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 1018e41f4b71Sopenharmony_ci 1019e41f4b71Sopenharmony_ci**参数:** 1020e41f4b71Sopenharmony_ci 1021e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1022e41f4b71Sopenharmony_ci| --------- | ----------------------- | ---- | ---------------- | 1023e41f4b71Sopenharmony_ci| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄。 | 1024e41f4b71Sopenharmony_ci 1025e41f4b71Sopenharmony_ci**返回值:** 1026e41f4b71Sopenharmony_ci 1027e41f4b71Sopenharmony_ci| 类型 | 说明 | 1028e41f4b71Sopenharmony_ci| --------------------------------------------- | --------------------------------- | 1029e41f4b71Sopenharmony_ci| [NetCapabilities](#netcapabilities) | 返回网络的能力信息。 | 1030e41f4b71Sopenharmony_ci 1031e41f4b71Sopenharmony_ci**错误码:** 1032e41f4b71Sopenharmony_ci 1033e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 1034e41f4b71Sopenharmony_ci 1035e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1036e41f4b71Sopenharmony_ci| ------- | ----------------------------- | 1037e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1038e41f4b71Sopenharmony_ci| 401 | Parameter error. | 1039e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 1040e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service.| 1041e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 1042e41f4b71Sopenharmony_ci 1043e41f4b71Sopenharmony_ci**示例:** 1044e41f4b71Sopenharmony_ci 1045e41f4b71Sopenharmony_ci```ts 1046e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 1047e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1048e41f4b71Sopenharmony_ci 1049e41f4b71Sopenharmony_cilet netHandle: connection.NetHandle; 1050e41f4b71Sopenharmony_cilet getNetCapabilitiesSync: connection.NetCapabilities; 1051e41f4b71Sopenharmony_ci 1052e41f4b71Sopenharmony_ciconnection.getDefaultNet().then((netHandle: connection.NetHandle) => { 1053e41f4b71Sopenharmony_ci if (netHandle.netId == 0) { 1054e41f4b71Sopenharmony_ci // 当前无默认网络时,获取的netHandler的netid为0,属于异常场景,此处可以实际情况自行添加一些处理机制。 1055e41f4b71Sopenharmony_ci return; 1056e41f4b71Sopenharmony_ci } 1057e41f4b71Sopenharmony_ci 1058e41f4b71Sopenharmony_ci getNetCapabilitiesSync = connection.getNetCapabilitiesSync(netHandle); 1059e41f4b71Sopenharmony_ci console.info("Succeeded to get net capabilities sync: " + JSON.stringify(getNetCapabilitiesSync)); 1060e41f4b71Sopenharmony_ci}); 1061e41f4b71Sopenharmony_ci 1062e41f4b71Sopenharmony_ci``` 1063e41f4b71Sopenharmony_ci 1064e41f4b71Sopenharmony_ci## connection.isDefaultNetMetered<sup>9+</sup> 1065e41f4b71Sopenharmony_ci 1066e41f4b71Sopenharmony_ciisDefaultNetMetered(callback: AsyncCallback\<boolean>): void 1067e41f4b71Sopenharmony_ci 1068e41f4b71Sopenharmony_ci检查当前网络上的数据流量使用是否被计量,使用callback方式作为异步方法。 1069e41f4b71Sopenharmony_ci 1070e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.GET_NETWORK_INFO 1071e41f4b71Sopenharmony_ci 1072e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 1073e41f4b71Sopenharmony_ci 1074e41f4b71Sopenharmony_ci**参数:** 1075e41f4b71Sopenharmony_ci 1076e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1077e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 1078e41f4b71Sopenharmony_ci| callback | AsyncCallback\<boolean> | 是 | 回调函数。当前网络上的数据流量使用被计量返回true。 | 1079e41f4b71Sopenharmony_ci 1080e41f4b71Sopenharmony_ci**错误码:** 1081e41f4b71Sopenharmony_ci 1082e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 1083e41f4b71Sopenharmony_ci 1084e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1085e41f4b71Sopenharmony_ci| ------- | ----------------------------- | 1086e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1087e41f4b71Sopenharmony_ci| 401 | Parameter error. | 1088e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service.| 1089e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 1090e41f4b71Sopenharmony_ci 1091e41f4b71Sopenharmony_ci**示例:** 1092e41f4b71Sopenharmony_ci 1093e41f4b71Sopenharmony_ci```ts 1094e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 1095e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1096e41f4b71Sopenharmony_ci 1097e41f4b71Sopenharmony_ciconnection.isDefaultNetMetered((error: BusinessError, data: boolean) => { 1098e41f4b71Sopenharmony_ci console.log(JSON.stringify(error)); 1099e41f4b71Sopenharmony_ci console.log('data: ' + data); 1100e41f4b71Sopenharmony_ci}); 1101e41f4b71Sopenharmony_ci``` 1102e41f4b71Sopenharmony_ci 1103e41f4b71Sopenharmony_ci## connection.isDefaultNetMetered<sup>9+</sup> 1104e41f4b71Sopenharmony_ci 1105e41f4b71Sopenharmony_ciisDefaultNetMetered(): Promise\<boolean> 1106e41f4b71Sopenharmony_ci 1107e41f4b71Sopenharmony_ci检查当前网络上的数据流量使用是否被计量,使用Promise方式作为异步方法。 1108e41f4b71Sopenharmony_ci 1109e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.GET_NETWORK_INFO 1110e41f4b71Sopenharmony_ci 1111e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 1112e41f4b71Sopenharmony_ci 1113e41f4b71Sopenharmony_ci**返回值:** 1114e41f4b71Sopenharmony_ci 1115e41f4b71Sopenharmony_ci| 类型 | 说明 | 1116e41f4b71Sopenharmony_ci| ----------------- | ----------------------------------------------- | 1117e41f4b71Sopenharmony_ci| Promise\<boolean> | 以Promise形式返回,当前网络上的数据流量使用被计量true。 | 1118e41f4b71Sopenharmony_ci 1119e41f4b71Sopenharmony_ci**错误码:** 1120e41f4b71Sopenharmony_ci 1121e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 1122e41f4b71Sopenharmony_ci 1123e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1124e41f4b71Sopenharmony_ci| ------- | -------------------------------- | 1125e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1126e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service.| 1127e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 1128e41f4b71Sopenharmony_ci 1129e41f4b71Sopenharmony_ci**示例:** 1130e41f4b71Sopenharmony_ci 1131e41f4b71Sopenharmony_ci```ts 1132e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 1133e41f4b71Sopenharmony_ci 1134e41f4b71Sopenharmony_ciconnection.isDefaultNetMetered().then((data: boolean) => { 1135e41f4b71Sopenharmony_ci console.log('data: ' + data); 1136e41f4b71Sopenharmony_ci}); 1137e41f4b71Sopenharmony_ci``` 1138e41f4b71Sopenharmony_ci 1139e41f4b71Sopenharmony_ci## connection.isDefaultNetMeteredSync<sup>10+</sup> 1140e41f4b71Sopenharmony_ci 1141e41f4b71Sopenharmony_ciisDefaultNetMeteredSync(): boolean 1142e41f4b71Sopenharmony_ci 1143e41f4b71Sopenharmony_ci检查当前网络上的数据流量使用是否被计量,使用同步方式返回。 1144e41f4b71Sopenharmony_ci 1145e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.GET_NETWORK_INFO 1146e41f4b71Sopenharmony_ci 1147e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 1148e41f4b71Sopenharmony_ci 1149e41f4b71Sopenharmony_ci**返回值:** 1150e41f4b71Sopenharmony_ci 1151e41f4b71Sopenharmony_ci| 类型 | 说明 | 1152e41f4b71Sopenharmony_ci| ----------------- | ----------------------------------------------- | 1153e41f4b71Sopenharmony_ci| boolean | 当前网络上的数据流量使用被计量true。 | 1154e41f4b71Sopenharmony_ci 1155e41f4b71Sopenharmony_ci**错误码:** 1156e41f4b71Sopenharmony_ci 1157e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 1158e41f4b71Sopenharmony_ci 1159e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1160e41f4b71Sopenharmony_ci| ------- | -------------------------------- | 1161e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1162e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service.| 1163e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 1164e41f4b71Sopenharmony_ci 1165e41f4b71Sopenharmony_ci**示例:** 1166e41f4b71Sopenharmony_ci 1167e41f4b71Sopenharmony_ci```ts 1168e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 1169e41f4b71Sopenharmony_ci 1170e41f4b71Sopenharmony_cilet isMetered = connection.isDefaultNetMeteredSync(); 1171e41f4b71Sopenharmony_ci``` 1172e41f4b71Sopenharmony_ci 1173e41f4b71Sopenharmony_ci## connection.hasDefaultNet 1174e41f4b71Sopenharmony_ci 1175e41f4b71Sopenharmony_cihasDefaultNet(callback: AsyncCallback\<boolean>): void 1176e41f4b71Sopenharmony_ci 1177e41f4b71Sopenharmony_ci检查默认数据网络是否被激活,使用callback方式作为异步方法。如果有默认数据网络,可以使用[getDefaultNet](#connectiongetdefaultnet)去获取。 1178e41f4b71Sopenharmony_ci 1179e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.GET_NETWORK_INFO 1180e41f4b71Sopenharmony_ci 1181e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 1182e41f4b71Sopenharmony_ci 1183e41f4b71Sopenharmony_ci**参数:** 1184e41f4b71Sopenharmony_ci 1185e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1186e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 1187e41f4b71Sopenharmony_ci| callback | AsyncCallback\<boolean> | 是 | 回调函数。默认数据网络被激活返回true。 | 1188e41f4b71Sopenharmony_ci 1189e41f4b71Sopenharmony_ci**错误码:** 1190e41f4b71Sopenharmony_ci 1191e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 1192e41f4b71Sopenharmony_ci 1193e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1194e41f4b71Sopenharmony_ci| ------- | --------------------------------- | 1195e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1196e41f4b71Sopenharmony_ci| 401 | Parameter error. | 1197e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 1198e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 1199e41f4b71Sopenharmony_ci 1200e41f4b71Sopenharmony_ci**示例:** 1201e41f4b71Sopenharmony_ci 1202e41f4b71Sopenharmony_ci```ts 1203e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 1204e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1205e41f4b71Sopenharmony_ci 1206e41f4b71Sopenharmony_ciconnection.hasDefaultNet((error: BusinessError, data: boolean) => { 1207e41f4b71Sopenharmony_ci console.log(JSON.stringify(error)); 1208e41f4b71Sopenharmony_ci console.log('data: ' + data); 1209e41f4b71Sopenharmony_ci}); 1210e41f4b71Sopenharmony_ci``` 1211e41f4b71Sopenharmony_ci 1212e41f4b71Sopenharmony_ci## connection.hasDefaultNet 1213e41f4b71Sopenharmony_ci 1214e41f4b71Sopenharmony_cihasDefaultNet(): Promise\<boolean> 1215e41f4b71Sopenharmony_ci 1216e41f4b71Sopenharmony_ci检查默认数据网络是否被激活,使用Promise方式作为异步方法。如果有默认数据网络,可以使用[getDefaultNet](#connectiongetdefaultnet)去获取。 1217e41f4b71Sopenharmony_ci 1218e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.GET_NETWORK_INFO 1219e41f4b71Sopenharmony_ci 1220e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 1221e41f4b71Sopenharmony_ci 1222e41f4b71Sopenharmony_ci**返回值:** 1223e41f4b71Sopenharmony_ci 1224e41f4b71Sopenharmony_ci| 类型 | 说明 | 1225e41f4b71Sopenharmony_ci| ----------------- | ----------------------------------------------- | 1226e41f4b71Sopenharmony_ci| Promise\<boolean> | 以Promise形式返回,默认数据网络被激活返回true。 | 1227e41f4b71Sopenharmony_ci 1228e41f4b71Sopenharmony_ci**错误码:** 1229e41f4b71Sopenharmony_ci 1230e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 1231e41f4b71Sopenharmony_ci 1232e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1233e41f4b71Sopenharmony_ci| ------- | ----------------------------- | 1234e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1235e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 1236e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 1237e41f4b71Sopenharmony_ci 1238e41f4b71Sopenharmony_ci**示例:** 1239e41f4b71Sopenharmony_ci 1240e41f4b71Sopenharmony_ci```ts 1241e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 1242e41f4b71Sopenharmony_ci 1243e41f4b71Sopenharmony_ciconnection.hasDefaultNet().then((data: boolean) => { 1244e41f4b71Sopenharmony_ci console.log('data: ' + data); 1245e41f4b71Sopenharmony_ci}); 1246e41f4b71Sopenharmony_ci``` 1247e41f4b71Sopenharmony_ci 1248e41f4b71Sopenharmony_ci## connection.hasDefaultNetSync<sup>10+</sup> 1249e41f4b71Sopenharmony_ci 1250e41f4b71Sopenharmony_cihasDefaultNetSync(): boolean 1251e41f4b71Sopenharmony_ci 1252e41f4b71Sopenharmony_ci检查默认数据网络是否被激活,使用同步方式返回接口,如果被激活则返回true。 1253e41f4b71Sopenharmony_ci 1254e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.GET_NETWORK_INFO 1255e41f4b71Sopenharmony_ci 1256e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 1257e41f4b71Sopenharmony_ci 1258e41f4b71Sopenharmony_ci**返回值:** 1259e41f4b71Sopenharmony_ci 1260e41f4b71Sopenharmony_ci| 类型 | 说明 | 1261e41f4b71Sopenharmony_ci| ----------------- | ----------------------------------------------- | 1262e41f4b71Sopenharmony_ci| boolean | 默认数据网络被激活返回true。 | 1263e41f4b71Sopenharmony_ci 1264e41f4b71Sopenharmony_ci**错误码:** 1265e41f4b71Sopenharmony_ci 1266e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 1267e41f4b71Sopenharmony_ci 1268e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1269e41f4b71Sopenharmony_ci| ------- | ----------------------------- | 1270e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1271e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service.| 1272e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 1273e41f4b71Sopenharmony_ci 1274e41f4b71Sopenharmony_ci**示例:** 1275e41f4b71Sopenharmony_ci 1276e41f4b71Sopenharmony_ci```ts 1277e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 1278e41f4b71Sopenharmony_ci 1279e41f4b71Sopenharmony_cilet isDefaultNet = connection.hasDefaultNetSync(); 1280e41f4b71Sopenharmony_ci``` 1281e41f4b71Sopenharmony_ci 1282e41f4b71Sopenharmony_ci 1283e41f4b71Sopenharmony_ci## connection.reportNetConnected 1284e41f4b71Sopenharmony_ci 1285e41f4b71Sopenharmony_cireportNetConnected(netHandle: NetHandle, callback: AsyncCallback<void>): void 1286e41f4b71Sopenharmony_ci 1287e41f4b71Sopenharmony_ci向网络管理报告网络处于可用状态,使用callback方式作为异步方法。 1288e41f4b71Sopenharmony_ci 1289e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.GET_NETWORK_INFO 和 ohos.permission.INTERNET 1290e41f4b71Sopenharmony_ci 1291e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 1292e41f4b71Sopenharmony_ci 1293e41f4b71Sopenharmony_ci**参数:** 1294e41f4b71Sopenharmony_ci 1295e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1296e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 1297e41f4b71Sopenharmony_ci| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄,参考[NetHandle](#nethandle)。 | 1298e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 回调函数。当向网络管理报告网络处于可用状态成功,error为undefined,否则为错误对象。 | 1299e41f4b71Sopenharmony_ci 1300e41f4b71Sopenharmony_ci**错误码:** 1301e41f4b71Sopenharmony_ci 1302e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 1303e41f4b71Sopenharmony_ci 1304e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1305e41f4b71Sopenharmony_ci| ------- | ----------------------------- | 1306e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1307e41f4b71Sopenharmony_ci| 401 | Parameter error. | 1308e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 1309e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 1310e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 1311e41f4b71Sopenharmony_ci 1312e41f4b71Sopenharmony_ci**示例:** 1313e41f4b71Sopenharmony_ci 1314e41f4b71Sopenharmony_ci```ts 1315e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 1316e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1317e41f4b71Sopenharmony_ci 1318e41f4b71Sopenharmony_ciconnection.getDefaultNet().then((netHandle: connection.NetHandle) => { 1319e41f4b71Sopenharmony_ci connection.reportNetConnected(netHandle, (error: BusinessError) => { 1320e41f4b71Sopenharmony_ci console.log(JSON.stringify(error)); 1321e41f4b71Sopenharmony_ci }); 1322e41f4b71Sopenharmony_ci}); 1323e41f4b71Sopenharmony_ci``` 1324e41f4b71Sopenharmony_ci 1325e41f4b71Sopenharmony_ci## connection.reportNetConnected 1326e41f4b71Sopenharmony_ci 1327e41f4b71Sopenharmony_cireportNetConnected(netHandle: NetHandle): Promise\<void\> 1328e41f4b71Sopenharmony_ci 1329e41f4b71Sopenharmony_ci向网络管理报告网络处于可用状态,使用Promise方式作为异步方法。 1330e41f4b71Sopenharmony_ci 1331e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.GET_NETWORK_INFO 和 ohos.permission.INTERNET 1332e41f4b71Sopenharmony_ci 1333e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 1334e41f4b71Sopenharmony_ci 1335e41f4b71Sopenharmony_ci**参数:** 1336e41f4b71Sopenharmony_ci 1337e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1338e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 1339e41f4b71Sopenharmony_ci| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄,参考[NetHandle](#nethandle)。 | 1340e41f4b71Sopenharmony_ci 1341e41f4b71Sopenharmony_ci**返回值:** 1342e41f4b71Sopenharmony_ci| 类型 | 说明 | 1343e41f4b71Sopenharmony_ci| -------- | -------- | 1344e41f4b71Sopenharmony_ci| Promise<void> | 无返回值的Promise对象。 | 1345e41f4b71Sopenharmony_ci 1346e41f4b71Sopenharmony_ci**错误码:** 1347e41f4b71Sopenharmony_ci 1348e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 1349e41f4b71Sopenharmony_ci 1350e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1351e41f4b71Sopenharmony_ci| ------- | --------------------------------- | 1352e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1353e41f4b71Sopenharmony_ci| 401 | Parameter error. | 1354e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 1355e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 1356e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 1357e41f4b71Sopenharmony_ci 1358e41f4b71Sopenharmony_ci**示例:** 1359e41f4b71Sopenharmony_ci 1360e41f4b71Sopenharmony_ci```ts 1361e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 1362e41f4b71Sopenharmony_ci 1363e41f4b71Sopenharmony_ciconnection.getDefaultNet().then((netHandle: connection.NetHandle) => { 1364e41f4b71Sopenharmony_ci connection.reportNetConnected(netHandle).then(() => { 1365e41f4b71Sopenharmony_ci console.log(`report success`); 1366e41f4b71Sopenharmony_ci }); 1367e41f4b71Sopenharmony_ci}); 1368e41f4b71Sopenharmony_ci``` 1369e41f4b71Sopenharmony_ci 1370e41f4b71Sopenharmony_ci## connection.reportNetDisconnected 1371e41f4b71Sopenharmony_ci 1372e41f4b71Sopenharmony_cireportNetDisconnected(netHandle: NetHandle, callback: AsyncCallback<void>): void 1373e41f4b71Sopenharmony_ci 1374e41f4b71Sopenharmony_ci向网络管理报告网络处于不可用状态,使用callback方式作为异步方法。 1375e41f4b71Sopenharmony_ci 1376e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.GET_NETWORK_INFO 和 ohos.permission.INTERNET 1377e41f4b71Sopenharmony_ci 1378e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 1379e41f4b71Sopenharmony_ci 1380e41f4b71Sopenharmony_ci**参数:** 1381e41f4b71Sopenharmony_ci 1382e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1383e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 1384e41f4b71Sopenharmony_ci| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄,参考[NetHandle](#nethandle)。 | 1385e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 回调函数。当向网络管理报告网络处于不可用状态成功,error为undefined,否则为错误对象。 | 1386e41f4b71Sopenharmony_ci 1387e41f4b71Sopenharmony_ci**错误码:** 1388e41f4b71Sopenharmony_ci 1389e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 1390e41f4b71Sopenharmony_ci 1391e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1392e41f4b71Sopenharmony_ci| ------- | ----------------------------- | 1393e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1394e41f4b71Sopenharmony_ci| 401 | Parameter error. | 1395e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 1396e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 1397e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 1398e41f4b71Sopenharmony_ci 1399e41f4b71Sopenharmony_ci**示例:** 1400e41f4b71Sopenharmony_ci 1401e41f4b71Sopenharmony_ci```ts 1402e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 1403e41f4b71Sopenharmony_ci 1404e41f4b71Sopenharmony_ciconnection.getDefaultNet().then((netHandle: connection.NetHandle) => { 1405e41f4b71Sopenharmony_ci connection.reportNetDisconnected(netHandle).then( () => { 1406e41f4b71Sopenharmony_ci console.log(`report success`); 1407e41f4b71Sopenharmony_ci }); 1408e41f4b71Sopenharmony_ci}); 1409e41f4b71Sopenharmony_ci``` 1410e41f4b71Sopenharmony_ci 1411e41f4b71Sopenharmony_ci## connection.reportNetDisconnected 1412e41f4b71Sopenharmony_ci 1413e41f4b71Sopenharmony_cireportNetDisconnected(netHandle: NetHandle): Promise<void> 1414e41f4b71Sopenharmony_ci 1415e41f4b71Sopenharmony_ci向网络管理报告网络处于不可用状态,使用Promise方式作为异步方法。 1416e41f4b71Sopenharmony_ci 1417e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.GET_NETWORK_INFO 和 ohos.permission.INTERNET 1418e41f4b71Sopenharmony_ci 1419e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 1420e41f4b71Sopenharmony_ci 1421e41f4b71Sopenharmony_ci**参数:** 1422e41f4b71Sopenharmony_ci 1423e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1424e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 1425e41f4b71Sopenharmony_ci| netHandle | [NetHandle](#nethandle) | 是 | 数据网络的句柄,参考[NetHandle](#nethandle)。 | 1426e41f4b71Sopenharmony_ci 1427e41f4b71Sopenharmony_ci**返回值:** 1428e41f4b71Sopenharmony_ci| 类型 | 说明 | 1429e41f4b71Sopenharmony_ci| -------- | -------- | 1430e41f4b71Sopenharmony_ci| Promise<void> | 无返回值的Promise对象。 | 1431e41f4b71Sopenharmony_ci 1432e41f4b71Sopenharmony_ci**错误码:** 1433e41f4b71Sopenharmony_ci 1434e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 1435e41f4b71Sopenharmony_ci 1436e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1437e41f4b71Sopenharmony_ci| ------- | --------------------------------- | 1438e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1439e41f4b71Sopenharmony_ci| 401 | Parameter error. | 1440e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 1441e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 1442e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 1443e41f4b71Sopenharmony_ci 1444e41f4b71Sopenharmony_ci**示例:** 1445e41f4b71Sopenharmony_ci 1446e41f4b71Sopenharmony_ci```ts 1447e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 1448e41f4b71Sopenharmony_ci 1449e41f4b71Sopenharmony_ciconnection.getDefaultNet().then((netHandle: connection.NetHandle) => { 1450e41f4b71Sopenharmony_ci connection.reportNetDisconnected(netHandle).then( () => { 1451e41f4b71Sopenharmony_ci console.log(`report success`); 1452e41f4b71Sopenharmony_ci }); 1453e41f4b71Sopenharmony_ci}); 1454e41f4b71Sopenharmony_ci``` 1455e41f4b71Sopenharmony_ci 1456e41f4b71Sopenharmony_ci## connection.getAddressesByName 1457e41f4b71Sopenharmony_ci 1458e41f4b71Sopenharmony_cigetAddressesByName(host: string, callback: AsyncCallback\<Array\<NetAddress>>): void 1459e41f4b71Sopenharmony_ci 1460e41f4b71Sopenharmony_ci使用对应网络解析主机名以获取所有IP地址,使用callback方式作为异步方法。 1461e41f4b71Sopenharmony_ci 1462e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 1463e41f4b71Sopenharmony_ci 1464e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 1465e41f4b71Sopenharmony_ci 1466e41f4b71Sopenharmony_ci**参数:** 1467e41f4b71Sopenharmony_ci 1468e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1469e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------- | ---- | ------------------------------------------------------------ | 1470e41f4b71Sopenharmony_ci| host | string | 是 | 需要解析的主机名。 | 1471e41f4b71Sopenharmony_ci| callback | AsyncCallback\<Array\<[NetAddress](#netaddress)>> | 是 | 回调函数。当使用默认网络解析主机名成功获取所有IP地址,error为undefined,data为获取到的所有IP地址;否则为错误对象。 | 1472e41f4b71Sopenharmony_ci 1473e41f4b71Sopenharmony_ci**错误码:** 1474e41f4b71Sopenharmony_ci 1475e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 1476e41f4b71Sopenharmony_ci 1477e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1478e41f4b71Sopenharmony_ci| ------- | --------------------------------- | 1479e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1480e41f4b71Sopenharmony_ci| 401 | Parameter error. | 1481e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 1482e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 1483e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 1484e41f4b71Sopenharmony_ci 1485e41f4b71Sopenharmony_ci**示例:** 1486e41f4b71Sopenharmony_ci 1487e41f4b71Sopenharmony_ci```ts 1488e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 1489e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1490e41f4b71Sopenharmony_ci 1491e41f4b71Sopenharmony_ciconnection.getAddressesByName("xxxx", (error: BusinessError, data: connection.NetAddress[]) => { 1492e41f4b71Sopenharmony_ci if (error) { 1493e41f4b71Sopenharmony_ci console.error(`Failed to get addresses. Code:${error.code}, message:${error.message}`); 1494e41f4b71Sopenharmony_ci return; 1495e41f4b71Sopenharmony_ci } 1496e41f4b71Sopenharmony_ci console.info("Succeeded to get data: " + JSON.stringify(data)); 1497e41f4b71Sopenharmony_ci}); 1498e41f4b71Sopenharmony_ci``` 1499e41f4b71Sopenharmony_ci 1500e41f4b71Sopenharmony_ci## connection.getAddressesByName 1501e41f4b71Sopenharmony_ci 1502e41f4b71Sopenharmony_cigetAddressesByName(host: string): Promise\<Array\<NetAddress\>\> 1503e41f4b71Sopenharmony_ci 1504e41f4b71Sopenharmony_ci使用对应网络解析主机名以获取所有IP地址,使用Promise方式作为异步方法。 1505e41f4b71Sopenharmony_ci 1506e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 1507e41f4b71Sopenharmony_ci 1508e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 1509e41f4b71Sopenharmony_ci 1510e41f4b71Sopenharmony_ci**参数:** 1511e41f4b71Sopenharmony_ci 1512e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1513e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------ | 1514e41f4b71Sopenharmony_ci| host | string | 是 | 需要解析的主机名。 | 1515e41f4b71Sopenharmony_ci 1516e41f4b71Sopenharmony_ci**返回值:** 1517e41f4b71Sopenharmony_ci 1518e41f4b71Sopenharmony_ci| 类型 | 说明 | 1519e41f4b71Sopenharmony_ci| ------------------------------------------- | ----------------------------- | 1520e41f4b71Sopenharmony_ci| Promise\<Array\<[NetAddress](#netaddress)>> | 以Promise形式返回所有IP地址。 | 1521e41f4b71Sopenharmony_ci 1522e41f4b71Sopenharmony_ci**错误码:** 1523e41f4b71Sopenharmony_ci 1524e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 1525e41f4b71Sopenharmony_ci 1526e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1527e41f4b71Sopenharmony_ci| ------- | ----------------------------- | 1528e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1529e41f4b71Sopenharmony_ci| 401 | Parameter error. | 1530e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 1531e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 1532e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 1533e41f4b71Sopenharmony_ci 1534e41f4b71Sopenharmony_ci**示例:** 1535e41f4b71Sopenharmony_ci 1536e41f4b71Sopenharmony_ci```ts 1537e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 1538e41f4b71Sopenharmony_ci 1539e41f4b71Sopenharmony_ciconnection.getAddressesByName("xxxx").then((data: connection.NetAddress[]) => { 1540e41f4b71Sopenharmony_ci console.info("Succeeded to get data: " + JSON.stringify(data)); 1541e41f4b71Sopenharmony_ci}); 1542e41f4b71Sopenharmony_ci``` 1543e41f4b71Sopenharmony_ci 1544e41f4b71Sopenharmony_ci## connection.addCustomDnsRule<sup>11+</sup> 1545e41f4b71Sopenharmony_ci 1546e41f4b71Sopenharmony_ciaddCustomDnsRule(host: string, ip: Array\<string\>, callback: AsyncCallback\<void\>): void 1547e41f4b71Sopenharmony_ci 1548e41f4b71Sopenharmony_ci为当前应用程序添加自定义host和对应的IP地址的映射,使用callback方式作为异步方法。 1549e41f4b71Sopenharmony_ci 1550e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 1551e41f4b71Sopenharmony_ci 1552e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 1553e41f4b71Sopenharmony_ci 1554e41f4b71Sopenharmony_ci**参数:** 1555e41f4b71Sopenharmony_ci 1556e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1557e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------------------------------------------ | 1558e41f4b71Sopenharmony_ci| host | string | 是 | 需要自定义解析的主机名。 | 1559e41f4b71Sopenharmony_ci| ip | Array\<string> | 是 | 主机名所映射的IP地址列表。 | 1560e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当为当前应用程序添加自定义host和对应的ip地址的映射成功,error为undefined,否则为错误对象。 | 1561e41f4b71Sopenharmony_ci 1562e41f4b71Sopenharmony_ci**错误码:** 1563e41f4b71Sopenharmony_ci 1564e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 1565e41f4b71Sopenharmony_ci 1566e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1567e41f4b71Sopenharmony_ci| ------- | --------------------------------- | 1568e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1569e41f4b71Sopenharmony_ci| 401 | Parameter error. | 1570e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 1571e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 1572e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 1573e41f4b71Sopenharmony_ci 1574e41f4b71Sopenharmony_ci**示例:** 1575e41f4b71Sopenharmony_ci 1576e41f4b71Sopenharmony_ci```ts 1577e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 1578e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1579e41f4b71Sopenharmony_ci 1580e41f4b71Sopenharmony_ciconnection.addCustomDnsRule("xxxx", ["xx.xx.xx.xx","xx.xx.xx.xx"], (error: BusinessError, data: void) => { 1581e41f4b71Sopenharmony_ci if (error) { 1582e41f4b71Sopenharmony_ci console.error(`Failed to get add custom dns rule. Code:${error.code}, message:${error.message}`); 1583e41f4b71Sopenharmony_ci return; 1584e41f4b71Sopenharmony_ci } 1585e41f4b71Sopenharmony_ci console.info("Succeeded to get data: " + JSON.stringify(data)); 1586e41f4b71Sopenharmony_ci}) 1587e41f4b71Sopenharmony_ci``` 1588e41f4b71Sopenharmony_ci 1589e41f4b71Sopenharmony_ci## connection.addCustomDnsRule<sup>11+</sup> 1590e41f4b71Sopenharmony_ci 1591e41f4b71Sopenharmony_ciaddCustomDnsRule(host: string, ip: Array\<string\>): Promise\<void\> 1592e41f4b71Sopenharmony_ci 1593e41f4b71Sopenharmony_ci为当前应用程序添加自定义host和对应的IP地址的映射,使用Promise方式作为异步方法。 1594e41f4b71Sopenharmony_ci 1595e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 1596e41f4b71Sopenharmony_ci 1597e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 1598e41f4b71Sopenharmony_ci 1599e41f4b71Sopenharmony_ci**参数:** 1600e41f4b71Sopenharmony_ci 1601e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1602e41f4b71Sopenharmony_ci| ------ | -------------- | ---- | -------------------------- | 1603e41f4b71Sopenharmony_ci| host | string | 是 | 需要自定义解析的主机名。 | 1604e41f4b71Sopenharmony_ci| ip | Array\<string> | 是 | 主机名所映射的IP地址列表。 | 1605e41f4b71Sopenharmony_ci 1606e41f4b71Sopenharmony_ci**返回值:** 1607e41f4b71Sopenharmony_ci 1608e41f4b71Sopenharmony_ci| 类型 | 说明 | 1609e41f4b71Sopenharmony_ci| ---------------------- | ----------------------- | 1610e41f4b71Sopenharmony_ci| Promise\<Array\<void>> | 无返回值的Promise对象。 | 1611e41f4b71Sopenharmony_ci 1612e41f4b71Sopenharmony_ci**错误码:** 1613e41f4b71Sopenharmony_ci 1614e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 1615e41f4b71Sopenharmony_ci 1616e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1617e41f4b71Sopenharmony_ci| ------- | --------------------------------- | 1618e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1619e41f4b71Sopenharmony_ci| 401 | Parameter error. | 1620e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 1621e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 1622e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 1623e41f4b71Sopenharmony_ci 1624e41f4b71Sopenharmony_ci**示例:** 1625e41f4b71Sopenharmony_ci 1626e41f4b71Sopenharmony_ci```ts 1627e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 1628e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1629e41f4b71Sopenharmony_ci 1630e41f4b71Sopenharmony_ciconnection.addCustomDnsRule("xxxx", ["xx.xx.xx.xx","xx.xx.xx.xx"]).then(() => { 1631e41f4b71Sopenharmony_ci console.info("success"); 1632e41f4b71Sopenharmony_ci}).catch((error: BusinessError) => { 1633e41f4b71Sopenharmony_ci console.error(JSON.stringify(error)); 1634e41f4b71Sopenharmony_ci}) 1635e41f4b71Sopenharmony_ci``` 1636e41f4b71Sopenharmony_ci 1637e41f4b71Sopenharmony_ci## connection.removeCustomDnsRule<sup>11+</sup> 1638e41f4b71Sopenharmony_ci 1639e41f4b71Sopenharmony_ciremoveCustomDnsRule(host: string, callback: AsyncCallback\<void\>): void 1640e41f4b71Sopenharmony_ci 1641e41f4b71Sopenharmony_ci删除当前应用程序中对应host的自定义DNS规则,使用callback方式作为异步方法。 1642e41f4b71Sopenharmony_ci 1643e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 1644e41f4b71Sopenharmony_ci 1645e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 1646e41f4b71Sopenharmony_ci 1647e41f4b71Sopenharmony_ci**参数:** 1648e41f4b71Sopenharmony_ci 1649e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1650e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------------------------------------------ | 1651e41f4b71Sopenharmony_ci| host | string | 是 | 需要删除自定义DNS规则的主机名。 | 1652e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当删除当前应用程序中对应host的自定义DNS规则成功,error为undefined,否则为错误对象。 | 1653e41f4b71Sopenharmony_ci 1654e41f4b71Sopenharmony_ci**错误码:** 1655e41f4b71Sopenharmony_ci 1656e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 1657e41f4b71Sopenharmony_ci 1658e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1659e41f4b71Sopenharmony_ci| ------- | ----------------------------- | 1660e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1661e41f4b71Sopenharmony_ci| 401 | Parameter error. | 1662e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 1663e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 1664e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 1665e41f4b71Sopenharmony_ci 1666e41f4b71Sopenharmony_ci**示例:** 1667e41f4b71Sopenharmony_ci 1668e41f4b71Sopenharmony_ci```ts 1669e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 1670e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1671e41f4b71Sopenharmony_ci 1672e41f4b71Sopenharmony_ciconnection.removeCustomDnsRule("xxxx", (error: BusinessError, data: void) => { 1673e41f4b71Sopenharmony_ci if (error) { 1674e41f4b71Sopenharmony_ci console.error(`Failed to remove custom dns rule. Code:${error.code}, message:${error.message}`); 1675e41f4b71Sopenharmony_ci return; 1676e41f4b71Sopenharmony_ci } 1677e41f4b71Sopenharmony_ci console.info("Succeeded to get data: " + JSON.stringify(data)); 1678e41f4b71Sopenharmony_ci}) 1679e41f4b71Sopenharmony_ci``` 1680e41f4b71Sopenharmony_ci 1681e41f4b71Sopenharmony_ci## connection.removeCustomDnsRule<sup>11+</sup> 1682e41f4b71Sopenharmony_ci 1683e41f4b71Sopenharmony_ciremoveCustomDnsRule(host: string): Promise\<void\> 1684e41f4b71Sopenharmony_ci 1685e41f4b71Sopenharmony_ci删除当前应用程序中对应host的自定义DNS规则,使用Promise方式作为异步方法。 1686e41f4b71Sopenharmony_ci 1687e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 1688e41f4b71Sopenharmony_ci 1689e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 1690e41f4b71Sopenharmony_ci 1691e41f4b71Sopenharmony_ci**参数:** 1692e41f4b71Sopenharmony_ci 1693e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1694e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------------------- | 1695e41f4b71Sopenharmony_ci| host | string | 是 | 需要删除自定义DNS规则的主机名。 | 1696e41f4b71Sopenharmony_ci 1697e41f4b71Sopenharmony_ci**返回值:** 1698e41f4b71Sopenharmony_ci 1699e41f4b71Sopenharmony_ci| 类型 | 说明 | 1700e41f4b71Sopenharmony_ci| ---------------------- | ----------------------- | 1701e41f4b71Sopenharmony_ci| Promise\<Array\<void>> | 无返回值的Promise对象。 | 1702e41f4b71Sopenharmony_ci 1703e41f4b71Sopenharmony_ci**错误码:** 1704e41f4b71Sopenharmony_ci 1705e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 1706e41f4b71Sopenharmony_ci 1707e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1708e41f4b71Sopenharmony_ci| ------- | --------------------------------- | 1709e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1710e41f4b71Sopenharmony_ci| 401 | Parameter error. | 1711e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 1712e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 1713e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 1714e41f4b71Sopenharmony_ci 1715e41f4b71Sopenharmony_ci**示例:** 1716e41f4b71Sopenharmony_ci 1717e41f4b71Sopenharmony_ci```ts 1718e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 1719e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1720e41f4b71Sopenharmony_ci 1721e41f4b71Sopenharmony_ciconnection.removeCustomDnsRule("xxxx").then(() => { 1722e41f4b71Sopenharmony_ci console.log("success"); 1723e41f4b71Sopenharmony_ci}).catch((error: BusinessError) => { 1724e41f4b71Sopenharmony_ci console.log(JSON.stringify(error)); 1725e41f4b71Sopenharmony_ci}) 1726e41f4b71Sopenharmony_ci``` 1727e41f4b71Sopenharmony_ci 1728e41f4b71Sopenharmony_ci## connection.clearCustomDnsRules<sup>11+</sup> 1729e41f4b71Sopenharmony_ci 1730e41f4b71Sopenharmony_ciclearCustomDnsRules(callback: AsyncCallback\<void\>): void 1731e41f4b71Sopenharmony_ci 1732e41f4b71Sopenharmony_ci删除当前应用程序的所有的自定义DNS规则,使用callback方式作为异步方法。 1733e41f4b71Sopenharmony_ci 1734e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 1735e41f4b71Sopenharmony_ci 1736e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 1737e41f4b71Sopenharmony_ci 1738e41f4b71Sopenharmony_ci**参数:** 1739e41f4b71Sopenharmony_ci 1740e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1741e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------------------------------------------ | 1742e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当删除当前应用程序的所有的自定义DNS规则成功,error为undefined,否则为错误对象。 | 1743e41f4b71Sopenharmony_ci 1744e41f4b71Sopenharmony_ci**错误码:** 1745e41f4b71Sopenharmony_ci 1746e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 1747e41f4b71Sopenharmony_ci 1748e41f4b71Sopenharmony_ci| 错误码ID| 错误信息 | 1749e41f4b71Sopenharmony_ci| ------- | --------------------------------- | 1750e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1751e41f4b71Sopenharmony_ci| 401 | Parameter error. | 1752e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 1753e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 1754e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 1755e41f4b71Sopenharmony_ci 1756e41f4b71Sopenharmony_ci**示例:** 1757e41f4b71Sopenharmony_ci 1758e41f4b71Sopenharmony_ci```ts 1759e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 1760e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1761e41f4b71Sopenharmony_ci 1762e41f4b71Sopenharmony_ciconnection.clearCustomDnsRules((error: BusinessError, data: void) => { 1763e41f4b71Sopenharmony_ci if (error) { 1764e41f4b71Sopenharmony_ci console.error(`Failed to clear custom dns rules. Code:${error.code}, message:${error.message}`); 1765e41f4b71Sopenharmony_ci return; 1766e41f4b71Sopenharmony_ci } 1767e41f4b71Sopenharmony_ci console.info("Succeeded to get data: " + JSON.stringify(data)); 1768e41f4b71Sopenharmony_ci}) 1769e41f4b71Sopenharmony_ci``` 1770e41f4b71Sopenharmony_ci 1771e41f4b71Sopenharmony_ci## connection.clearCustomDnsRules<sup>11+</sup> 1772e41f4b71Sopenharmony_ci 1773e41f4b71Sopenharmony_ciclearCustomDnsRules(): Promise\<void\> 1774e41f4b71Sopenharmony_ci 1775e41f4b71Sopenharmony_ci删除当前应用程序的所有的自定义DNS规则,使用Promise方式作为异步方法。 1776e41f4b71Sopenharmony_ci 1777e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 1778e41f4b71Sopenharmony_ci 1779e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 1780e41f4b71Sopenharmony_ci 1781e41f4b71Sopenharmony_ci**返回值:** 1782e41f4b71Sopenharmony_ci 1783e41f4b71Sopenharmony_ci| 类型 | 说明 | 1784e41f4b71Sopenharmony_ci| ---------------------- | ----------------------- | 1785e41f4b71Sopenharmony_ci| Promise\<void\> | 无返回值的Promise对象。 | 1786e41f4b71Sopenharmony_ci 1787e41f4b71Sopenharmony_ci**错误码:** 1788e41f4b71Sopenharmony_ci 1789e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 1790e41f4b71Sopenharmony_ci 1791e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1792e41f4b71Sopenharmony_ci| ------- | --------------------------------- | 1793e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1794e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 1795e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 1796e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 1797e41f4b71Sopenharmony_ci 1798e41f4b71Sopenharmony_ci**示例:** 1799e41f4b71Sopenharmony_ci 1800e41f4b71Sopenharmony_ci```ts 1801e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 1802e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1803e41f4b71Sopenharmony_ci 1804e41f4b71Sopenharmony_ciconnection.clearCustomDnsRules().then(() => { 1805e41f4b71Sopenharmony_ci console.log("success"); 1806e41f4b71Sopenharmony_ci}).catch((error: BusinessError) => { 1807e41f4b71Sopenharmony_ci console.log(JSON.stringify(error)); 1808e41f4b71Sopenharmony_ci}) 1809e41f4b71Sopenharmony_ci``` 1810e41f4b71Sopenharmony_ci 1811e41f4b71Sopenharmony_ci 1812e41f4b71Sopenharmony_ci## NetConnection 1813e41f4b71Sopenharmony_ci 1814e41f4b71Sopenharmony_ci网络连接的句柄。 1815e41f4b71Sopenharmony_ci 1816e41f4b71Sopenharmony_ci> **说明:** 1817e41f4b71Sopenharmony_ci> 设备从无网络到有网络会触发netAvailable事件、netCapabilitiesChange事件和netConnectionPropertiesChange事件; 1818e41f4b71Sopenharmony_ci> 设备从有网络到无网络状态会触发netLost事件; 1819e41f4b71Sopenharmony_ci> 设备从WiFi到蜂窝会触发netLost事件(WiFi丢失)之后触发 netAvailable事件(蜂窝可用); 1820e41f4b71Sopenharmony_ci 1821e41f4b71Sopenharmony_ci### register 1822e41f4b71Sopenharmony_ci 1823e41f4b71Sopenharmony_ciregister(callback: AsyncCallback\<void>): void 1824e41f4b71Sopenharmony_ci 1825e41f4b71Sopenharmony_ci订阅指定网络状态变化的通知。 1826e41f4b71Sopenharmony_ci 1827e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.GET_NETWORK_INFO 1828e41f4b71Sopenharmony_ci 1829e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1830e41f4b71Sopenharmony_ci 1831e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 1832e41f4b71Sopenharmony_ci 1833e41f4b71Sopenharmony_ci**参数:** 1834e41f4b71Sopenharmony_ci 1835e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1836e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------------------------------------------ | 1837e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当订阅指定网络状态变化的通知成功,error为undefined,否则为错误对象。 | 1838e41f4b71Sopenharmony_ci 1839e41f4b71Sopenharmony_ci**错误码:** 1840e41f4b71Sopenharmony_ci 1841e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 1842e41f4b71Sopenharmony_ci 1843e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1844e41f4b71Sopenharmony_ci| ------- | ---------------------------------------------------- | 1845e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1846e41f4b71Sopenharmony_ci| 401 | Parameter error. | 1847e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 1848e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 1849e41f4b71Sopenharmony_ci| 2101008 | The callback already exists. | 1850e41f4b71Sopenharmony_ci| 2101022 | The number of requests exceeded the maximum allowed. | 1851e41f4b71Sopenharmony_ci 1852e41f4b71Sopenharmony_ci**示例:** 1853e41f4b71Sopenharmony_ci 1854e41f4b71Sopenharmony_ci```ts 1855e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 1856e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1857e41f4b71Sopenharmony_ci 1858e41f4b71Sopenharmony_cilet netCon: connection.NetConnection = connection.createNetConnection(); 1859e41f4b71Sopenharmony_cinetCon.register((error: BusinessError) => { 1860e41f4b71Sopenharmony_ci console.log(JSON.stringify(error)); 1861e41f4b71Sopenharmony_ci}); 1862e41f4b71Sopenharmony_ci``` 1863e41f4b71Sopenharmony_ci 1864e41f4b71Sopenharmony_ci### unregister 1865e41f4b71Sopenharmony_ci 1866e41f4b71Sopenharmony_ciunregister(callback: AsyncCallback\<void>): void 1867e41f4b71Sopenharmony_ci 1868e41f4b71Sopenharmony_ci取消订阅默认网络状态变化的通知。 1869e41f4b71Sopenharmony_ci 1870e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1871e41f4b71Sopenharmony_ci 1872e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 1873e41f4b71Sopenharmony_ci 1874e41f4b71Sopenharmony_ci**参数:** 1875e41f4b71Sopenharmony_ci 1876e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1877e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------------------------------------------ | 1878e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当取消订阅指定网络状态变化的通知成功,error为undefined,否则为错误对象。 | 1879e41f4b71Sopenharmony_ci 1880e41f4b71Sopenharmony_ci**错误码:** 1881e41f4b71Sopenharmony_ci 1882e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 1883e41f4b71Sopenharmony_ci 1884e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1885e41f4b71Sopenharmony_ci| ------- | --------------------------------- | 1886e41f4b71Sopenharmony_ci| 401 | Parameter error. | 1887e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 1888e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 1889e41f4b71Sopenharmony_ci| 2101007 | The callback does not exists. | 1890e41f4b71Sopenharmony_ci 1891e41f4b71Sopenharmony_ci**示例:** 1892e41f4b71Sopenharmony_ci 1893e41f4b71Sopenharmony_ci```ts 1894e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 1895e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1896e41f4b71Sopenharmony_ci 1897e41f4b71Sopenharmony_cilet netCon: connection.NetConnection = connection.createNetConnection(); 1898e41f4b71Sopenharmony_cinetCon.unregister((error: BusinessError) => { 1899e41f4b71Sopenharmony_ci console.log(JSON.stringify(error)); 1900e41f4b71Sopenharmony_ci}); 1901e41f4b71Sopenharmony_ci``` 1902e41f4b71Sopenharmony_ci 1903e41f4b71Sopenharmony_ci### on('netAvailable') 1904e41f4b71Sopenharmony_ci 1905e41f4b71Sopenharmony_cion(type: 'netAvailable', callback: Callback\<NetHandle>): void 1906e41f4b71Sopenharmony_ci 1907e41f4b71Sopenharmony_ci订阅网络可用事件。此接口调用之前需要先调用register接口,使用unregister取消订阅默认网络状态变化的通知。 1908e41f4b71Sopenharmony_ci 1909e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1910e41f4b71Sopenharmony_ci 1911e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 1912e41f4b71Sopenharmony_ci 1913e41f4b71Sopenharmony_ci**参数:** 1914e41f4b71Sopenharmony_ci 1915e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1916e41f4b71Sopenharmony_ci| -------- | ---------------------------------- | ---- | ------------------------------------------------------------ | 1917e41f4b71Sopenharmony_ci| type | string | 是 | 订阅事件,固定为'netAvailable'。<br>netAvailable:数据网络可用事件。 | 1918e41f4b71Sopenharmony_ci| callback | Callback\<[NetHandle](#nethandle)> | 是 | 回调函数,返回数据网络句柄。| 1919e41f4b71Sopenharmony_ci 1920e41f4b71Sopenharmony_ci**示例:** 1921e41f4b71Sopenharmony_ci 1922e41f4b71Sopenharmony_ci```ts 1923e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 1924e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1925e41f4b71Sopenharmony_ci 1926e41f4b71Sopenharmony_ci// 创建NetConnection对象 1927e41f4b71Sopenharmony_cilet netCon: connection.NetConnection = connection.createNetConnection(); 1928e41f4b71Sopenharmony_ci 1929e41f4b71Sopenharmony_ci// 先使用register接口注册订阅事件 1930e41f4b71Sopenharmony_cinetCon.register((error: BusinessError) => { 1931e41f4b71Sopenharmony_ci console.log(JSON.stringify(error)); 1932e41f4b71Sopenharmony_ci}); 1933e41f4b71Sopenharmony_ci 1934e41f4b71Sopenharmony_ci// 订阅网络可用事件。调用register后,才能接收到此事件通知 1935e41f4b71Sopenharmony_cinetCon.on('netAvailable', (data: connection.NetHandle) => { 1936e41f4b71Sopenharmony_ci console.info("Succeeded to get data: " + JSON.stringify(data)); 1937e41f4b71Sopenharmony_ci}); 1938e41f4b71Sopenharmony_ci 1939e41f4b71Sopenharmony_ci// 使用unregister接口取消订阅 1940e41f4b71Sopenharmony_cinetCon.unregister((error: BusinessError) => { 1941e41f4b71Sopenharmony_ci console.log(JSON.stringify(error)); 1942e41f4b71Sopenharmony_ci}); 1943e41f4b71Sopenharmony_ci``` 1944e41f4b71Sopenharmony_ci 1945e41f4b71Sopenharmony_ci### on('netBlockStatusChange') 1946e41f4b71Sopenharmony_ci 1947e41f4b71Sopenharmony_cion(type: 'netBlockStatusChange', callback: Callback\<NetBlockStatusInfo>): void 1948e41f4b71Sopenharmony_ci 1949e41f4b71Sopenharmony_ci订阅网络阻塞状态事件。此接口调用之前需要先调用register接口,使用unregister取消订阅默认网络状态变化的通知。 1950e41f4b71Sopenharmony_ci 1951e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 1952e41f4b71Sopenharmony_ci 1953e41f4b71Sopenharmony_ci**参数:** 1954e41f4b71Sopenharmony_ci 1955e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1956e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 1957e41f4b71Sopenharmony_ci| type | string | 是 | 订阅事件,固定为'netBlockStatusChange'。<br/>netBlockStatusChange:网络阻塞状态事件。 | 1958e41f4b71Sopenharmony_ci| callback | Callback<[NetBlockStatusInfo](#netblockstatusinfo11)> | 是 | 回调函数,获取网络阻塞状态信息。| 1959e41f4b71Sopenharmony_ci 1960e41f4b71Sopenharmony_ci**示例:** 1961e41f4b71Sopenharmony_ci 1962e41f4b71Sopenharmony_ci```ts 1963e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 1964e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1965e41f4b71Sopenharmony_ci 1966e41f4b71Sopenharmony_ci// 创建NetConnection对象 1967e41f4b71Sopenharmony_cilet netCon: connection.NetConnection = connection.createNetConnection(); 1968e41f4b71Sopenharmony_ci 1969e41f4b71Sopenharmony_ci// 先使用register接口注册订阅事件 1970e41f4b71Sopenharmony_cinetCon.register((error: BusinessError) => { 1971e41f4b71Sopenharmony_ci console.log(JSON.stringify(error)); 1972e41f4b71Sopenharmony_ci}); 1973e41f4b71Sopenharmony_ci 1974e41f4b71Sopenharmony_ci// 订阅网络阻塞状态事件。调用register后,才能接收到此事件通知 1975e41f4b71Sopenharmony_cinetCon.on('netBlockStatusChange', (data: connection.NetBlockStatusInfo) => { 1976e41f4b71Sopenharmony_ci console.info("Succeeded to get data: " + JSON.stringify(data)); 1977e41f4b71Sopenharmony_ci}); 1978e41f4b71Sopenharmony_ci 1979e41f4b71Sopenharmony_ci// 使用unregister接口取消订阅 1980e41f4b71Sopenharmony_cinetCon.unregister((error: BusinessError) => { 1981e41f4b71Sopenharmony_ci console.log(JSON.stringify(error)); 1982e41f4b71Sopenharmony_ci}); 1983e41f4b71Sopenharmony_ci``` 1984e41f4b71Sopenharmony_ci 1985e41f4b71Sopenharmony_ci### on('netCapabilitiesChange') 1986e41f4b71Sopenharmony_ci 1987e41f4b71Sopenharmony_cion(type: 'netCapabilitiesChange', callback: Callback\<NetCapabilityInfo\>): void 1988e41f4b71Sopenharmony_ci 1989e41f4b71Sopenharmony_ci订阅网络能力变化事件。此接口调用之前需要先调用register接口,使用unregister取消订阅默认网络状态变化的通知。 1990e41f4b71Sopenharmony_ci 1991e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1992e41f4b71Sopenharmony_ci 1993e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 1994e41f4b71Sopenharmony_ci 1995e41f4b71Sopenharmony_ci**参数:** 1996e41f4b71Sopenharmony_ci 1997e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1998e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 1999e41f4b71Sopenharmony_ci| type | string | 是 | 订阅事件,固定为'netCapabilitiesChange'。<br/>netCapabilitiesChange:网络能力变化事件。 | 2000e41f4b71Sopenharmony_ci| callback | Callback<[NetCapabilityInfo](#netcapabilityinfo10)> | 是 | 回调函数,返回数据网络句柄(netHandle)和网络的能力信息(netCap)。| 2001e41f4b71Sopenharmony_ci 2002e41f4b71Sopenharmony_ci**示例:** 2003e41f4b71Sopenharmony_ci 2004e41f4b71Sopenharmony_ci```ts 2005e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 2006e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2007e41f4b71Sopenharmony_ci 2008e41f4b71Sopenharmony_ci// 创建NetConnection对象 2009e41f4b71Sopenharmony_cilet netCon: connection.NetConnection = connection.createNetConnection(); 2010e41f4b71Sopenharmony_ci 2011e41f4b71Sopenharmony_ci// 先使用register接口注册订阅事件 2012e41f4b71Sopenharmony_cinetCon.register((error: BusinessError) => { 2013e41f4b71Sopenharmony_ci console.log(JSON.stringify(error)); 2014e41f4b71Sopenharmony_ci}); 2015e41f4b71Sopenharmony_ci 2016e41f4b71Sopenharmony_ci// 订阅网络能力变化事件。调用register后,才能接收到此事件通知 2017e41f4b71Sopenharmony_cinetCon.on('netCapabilitiesChange', (data: connection.NetCapabilityInfo) => { 2018e41f4b71Sopenharmony_ci console.info("Succeeded to get data: " + JSON.stringify(data)); 2019e41f4b71Sopenharmony_ci}); 2020e41f4b71Sopenharmony_ci 2021e41f4b71Sopenharmony_ci// 使用unregister接口取消订阅 2022e41f4b71Sopenharmony_cinetCon.unregister((error: BusinessError) => { 2023e41f4b71Sopenharmony_ci console.log(JSON.stringify(error)); 2024e41f4b71Sopenharmony_ci}); 2025e41f4b71Sopenharmony_ci``` 2026e41f4b71Sopenharmony_ci 2027e41f4b71Sopenharmony_ci### on('netConnectionPropertiesChange') 2028e41f4b71Sopenharmony_ci 2029e41f4b71Sopenharmony_cion(type: 'netConnectionPropertiesChange', callback: Callback\<NetConnectionPropertyInfo\>): void 2030e41f4b71Sopenharmony_ci 2031e41f4b71Sopenharmony_ci订阅网络连接信息变化事件。此接口调用之前需要先调用register接口,使用unregister取消订阅默认网络状态变化的通知。 2032e41f4b71Sopenharmony_ci 2033e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 2034e41f4b71Sopenharmony_ci 2035e41f4b71Sopenharmony_ci**参数:** 2036e41f4b71Sopenharmony_ci 2037e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2038e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 2039e41f4b71Sopenharmony_ci| type | string | 是 | 订阅事件,固定为'netConnectionPropertiesChange'。<br/>netConnectionPropertiesChange:网络连接信息变化事件。 | 2040e41f4b71Sopenharmony_ci| callback | Callback<[NetConnectionPropertyInfo](#netconnectionpropertyinfo11)> | 是 | 回调函数,获取网络连接属性信息。| 2041e41f4b71Sopenharmony_ci 2042e41f4b71Sopenharmony_ci**示例:** 2043e41f4b71Sopenharmony_ci 2044e41f4b71Sopenharmony_ci```ts 2045e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 2046e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2047e41f4b71Sopenharmony_ci 2048e41f4b71Sopenharmony_ci// 创建NetConnection对象 2049e41f4b71Sopenharmony_cilet netCon: connection.NetConnection = connection.createNetConnection(); 2050e41f4b71Sopenharmony_ci 2051e41f4b71Sopenharmony_ci// 先使用register接口注册订阅事件 2052e41f4b71Sopenharmony_cinetCon.register((error: BusinessError) => { 2053e41f4b71Sopenharmony_ci console.log(JSON.stringify(error)); 2054e41f4b71Sopenharmony_ci}); 2055e41f4b71Sopenharmony_ci 2056e41f4b71Sopenharmony_ci// 订阅网络连接信息变化事件。调用register后,才能接收到此事件通知 2057e41f4b71Sopenharmony_cinetCon.on('netConnectionPropertiesChange', (data: connection.NetConnectionPropertyInfo) => { 2058e41f4b71Sopenharmony_ci console.info("Succeeded to get data: " + JSON.stringify(data)); 2059e41f4b71Sopenharmony_ci}); 2060e41f4b71Sopenharmony_ci 2061e41f4b71Sopenharmony_ci// 使用unregister接口取消订阅 2062e41f4b71Sopenharmony_cinetCon.unregister((error: BusinessError) => { 2063e41f4b71Sopenharmony_ci console.log(JSON.stringify(error)); 2064e41f4b71Sopenharmony_ci}); 2065e41f4b71Sopenharmony_ci``` 2066e41f4b71Sopenharmony_ci 2067e41f4b71Sopenharmony_ci### on('netLost') 2068e41f4b71Sopenharmony_ci 2069e41f4b71Sopenharmony_cion(type: 'netLost', callback: Callback\<NetHandle>): void 2070e41f4b71Sopenharmony_ci 2071e41f4b71Sopenharmony_ci订阅网络丢失事件。此接口调用之前需要先调用register接口,使用unregister取消订阅默认网络状态变化的通知。 2072e41f4b71Sopenharmony_ci 2073e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2074e41f4b71Sopenharmony_ci 2075e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 2076e41f4b71Sopenharmony_ci 2077e41f4b71Sopenharmony_ci**参数:** 2078e41f4b71Sopenharmony_ci 2079e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2080e41f4b71Sopenharmony_ci| -------- | ---------------------------------- | ---- | ------------------------------------------------------------ | 2081e41f4b71Sopenharmony_ci| type | string | 是 | 订阅事件,固定为'netLost'。<br/>netLost:网络严重中断或正常断开事件。 | 2082e41f4b71Sopenharmony_ci| callback | Callback\<[NetHandle](#nethandle)> | 是 | 回调函数,数据网络句柄(netHandle)。| 2083e41f4b71Sopenharmony_ci 2084e41f4b71Sopenharmony_ci**示例:** 2085e41f4b71Sopenharmony_ci 2086e41f4b71Sopenharmony_ci```ts 2087e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 2088e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2089e41f4b71Sopenharmony_ci 2090e41f4b71Sopenharmony_ci// 创建NetConnection对象 2091e41f4b71Sopenharmony_cilet netCon: connection.NetConnection = connection.createNetConnection(); 2092e41f4b71Sopenharmony_ci 2093e41f4b71Sopenharmony_ci// 先使用register接口注册订阅事件 2094e41f4b71Sopenharmony_cinetCon.register((error: BusinessError) => { 2095e41f4b71Sopenharmony_ci console.log(JSON.stringify(error)); 2096e41f4b71Sopenharmony_ci}); 2097e41f4b71Sopenharmony_ci 2098e41f4b71Sopenharmony_ci// 订阅网络丢失事件。调用register后,才能接收到此事件通知 2099e41f4b71Sopenharmony_cinetCon.on('netLost', (data: connection.NetHandle) => { 2100e41f4b71Sopenharmony_ci console.info("Succeeded to get data: " + JSON.stringify(data)); 2101e41f4b71Sopenharmony_ci}); 2102e41f4b71Sopenharmony_ci 2103e41f4b71Sopenharmony_ci// 使用unregister接口取消订阅 2104e41f4b71Sopenharmony_cinetCon.unregister((error: BusinessError) => { 2105e41f4b71Sopenharmony_ci console.log(JSON.stringify(error)); 2106e41f4b71Sopenharmony_ci}); 2107e41f4b71Sopenharmony_ci``` 2108e41f4b71Sopenharmony_ci 2109e41f4b71Sopenharmony_ci### on('netUnavailable') 2110e41f4b71Sopenharmony_ci 2111e41f4b71Sopenharmony_cion(type: 'netUnavailable', callback: Callback\<void>): void 2112e41f4b71Sopenharmony_ci 2113e41f4b71Sopenharmony_ci订阅网络不可用事件。此接口调用之前需要先调用register接口,使用unregister取消订阅默认网络状态变化的通知。 2114e41f4b71Sopenharmony_ci 2115e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2116e41f4b71Sopenharmony_ci 2117e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 2118e41f4b71Sopenharmony_ci 2119e41f4b71Sopenharmony_ci**参数:** 2120e41f4b71Sopenharmony_ci 2121e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2122e41f4b71Sopenharmony_ci| -------- | --------------- | ---- | ------------------------------------------------------------ | 2123e41f4b71Sopenharmony_ci| type | string | 是 | 订阅事件,固定为'netUnavailable'。<br/>netUnavailable:网络不可用事件。 | 2124e41f4b71Sopenharmony_ci| callback | Callback\<void> | 是 | 回调函数,无返回结果。| 2125e41f4b71Sopenharmony_ci 2126e41f4b71Sopenharmony_ci**示例:** 2127e41f4b71Sopenharmony_ci 2128e41f4b71Sopenharmony_ci```ts 2129e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 2130e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2131e41f4b71Sopenharmony_ci 2132e41f4b71Sopenharmony_ci// 创建NetConnection对象 2133e41f4b71Sopenharmony_cilet netCon: connection.NetConnection = connection.createNetConnection(); 2134e41f4b71Sopenharmony_ci 2135e41f4b71Sopenharmony_ci// 先使用register接口注册订阅事件 2136e41f4b71Sopenharmony_cinetCon.register((error: BusinessError) => { 2137e41f4b71Sopenharmony_ci console.log(JSON.stringify(error)); 2138e41f4b71Sopenharmony_ci}); 2139e41f4b71Sopenharmony_ci 2140e41f4b71Sopenharmony_ci// 订阅网络不可用事件。调用register后,才能接收到此事件通知 2141e41f4b71Sopenharmony_cinetCon.on('netUnavailable', () => { 2142e41f4b71Sopenharmony_ci console.info("Succeeded to get unavailable net event"); 2143e41f4b71Sopenharmony_ci}); 2144e41f4b71Sopenharmony_ci 2145e41f4b71Sopenharmony_ci// 使用unregister接口取消订阅 2146e41f4b71Sopenharmony_cinetCon.unregister((error: BusinessError) => { 2147e41f4b71Sopenharmony_ci console.log(JSON.stringify(error)); 2148e41f4b71Sopenharmony_ci}); 2149e41f4b71Sopenharmony_ci``` 2150e41f4b71Sopenharmony_ci 2151e41f4b71Sopenharmony_ci## NetHandle 2152e41f4b71Sopenharmony_ci 2153e41f4b71Sopenharmony_ci数据网络的句柄。 2154e41f4b71Sopenharmony_ci 2155e41f4b71Sopenharmony_ci在调用NetHandle的方法之前,需要先获取NetHandle对象。 2156e41f4b71Sopenharmony_ci 2157e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 2158e41f4b71Sopenharmony_ci 2159e41f4b71Sopenharmony_ci### 属性 2160e41f4b71Sopenharmony_ci 2161e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 2162e41f4b71Sopenharmony_ci| ------ | ------ | --- |------------------------- | 2163e41f4b71Sopenharmony_ci| netId | number | 是 | 网络ID,取值为0代表没有默认网络,其余取值必须大于等于100。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2164e41f4b71Sopenharmony_ci 2165e41f4b71Sopenharmony_ci### bindSocket<sup>9+</sup> 2166e41f4b71Sopenharmony_ci 2167e41f4b71Sopenharmony_cibindSocket(socketParam: TCPSocket \| UDPSocket, callback: AsyncCallback\<void>): void 2168e41f4b71Sopenharmony_ci 2169e41f4b71Sopenharmony_ci将TCPSocket或UDPSocket绑定到当前网络,使用callback方式作为异步方法。 2170e41f4b71Sopenharmony_ci 2171e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 2172e41f4b71Sopenharmony_ci 2173e41f4b71Sopenharmony_ci**参数:** 2174e41f4b71Sopenharmony_ci 2175e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2176e41f4b71Sopenharmony_ci| ----------- | ------------------------ | ---- | -------------------------------| 2177e41f4b71Sopenharmony_ci| socketParam | [TCPSocket](js-apis-socket.md#tcpsocket) \| [UDPSocket](js-apis-socket.md#udpsocket) | 是 | 待绑定的TCPSocket或UDPSocket对象。| 2178e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当TCPSocket或UDPSocket成功绑定到当前网络,error为undefined,否则为错误对象。 | 2179e41f4b71Sopenharmony_ci 2180e41f4b71Sopenharmony_ci**错误码:** 2181e41f4b71Sopenharmony_ci 2182e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 2183e41f4b71Sopenharmony_ci 2184e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2185e41f4b71Sopenharmony_ci| ------- | --------------------------------- | 2186e41f4b71Sopenharmony_ci| 401 | Parameter error. | 2187e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 2188e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 2189e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 2190e41f4b71Sopenharmony_ci 2191e41f4b71Sopenharmony_ci**示例:** 2192e41f4b71Sopenharmony_ci 2193e41f4b71Sopenharmony_ci```ts 2194e41f4b71Sopenharmony_ciimport { connection, socket } from '@kit.NetworkKit'; 2195e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2196e41f4b71Sopenharmony_ci 2197e41f4b71Sopenharmony_ciinterface Data { 2198e41f4b71Sopenharmony_ci message: ArrayBuffer, 2199e41f4b71Sopenharmony_ci remoteInfo: socket.SocketRemoteInfo 2200e41f4b71Sopenharmony_ci} 2201e41f4b71Sopenharmony_ci 2202e41f4b71Sopenharmony_ci connection.getDefaultNet().then((netHandle: connection.NetHandle) => { 2203e41f4b71Sopenharmony_ci if (netHandle.netId == 0) { 2204e41f4b71Sopenharmony_ci // 当前无默认网络时,获取的netHandler的netid为0,属于异常情况,需要额外处理 2205e41f4b71Sopenharmony_ci } 2206e41f4b71Sopenharmony_ci let tcp : socket.TCPSocket = socket.constructTCPSocketInstance(); 2207e41f4b71Sopenharmony_ci let udp : socket.UDPSocket = socket.constructUDPSocketInstance(); 2208e41f4b71Sopenharmony_ci let socketType = "TCPSocket"; 2209e41f4b71Sopenharmony_ci if (socketType == "TCPSocket") { 2210e41f4b71Sopenharmony_ci tcp.bind({address:"192.168.xxx.xxx", 2211e41f4b71Sopenharmony_ci port:8080, 2212e41f4b71Sopenharmony_ci family:1} as socket.NetAddress, (error: Error) => { 2213e41f4b71Sopenharmony_ci if (error) { 2214e41f4b71Sopenharmony_ci console.log('bind fail'); 2215e41f4b71Sopenharmony_ci return; 2216e41f4b71Sopenharmony_ci } 2217e41f4b71Sopenharmony_ci netHandle.bindSocket(tcp, (error: BusinessError, data: void) => { 2218e41f4b71Sopenharmony_ci if (error) { 2219e41f4b71Sopenharmony_ci console.error(`Failed to bind socket. Code:${error.code}, message:${error.message}`); 2220e41f4b71Sopenharmony_ci return; 2221e41f4b71Sopenharmony_ci } else { 2222e41f4b71Sopenharmony_ci console.info(JSON.stringify(data)); 2223e41f4b71Sopenharmony_ci } 2224e41f4b71Sopenharmony_ci }); 2225e41f4b71Sopenharmony_ci }); 2226e41f4b71Sopenharmony_ci } else { 2227e41f4b71Sopenharmony_ci let callback: (value: Data) => void = (value: Data) => { 2228e41f4b71Sopenharmony_ci console.log("on message, message:" + value.message + ", remoteInfo:" + value.remoteInfo); 2229e41f4b71Sopenharmony_ci }; 2230e41f4b71Sopenharmony_ci udp.bind({address:"192.168.xxx.xxx", 2231e41f4b71Sopenharmony_ci port:8080, 2232e41f4b71Sopenharmony_ci family:1} as socket.NetAddress, (error: BusinessError) => { 2233e41f4b71Sopenharmony_ci if (error) { 2234e41f4b71Sopenharmony_ci console.error(`Failed to bind. Code:${error.code}, message:${error.message}`); 2235e41f4b71Sopenharmony_ci return; 2236e41f4b71Sopenharmony_ci } 2237e41f4b71Sopenharmony_ci udp.on('message', (data: Data) => { 2238e41f4b71Sopenharmony_ci console.info("Succeeded to get data: " + JSON.stringify(data)); 2239e41f4b71Sopenharmony_ci }); 2240e41f4b71Sopenharmony_ci netHandle.bindSocket(udp, (error: BusinessError, data: void) => { 2241e41f4b71Sopenharmony_ci if (error) { 2242e41f4b71Sopenharmony_ci console.error(`Failed to bind socket. Code:${error.code}, message:${error.message}`); 2243e41f4b71Sopenharmony_ci return; 2244e41f4b71Sopenharmony_ci } else { 2245e41f4b71Sopenharmony_ci console.info(JSON.stringify(data)); 2246e41f4b71Sopenharmony_ci } 2247e41f4b71Sopenharmony_ci }); 2248e41f4b71Sopenharmony_ci }); 2249e41f4b71Sopenharmony_ci } 2250e41f4b71Sopenharmony_ci}) 2251e41f4b71Sopenharmony_ci``` 2252e41f4b71Sopenharmony_ci 2253e41f4b71Sopenharmony_ci### bindSocket<sup>9+</sup> 2254e41f4b71Sopenharmony_ci 2255e41f4b71Sopenharmony_cibindSocket(socketParam: TCPSocket \| UDPSocket): Promise\<void\> 2256e41f4b71Sopenharmony_ci 2257e41f4b71Sopenharmony_ci将TCPSocket或UDPSockett绑定到当前网络,使用Promise方式作为异步方法。 2258e41f4b71Sopenharmony_ci 2259e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 2260e41f4b71Sopenharmony_ci 2261e41f4b71Sopenharmony_ci**参数:** 2262e41f4b71Sopenharmony_ci 2263e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2264e41f4b71Sopenharmony_ci| --------------- | --------------------- | ---- | ------------------------------ | 2265e41f4b71Sopenharmony_ci| socketParam | [TCPSocket](js-apis-socket.md#tcpsocket) \| [UDPSocket](js-apis-socket.md#udpsocket) | 是 | 待绑定的TCPSocket或UDPSocket对象。| 2266e41f4b71Sopenharmony_ci 2267e41f4b71Sopenharmony_ci**返回值:** 2268e41f4b71Sopenharmony_ci 2269e41f4b71Sopenharmony_ci| 类型 | 说明 | 2270e41f4b71Sopenharmony_ci| -------------- | ---------------------- | 2271e41f4b71Sopenharmony_ci| Promise\<void> | 无返回值的Promise对象。 | 2272e41f4b71Sopenharmony_ci 2273e41f4b71Sopenharmony_ci**错误码:** 2274e41f4b71Sopenharmony_ci 2275e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 2276e41f4b71Sopenharmony_ci 2277e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2278e41f4b71Sopenharmony_ci| ------- | --------------------------------- | 2279e41f4b71Sopenharmony_ci| 401 | Parameter error. | 2280e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 2281e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 2282e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 2283e41f4b71Sopenharmony_ci 2284e41f4b71Sopenharmony_ci**示例:** 2285e41f4b71Sopenharmony_ci 2286e41f4b71Sopenharmony_ci```ts 2287e41f4b71Sopenharmony_ciimport { connection, socket } from '@kit.NetworkKit'; 2288e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2289e41f4b71Sopenharmony_ci 2290e41f4b71Sopenharmony_ciinterface Data { 2291e41f4b71Sopenharmony_ci message: ArrayBuffer, 2292e41f4b71Sopenharmony_ci remoteInfo: socket.SocketRemoteInfo 2293e41f4b71Sopenharmony_ci} 2294e41f4b71Sopenharmony_ci 2295e41f4b71Sopenharmony_ciconnection.getDefaultNet().then((netHandle: connection.NetHandle) => { 2296e41f4b71Sopenharmony_ci if (netHandle.netId == 0) { 2297e41f4b71Sopenharmony_ci // 当前无默认网络时,获取的netHandler的netid为0,属于异常场景,此处可以实际情况自行添加一些处理机制。 2298e41f4b71Sopenharmony_ci return; 2299e41f4b71Sopenharmony_ci } 2300e41f4b71Sopenharmony_ci let tcp : socket.TCPSocket = socket.constructTCPSocketInstance(); 2301e41f4b71Sopenharmony_ci let udp : socket.UDPSocket = socket.constructUDPSocketInstance(); 2302e41f4b71Sopenharmony_ci let socketType = "TCPSocket"; 2303e41f4b71Sopenharmony_ci if (socketType == "TCPSocket") { 2304e41f4b71Sopenharmony_ci tcp.bind({address:"192.168.xxx.xxx", 2305e41f4b71Sopenharmony_ci port:8080, 2306e41f4b71Sopenharmony_ci family:1} as socket.NetAddress, (error: Error) => { 2307e41f4b71Sopenharmony_ci if (error) { 2308e41f4b71Sopenharmony_ci console.log('bind fail'); 2309e41f4b71Sopenharmony_ci return; 2310e41f4b71Sopenharmony_ci } 2311e41f4b71Sopenharmony_ci netHandle.bindSocket(tcp).then(() => { 2312e41f4b71Sopenharmony_ci console.info("bind socket success"); 2313e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 2314e41f4b71Sopenharmony_ci console.error(`Failed to bind socket. Code:${error.code}, message:${error.message}`); 2315e41f4b71Sopenharmony_ci }); 2316e41f4b71Sopenharmony_ci }); 2317e41f4b71Sopenharmony_ci } else { 2318e41f4b71Sopenharmony_ci let callback: (value: Data) => void = (value: Data) => { 2319e41f4b71Sopenharmony_ci console.log("on message, message:" + value.message + ", remoteInfo:" + value.remoteInfo); 2320e41f4b71Sopenharmony_ci } 2321e41f4b71Sopenharmony_ci udp.bind({address:"192.168.xxx.xxx", 2322e41f4b71Sopenharmony_ci port:8080, 2323e41f4b71Sopenharmony_ci family:1} as socket.NetAddress, (error: BusinessError) => { 2324e41f4b71Sopenharmony_ci if (error) { 2325e41f4b71Sopenharmony_ci console.error(`Failed to bind. Code:${error.code}, message:${error.message}`); 2326e41f4b71Sopenharmony_ci return; 2327e41f4b71Sopenharmony_ci } 2328e41f4b71Sopenharmony_ci udp.on('message', (data: Data) => { 2329e41f4b71Sopenharmony_ci console.info("Succeeded to get data: " + JSON.stringify(data)); 2330e41f4b71Sopenharmony_ci }); 2331e41f4b71Sopenharmony_ci netHandle.bindSocket(udp).then(() => { 2332e41f4b71Sopenharmony_ci console.info("bind socket success"); 2333e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 2334e41f4b71Sopenharmony_ci console.error(`Failed to bind socket. Code:${error.code}, message:${error.message}`); 2335e41f4b71Sopenharmony_ci }); 2336e41f4b71Sopenharmony_ci }); 2337e41f4b71Sopenharmony_ci } 2338e41f4b71Sopenharmony_ci}); 2339e41f4b71Sopenharmony_ci``` 2340e41f4b71Sopenharmony_ci 2341e41f4b71Sopenharmony_ci### getAddressesByName 2342e41f4b71Sopenharmony_ci 2343e41f4b71Sopenharmony_cigetAddressesByName(host: string, callback: AsyncCallback\<Array\<NetAddress>\>\): void 2344e41f4b71Sopenharmony_ci 2345e41f4b71Sopenharmony_ci使用对应网络解析主机名以获取所有IP地址,使用callback方式作为异步方法。 2346e41f4b71Sopenharmony_ci 2347e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 2348e41f4b71Sopenharmony_ci 2349e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 2350e41f4b71Sopenharmony_ci 2351e41f4b71Sopenharmony_ci**参数:** 2352e41f4b71Sopenharmony_ci 2353e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2354e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------- | ---- | ------------------------------------------------------------ | 2355e41f4b71Sopenharmony_ci| host | string | 是 | 需要解析的主机名。 | 2356e41f4b71Sopenharmony_ci| callback | AsyncCallback\<Array\<[NetAddress](#netaddress)>> | 是 | 回调函数。当使用对应网络解析主机名成功获取所有IP地址,error为undefined,data为获取到的所有IP地址;否则为错误对象。 | 2357e41f4b71Sopenharmony_ci 2358e41f4b71Sopenharmony_ci**错误码:** 2359e41f4b71Sopenharmony_ci 2360e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 2361e41f4b71Sopenharmony_ci 2362e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2363e41f4b71Sopenharmony_ci| ------- | --------------------------------- | 2364e41f4b71Sopenharmony_ci| 201 | Permission denied. | 2365e41f4b71Sopenharmony_ci| 401 | Parameter error. | 2366e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 2367e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 2368e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 2369e41f4b71Sopenharmony_ci 2370e41f4b71Sopenharmony_ci**示例:** 2371e41f4b71Sopenharmony_ci 2372e41f4b71Sopenharmony_ci```ts 2373e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 2374e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2375e41f4b71Sopenharmony_ci 2376e41f4b71Sopenharmony_ciconnection.getDefaultNet().then((netHandle: connection.NetHandle) => { 2377e41f4b71Sopenharmony_ci if (netHandle.netId == 0) { 2378e41f4b71Sopenharmony_ci // 当前无默认网络时,获取的netHandler的netid为0,属于异常场景,此处可以实际情况自行添加一些处理机制。 2379e41f4b71Sopenharmony_ci return; 2380e41f4b71Sopenharmony_ci } 2381e41f4b71Sopenharmony_ci let host = "xxxx"; 2382e41f4b71Sopenharmony_ci netHandle.getAddressesByName(host, (error: BusinessError, data: connection.NetAddress[]) => { 2383e41f4b71Sopenharmony_ci if (error) { 2384e41f4b71Sopenharmony_ci console.error(`Failed to get addresses. Code:${error.code}, message:${error.message}`); 2385e41f4b71Sopenharmony_ci return; 2386e41f4b71Sopenharmony_ci } 2387e41f4b71Sopenharmony_ci console.info("Succeeded to get data: " + JSON.stringify(data)); 2388e41f4b71Sopenharmony_ci }); 2389e41f4b71Sopenharmony_ci}); 2390e41f4b71Sopenharmony_ci``` 2391e41f4b71Sopenharmony_ci 2392e41f4b71Sopenharmony_ci### getAddressesByName 2393e41f4b71Sopenharmony_ci 2394e41f4b71Sopenharmony_cigetAddressesByName(host: string): Promise\<Array\<NetAddress>> 2395e41f4b71Sopenharmony_ci 2396e41f4b71Sopenharmony_ci使用对应网络解析主机名以获取所有IP地址,使用Promise方式作为异步方法。 2397e41f4b71Sopenharmony_ci 2398e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 2399e41f4b71Sopenharmony_ci 2400e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 2401e41f4b71Sopenharmony_ci 2402e41f4b71Sopenharmony_ci**参数:** 2403e41f4b71Sopenharmony_ci 2404e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2405e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------ | 2406e41f4b71Sopenharmony_ci| host | string | 是 | 需要解析的主机名。 | 2407e41f4b71Sopenharmony_ci 2408e41f4b71Sopenharmony_ci**返回值:** 2409e41f4b71Sopenharmony_ci 2410e41f4b71Sopenharmony_ci| 类型 | 说明 | 2411e41f4b71Sopenharmony_ci| ------------------------------------------- | ----------------------------- | 2412e41f4b71Sopenharmony_ci| Promise\<Array\<[NetAddress](#netaddress)>> | 以Promise形式返回所有IP地址。 | 2413e41f4b71Sopenharmony_ci 2414e41f4b71Sopenharmony_ci**错误码:** 2415e41f4b71Sopenharmony_ci 2416e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 2417e41f4b71Sopenharmony_ci 2418e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2419e41f4b71Sopenharmony_ci| ------- | --------------------------------- | 2420e41f4b71Sopenharmony_ci| 201 | Permission denied. | 2421e41f4b71Sopenharmony_ci| 401 | Parameter error. | 2422e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 2423e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 2424e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 2425e41f4b71Sopenharmony_ci 2426e41f4b71Sopenharmony_ci**示例:** 2427e41f4b71Sopenharmony_ci 2428e41f4b71Sopenharmony_ci```ts 2429e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 2430e41f4b71Sopenharmony_ci 2431e41f4b71Sopenharmony_ciconnection.getDefaultNet().then((netHandle: connection.NetHandle) => { 2432e41f4b71Sopenharmony_ci if (netHandle.netId == 0) { 2433e41f4b71Sopenharmony_ci // 当前无默认网络时,获取的netHandler的netid为0,属于异常场景,此处可以实际情况自行添加一些处理机制。 2434e41f4b71Sopenharmony_ci return; 2435e41f4b71Sopenharmony_ci } 2436e41f4b71Sopenharmony_ci let host = "xxxx"; 2437e41f4b71Sopenharmony_ci netHandle.getAddressesByName(host).then((data: connection.NetAddress[]) => { 2438e41f4b71Sopenharmony_ci console.info("Succeeded to get data: " + JSON.stringify(data)); 2439e41f4b71Sopenharmony_ci }); 2440e41f4b71Sopenharmony_ci}); 2441e41f4b71Sopenharmony_ci``` 2442e41f4b71Sopenharmony_ci 2443e41f4b71Sopenharmony_ci### getAddressByName 2444e41f4b71Sopenharmony_ci 2445e41f4b71Sopenharmony_cigetAddressByName(host: string, callback: AsyncCallback\<NetAddress>): void 2446e41f4b71Sopenharmony_ci 2447e41f4b71Sopenharmony_ci使用对应网络解析主机名以获取第一个IP地址,使用callback方式作为异步方法。 2448e41f4b71Sopenharmony_ci 2449e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 2450e41f4b71Sopenharmony_ci 2451e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 2452e41f4b71Sopenharmony_ci 2453e41f4b71Sopenharmony_ci**参数:** 2454e41f4b71Sopenharmony_ci 2455e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2456e41f4b71Sopenharmony_ci| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ | 2457e41f4b71Sopenharmony_ci| host | string | 是 | 需要解析的主机名。 | 2458e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[NetAddress](#netaddress)> | 是 | 回调函数。当使用对应网络解析主机名获取第一个IP地址成功,error为undefined,data为获取的第一个IP地址;否则为错误对象。 | 2459e41f4b71Sopenharmony_ci 2460e41f4b71Sopenharmony_ci**错误码:** 2461e41f4b71Sopenharmony_ci 2462e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 2463e41f4b71Sopenharmony_ci 2464e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2465e41f4b71Sopenharmony_ci| ------- | --------------------------------- | 2466e41f4b71Sopenharmony_ci| 201 | Permission denied. | 2467e41f4b71Sopenharmony_ci| 401 | Parameter error. | 2468e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 2469e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 2470e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 2471e41f4b71Sopenharmony_ci 2472e41f4b71Sopenharmony_ci**示例:** 2473e41f4b71Sopenharmony_ci 2474e41f4b71Sopenharmony_ci```ts 2475e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 2476e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2477e41f4b71Sopenharmony_ci 2478e41f4b71Sopenharmony_ciconnection.getDefaultNet().then((netHandle: connection.NetHandle) => { 2479e41f4b71Sopenharmony_ci if (netHandle.netId == 0) { 2480e41f4b71Sopenharmony_ci // 当前无默认网络时,获取的netHandler的netid为0,属于异常场景,此处可以实际情况自行添加一些处理机制。 2481e41f4b71Sopenharmony_ci return; 2482e41f4b71Sopenharmony_ci } 2483e41f4b71Sopenharmony_ci let host = "xxxx"; 2484e41f4b71Sopenharmony_ci netHandle.getAddressByName(host, (error: BusinessError, data: connection.NetAddress) => { 2485e41f4b71Sopenharmony_ci if (error) { 2486e41f4b71Sopenharmony_ci console.error(`Failed to get address. Code:${error.code}, message:${error.message}`); 2487e41f4b71Sopenharmony_ci return; 2488e41f4b71Sopenharmony_ci } 2489e41f4b71Sopenharmony_ci console.info("Succeeded to get data: " + JSON.stringify(data)); 2490e41f4b71Sopenharmony_ci }); 2491e41f4b71Sopenharmony_ci}); 2492e41f4b71Sopenharmony_ci``` 2493e41f4b71Sopenharmony_ci 2494e41f4b71Sopenharmony_ci### getAddressByName 2495e41f4b71Sopenharmony_ci 2496e41f4b71Sopenharmony_cigetAddressByName(host: string): Promise\<NetAddress> 2497e41f4b71Sopenharmony_ci 2498e41f4b71Sopenharmony_ci使用对应网络解析主机名以获取第一个IP地址,使用Promise方式作为异步方法。 2499e41f4b71Sopenharmony_ci 2500e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 2501e41f4b71Sopenharmony_ci 2502e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 2503e41f4b71Sopenharmony_ci 2504e41f4b71Sopenharmony_ci**参数:** 2505e41f4b71Sopenharmony_ci 2506e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2507e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------ | 2508e41f4b71Sopenharmony_ci| host | string | 是 | 需要解析的主机名。 | 2509e41f4b71Sopenharmony_ci 2510e41f4b71Sopenharmony_ci**返回值:** 2511e41f4b71Sopenharmony_ci 2512e41f4b71Sopenharmony_ci| 类型 | 说明 | 2513e41f4b71Sopenharmony_ci| ----------------------------------- | ------------------------------- | 2514e41f4b71Sopenharmony_ci| Promise\<[NetAddress](#netaddress)> | 以Promise形式返回第一个IP地址。 | 2515e41f4b71Sopenharmony_ci 2516e41f4b71Sopenharmony_ci**错误码:** 2517e41f4b71Sopenharmony_ci 2518e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[网络连接管理错误码](errorcode-net-connection.md)。 2519e41f4b71Sopenharmony_ci 2520e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2521e41f4b71Sopenharmony_ci| ------- | --------------------------------- | 2522e41f4b71Sopenharmony_ci| 201 | Permission denied. | 2523e41f4b71Sopenharmony_ci| 401 | Parameter error. | 2524e41f4b71Sopenharmony_ci| 2100001 | Invalid parameter value. | 2525e41f4b71Sopenharmony_ci| 2100002 | Failed to connect to the service. | 2526e41f4b71Sopenharmony_ci| 2100003 | System internal error. | 2527e41f4b71Sopenharmony_ci 2528e41f4b71Sopenharmony_ci**示例:** 2529e41f4b71Sopenharmony_ci 2530e41f4b71Sopenharmony_ci```ts 2531e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 2532e41f4b71Sopenharmony_ci 2533e41f4b71Sopenharmony_ciconnection.getDefaultNet().then((netHandle: connection.NetHandle) => { 2534e41f4b71Sopenharmony_ci if (netHandle.netId == 0) { 2535e41f4b71Sopenharmony_ci // 当前无默认网络时,获取的netHandler的netid为0,属于异常场景,此处可以实际情况自行添加一些处理机制。 2536e41f4b71Sopenharmony_ci return; 2537e41f4b71Sopenharmony_ci } 2538e41f4b71Sopenharmony_ci let host = "xxxx"; 2539e41f4b71Sopenharmony_ci netHandle.getAddressByName(host).then((data: connection.NetAddress) => { 2540e41f4b71Sopenharmony_ci console.info("Succeeded to get data: " + JSON.stringify(data)); 2541e41f4b71Sopenharmony_ci }); 2542e41f4b71Sopenharmony_ci}); 2543e41f4b71Sopenharmony_ci``` 2544e41f4b71Sopenharmony_ci 2545e41f4b71Sopenharmony_ci## NetCap 2546e41f4b71Sopenharmony_ci 2547e41f4b71Sopenharmony_ci网络具体能力。 2548e41f4b71Sopenharmony_ci 2549e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 2550e41f4b71Sopenharmony_ci 2551e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 2552e41f4b71Sopenharmony_ci| ------------------------ | ---- | ---------------------- | 2553e41f4b71Sopenharmony_ci| NET_CAPABILITY_MMS | 0 | 表示网络可以访问运营商的MMSC(Multimedia Message Service,多媒体短信服务)发送和接收彩信。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2554e41f4b71Sopenharmony_ci| NET_CAPABILITY_NOT_METERED | 11 | 表示网络流量未被计费。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2555e41f4b71Sopenharmony_ci| NET_CAPABILITY_INTERNET | 12 | 表示该网络应具有访问Internet的能力,该能力由网络提供者设置。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2556e41f4b71Sopenharmony_ci| NET_CAPABILITY_NOT_VPN | 15 | 表示网络不使用VPN(Virtual Private Network,虚拟专用网络)。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2557e41f4b71Sopenharmony_ci| NET_CAPABILITY_VALIDATED | 16 | 表示该网络访问Internet的连通性被网络管理成功验证,该能力由网络管理模块设置。<br>请注意,对于新完成连接的网络,由于网络正在进行连通性验证,此值可能无法反映真实的验证结果。对此,您可以通过NET_CAPABILITY_CHECKING_CONNECTIVITY<sup>12+</sup>检查网络是否正在检测连通性。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2558e41f4b71Sopenharmony_ci| NET_CAPABILITY_PORTAL<sup>12+</sup> | 17 | 表示系统发现该网络存在强制网络门户,需要用户登陆认证,该能力由网络管理模块设置。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 2559e41f4b71Sopenharmony_ci| NET_CAPABILITY_CHECKING_CONNECTIVITY<sup>12+</sup> | 31 | 表示网络管理正在检验当前网络的连通性,此值会在网络连接时设置,直到连通性检测结束后不再设置,当此值存在时,NET_CAPABILITY_VALIDATED的值可能不准确。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 2560e41f4b71Sopenharmony_ci 2561e41f4b71Sopenharmony_ci## NetBearType 2562e41f4b71Sopenharmony_ci 2563e41f4b71Sopenharmony_ci网络类型。 2564e41f4b71Sopenharmony_ci 2565e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 2566e41f4b71Sopenharmony_ci 2567e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 2568e41f4b71Sopenharmony_ci| ----------------------- | ---- | ---------- | 2569e41f4b71Sopenharmony_ci| BEARER_CELLULAR | 0 | 蜂窝网络。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2570e41f4b71Sopenharmony_ci| BEARER_WIFI | 1 | Wi-Fi网络。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2571e41f4b71Sopenharmony_ci| BEARER_BLUETOOTH<sup>12+</sup> | 2 | 蓝牙网络。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 2572e41f4b71Sopenharmony_ci| BEARER_ETHERNET | 3 | 以太网网络。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2573e41f4b71Sopenharmony_ci| BEARER_VPN<sup>12+</sup>| 4 | VPN网络。 | 2574e41f4b71Sopenharmony_ci 2575e41f4b71Sopenharmony_ci## HttpProxy<sup>10+</sup> 2576e41f4b71Sopenharmony_ci 2577e41f4b71Sopenharmony_ci网络代理配置信息 2578e41f4b71Sopenharmony_ci 2579e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 2580e41f4b71Sopenharmony_ci 2581e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 2582e41f4b71Sopenharmony_ci| ------ | ------ | --- |------------------------- | 2583e41f4b71Sopenharmony_ci| host | string | 是 | 代理服务器主机名。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。| 2584e41f4b71Sopenharmony_ci| port | number | 是 | 主机端口。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2585e41f4b71Sopenharmony_ci| exclusionList | Array\<string\> | 是 | 不使用代理的主机名列表,主机名支持域名、IP地址以及通配符形式,详细匹配规则如下:<br/>1、域名匹配规则:<br/>(1)完全匹配:代理服务器主机名只要与列表中的任意一个主机名完全相同,就可以匹配。<br/>(2)包含匹配:代理服务器主机名只要包含列表中的任意一个主机名,就可以匹配。<br/>例如,如果在主机名列表中设置了 “ample.com”,则 “ample.com”、“www.ample.com”、“ample.com:80”都会被匹配,而 “www.example.com”、“ample.com.org”则不会被匹配。<br/>2、IP地址匹配规则:代理服务器主机名只要与列表中的任意一个IP地址完全相同,就可以匹配。<br/>3、域名跟IP地址可以同时添加到列表中进行匹配。<br/>4、单个“\*”是唯一有效的通配符,当列表中只有通配符时,将与所有代理服务器主机名匹配,表示禁用代理。通配符只能单独添加,不可以与其他域名、IP地址一起添加到列表中,否则通配符将不生效。<br/>5、匹配规则不区分主机名大小写。<br/>6、匹配主机名时,不考虑http和https等协议前缀。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2586e41f4b71Sopenharmony_ci| username<sup>12+</sup> | string | 否 | 使用代理的用户名。| 2587e41f4b71Sopenharmony_ci| password<sup>12+</sup> | string | 否 | 使用代理的用户密码。| 2588e41f4b71Sopenharmony_ci 2589e41f4b71Sopenharmony_ci## NetSpecifier 2590e41f4b71Sopenharmony_ci 2591e41f4b71Sopenharmony_ci提供承载数据网络能力的实例。 2592e41f4b71Sopenharmony_ci 2593e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2594e41f4b71Sopenharmony_ci 2595e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 2596e41f4b71Sopenharmony_ci 2597e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 2598e41f4b71Sopenharmony_ci| ----------------------- | ----------------------------------- | ---- | ------------------------------------------------------------ | 2599e41f4b71Sopenharmony_ci| netCapabilities | [NetCapabilities](#netcapabilities) | 是 | 存储数据网络的传输能力和承载类型。 | 2600e41f4b71Sopenharmony_ci| bearerPrivateIdentifier | string | 否 | 网络标识符,蜂窝网络的标识符是"slot0"(对应SIM卡1)、"slot1"(对应SIM卡2)。从API12开始可以通过传递注册的WLAN热点信息表示应用希望激活的指定的WLAN网络。 | 2601e41f4b71Sopenharmony_ci 2602e41f4b71Sopenharmony_ci**示例:** 2603e41f4b71Sopenharmony_ci 2604e41f4b71Sopenharmony_ci```ts 2605e41f4b71Sopenharmony_ciimport { connection } from '@kit.NetworkKit'; 2606e41f4b71Sopenharmony_ciimport { wifiManager } from '@kit.ConnectivityKit'; 2607e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2608e41f4b71Sopenharmony_ci 2609e41f4b71Sopenharmony_cilet config: wifiManager.WifiDeviceConfig = { 2610e41f4b71Sopenharmony_ci ssid: "TEST", 2611e41f4b71Sopenharmony_ci preSharedKey: "**********", 2612e41f4b71Sopenharmony_ci securityType: wifiManager.WifiSecurityType.WIFI_SEC_TYPE_PSK 2613e41f4b71Sopenharmony_ci}; 2614e41f4b71Sopenharmony_ci// 通过wifiManager.addCandidateConfig获取注册WLAN的networkId 2615e41f4b71Sopenharmony_cilet networkId: number = await wifiManager.addCandidateConfig(config); 2616e41f4b71Sopenharmony_cilet netConnectionWlan = connection.createNetConnection({ 2617e41f4b71Sopenharmony_ci netCapabilities: { 2618e41f4b71Sopenharmony_ci bearerTypes: [connection.NetBearType.BEARER_WIFI] 2619e41f4b71Sopenharmony_ci }, 2620e41f4b71Sopenharmony_ci bearerPrivateIdentifier: `${networkId}` 2621e41f4b71Sopenharmony_ci}); 2622e41f4b71Sopenharmony_cinetConnectionWlan.register((error: BusinessError) => { 2623e41f4b71Sopenharmony_ci console.log(JSON.stringify(error)); 2624e41f4b71Sopenharmony_ci}); 2625e41f4b71Sopenharmony_ci``` 2626e41f4b71Sopenharmony_ci 2627e41f4b71Sopenharmony_ci## NetCapabilityInfo<sup>10+</sup> 2628e41f4b71Sopenharmony_ci 2629e41f4b71Sopenharmony_ci提供承载数据网络能力的实例。 2630e41f4b71Sopenharmony_ci 2631e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2632e41f4b71Sopenharmony_ci 2633e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 2634e41f4b71Sopenharmony_ci 2635e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 2636e41f4b71Sopenharmony_ci| ----------------------- | ------------------------------------ | ---- | ------------------------------------------------------------ | 2637e41f4b71Sopenharmony_ci| netHandle | [NetHandle](#nethandle) | 是 | 数据网络句柄。 | 2638e41f4b71Sopenharmony_ci| netCap | [NetCapabilities](#netcapabilities) | 是 | 存储数据网络的传输能力和承载类型。 | 2639e41f4b71Sopenharmony_ci 2640e41f4b71Sopenharmony_ci## NetCapabilities 2641e41f4b71Sopenharmony_ci 2642e41f4b71Sopenharmony_ci网络的能力集。 2643e41f4b71Sopenharmony_ci 2644e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 2645e41f4b71Sopenharmony_ci 2646e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 2647e41f4b71Sopenharmony_ci| --------------------- | ---------------------------------- | --- | ------------------------ | 2648e41f4b71Sopenharmony_ci| linkUpBandwidthKbps | number | 否 | 上行(设备到网络)带宽,单位(kb/s),0表示无法评估当前网络带宽。| 2649e41f4b71Sopenharmony_ci| linkDownBandwidthKbps | number | 否 | 下行(网络到设备)带宽,单位(kb/s),0表示无法评估当前网络带宽。| 2650e41f4b71Sopenharmony_ci| networkCap | Array\<[NetCap](#netcap)> | 否 | 网络具体能力。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2651e41f4b71Sopenharmony_ci| bearerTypes | Array\<[NetBearType](#netbeartype)> | 是 | 网络类型。数组里面只包含了一种具体的网络类型。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2652e41f4b71Sopenharmony_ci 2653e41f4b71Sopenharmony_ci## NetConnectionPropertyInfo<sup>11+</sup> 2654e41f4b71Sopenharmony_ci 2655e41f4b71Sopenharmony_ci网络连接信息 2656e41f4b71Sopenharmony_ci 2657e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 2658e41f4b71Sopenharmony_ci 2659e41f4b71Sopenharmony_ci### 属性 2660e41f4b71Sopenharmony_ci 2661e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 2662e41f4b71Sopenharmony_ci| -------------------- | --------------------------------------------------- | ---- |----------------------- | 2663e41f4b71Sopenharmony_ci| netHandle | [NetHandle](#nethandle) | 是 |数据网络句柄(netHandle)。| 2664e41f4b71Sopenharmony_ci| connectionProperties | [ConnectionProperties](#connectionproperties) | 是 |网络连接属性。 | 2665e41f4b71Sopenharmony_ci 2666e41f4b71Sopenharmony_ci## NetBlockStatusInfo<sup>11+</sup> 2667e41f4b71Sopenharmony_ci 2668e41f4b71Sopenharmony_ci获取网络状态信息。 2669e41f4b71Sopenharmony_ci 2670e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 2671e41f4b71Sopenharmony_ci 2672e41f4b71Sopenharmony_ci### 属性 2673e41f4b71Sopenharmony_ci 2674e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 2675e41f4b71Sopenharmony_ci| -------------------- | ------------------------------------- | --- |--------------------------- | 2676e41f4b71Sopenharmony_ci| netHandle | [NetHandle](#nethandle) | 是 |数据网络句柄(netHandle)。 | 2677e41f4b71Sopenharmony_ci| blocked | boolean | 是 |标识当前网络是否是堵塞状态。 | 2678e41f4b71Sopenharmony_ci 2679e41f4b71Sopenharmony_ci## ConnectionProperties 2680e41f4b71Sopenharmony_ci 2681e41f4b71Sopenharmony_ci网络连接信息。 2682e41f4b71Sopenharmony_ci 2683e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 2684e41f4b71Sopenharmony_ci 2685e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 2686e41f4b71Sopenharmony_ci| ------------- | ----------------------------------- | ----|--------------------------------------- | 2687e41f4b71Sopenharmony_ci| interfaceName | string | 是 |网卡名称。 | 2688e41f4b71Sopenharmony_ci| domains | string | 是 |域名。 | 2689e41f4b71Sopenharmony_ci| linkAddresses | Array\<[LinkAddress](#linkaddress)> | 是 |链路信息。 | 2690e41f4b71Sopenharmony_ci| routes | Array\<[RouteInfo](#routeinfo)> | 是 |路由信息。 | 2691e41f4b71Sopenharmony_ci| dnses | Array\<[NetAddress](#netaddress)> | 是 |网络地址,参考[NetAddress](#netaddress)。 | 2692e41f4b71Sopenharmony_ci| mtu | number | 是 |最大传输单元。 | 2693e41f4b71Sopenharmony_ci 2694e41f4b71Sopenharmony_ci## RouteInfo 2695e41f4b71Sopenharmony_ci 2696e41f4b71Sopenharmony_ci网络路由信息。 2697e41f4b71Sopenharmony_ci 2698e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 2699e41f4b71Sopenharmony_ci 2700e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 2701e41f4b71Sopenharmony_ci| -------------- | --------------------------- | --- |-------------- | 2702e41f4b71Sopenharmony_ci| interface | string | 是 |网卡名称。 | 2703e41f4b71Sopenharmony_ci| destination | [LinkAddress](#linkaddress) | 是 |目的地址。 | 2704e41f4b71Sopenharmony_ci| gateway | [NetAddress](#netaddress) | 是 |网关地址。 | 2705e41f4b71Sopenharmony_ci| hasGateway | boolean | 是 |是否有网关。 | 2706e41f4b71Sopenharmony_ci| isDefaultRoute | boolean | 是 |是否为默认路由。 | 2707e41f4b71Sopenharmony_ci 2708e41f4b71Sopenharmony_ci## LinkAddress 2709e41f4b71Sopenharmony_ci 2710e41f4b71Sopenharmony_ci网络链路信息。 2711e41f4b71Sopenharmony_ci 2712e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 2713e41f4b71Sopenharmony_ci 2714e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 2715e41f4b71Sopenharmony_ci| ------------ | ------------------------- |---- |-------------------- | 2716e41f4b71Sopenharmony_ci| address | [NetAddress](#netaddress) | 是 | 链路地址。 | 2717e41f4b71Sopenharmony_ci| prefixLength | number | 是 |链路地址前缀的长度。 | 2718e41f4b71Sopenharmony_ci 2719e41f4b71Sopenharmony_ci## NetAddress 2720e41f4b71Sopenharmony_ci 2721e41f4b71Sopenharmony_ci网络地址。 2722e41f4b71Sopenharmony_ci 2723e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2724e41f4b71Sopenharmony_ci 2725e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Communication.NetManager.Core 2726e41f4b71Sopenharmony_ci 2727e41f4b71Sopenharmony_ci| 名称 | 类型 |必填| 说明 | 2728e41f4b71Sopenharmony_ci| ------- | ------ | -- |---------------------------- | 2729e41f4b71Sopenharmony_ci| address | string | 是 |地址。 | 2730e41f4b71Sopenharmony_ci| family | number | 否 |IPv4 = 1,IPv6 = 2,默认IPv4。| 2731e41f4b71Sopenharmony_ci| port | number | 否 |端口,取值范围\[0, 65535]。 | 2732