1# @ohos.telephony.data (蜂窝数据) 2 3<!--Kit: Telephony Kit--> 4<!--Subsystem: Telephony--> 5<!--Owner: @k_lee9575--> 6<!--Designer: @guo-min_net--> 7<!--Tester: @tongxilin--> 8<!--Adviser: @zhang_yixin13--> 9 10蜂窝数据提供了移动数据管理能力,包括获取默认移动数据的SIM卡、获取蜂窝数据业务的上下行数据流状态、蜂窝数据业务链路连接状态,以及检查蜂窝数据业务和漫游是否启用等。 11 12> **说明:** 13> 14> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 15 16## 导入模块 17 18```ts 19import { data } from '@kit.TelephonyKit'; 20``` 21 22## data.getDefaultCellularDataSlotId 23 24getDefaultCellularDataSlotId(callback: AsyncCallback\<number\>): void 25 26获取默认移动数据的SIM卡,使用callback方式作为异步方法。 27 28**系统能力**:SystemCapability.Telephony.CellularData 29 30**参数:** 31 32| 参数名 | 类型 | 必填 | 说明 | 33| -------- | ----------------------- | ---- | ------------------------------------------ | 34| callback | AsyncCallback\<number\> | 是 | 以callback形式异步返回结果。<br />- 0:卡槽1。 <br />- 1:卡槽2。 | 35 36**示例:** 37 38```ts 39import { data } from '@kit.TelephonyKit'; 40import { BusinessError } from '@kit.BasicServicesKit'; 41 42data.getDefaultCellularDataSlotId((err: BusinessError, contextData: number) => { 43 if(err){ 44 console.error(`getDefaultCellularDataSlotId fail,callback: err->${JSON.stringify(err)}, contextData->${JSON.stringify(contextData)}`); 45 }else{ 46 console.log(`getDefaultCellularDataSlotId success`); 47 } 48}); 49``` 50 51## data.getDefaultCellularDataSlotId 52 53getDefaultCellularDataSlotId(): Promise\<number\> 54 55获取默认移动数据的SIM卡,使用Promise方式作为异步方法。 56 57**系统能力**:SystemCapability.Telephony.CellularData 58 59**返回值:** 60 61| 类型 | 说明 | 62| ----------------- | ------------------------------------------------------------ | 63| Promise\<number\> | 以Promise形式返回获取默认移动数据的SIM卡。<br />- 0:卡槽1。 <br />- 1:卡槽2。 | 64 65**示例:** 66 67```ts 68import { data } from '@kit.TelephonyKit'; 69import { BusinessError } from '@kit.BasicServicesKit'; 70 71data.getDefaultCellularDataSlotId().then((contextData: number) => { 72 console.log(`getDefaultCellularDataSlotId success, promise: contextData->${JSON.stringify(contextData)}`); 73}).catch((err: BusinessError) => { 74 console.error(`getDefaultCellularDataSlotId fail, promise: err->${JSON.stringify(err)}`); 75}); 76``` 77 78## data.getDefaultCellularDataSlotIdSync<sup>9+</sup> 79 80getDefaultCellularDataSlotIdSync(): number 81 82获取默认移动数据的SIM卡。 83 84**系统能力**:SystemCapability.Telephony.CellularData 85 86**返回值:** 87 88| 类型 | 说明 | 89| ------ | -------------------------------------------------- | 90| number | 获取默认移动数据的SIM卡。<br />- 0:卡槽1。 <br />- 1:卡槽2。 | 91 92**示例:** 93 94```ts 95import { data } from '@kit.TelephonyKit'; 96 97console.log("Result: "+ data.getDefaultCellularDataSlotIdSync()) 98``` 99 100 101## data.getCellularDataFlowType 102 103getCellularDataFlowType(callback: AsyncCallback\<DataFlowType\>): void 104 105获取蜂窝数据业务的上下行状态,使用callback方式作为异步方法。 106 107**系统能力**:SystemCapability.Telephony.CellularData 108 109**参数:** 110 111| 参数名 | 类型 | 必填 | 说明 | 112| -------- | ---------------------------------------------- | ---- | ---------- | 113| callback | AsyncCallback\<[DataFlowType](#dataflowtype)\> | 是 | 以callback形式异步返回结果。 | 114 115**示例:** 116 117```ts 118import { data } from '@kit.TelephonyKit'; 119import { BusinessError } from '@kit.BasicServicesKit'; 120 121data.getCellularDataFlowType((err: BusinessError, contextData: data.DataFlowType) => { 122 if(err){ 123 console.error(`getCellularDataFlowType fail,callback: err->${JSON.stringify(err)}, contextData->${JSON.stringify(contextData)}`); 124 }else{ 125 console.log(`getCellularDataFlowType success`); 126 } 127}); 128``` 129 130## data.getCellularDataFlowType 131 132getCellularDataFlowType(): Promise\<DataFlowType\> 133 134获取蜂窝数据业务的上下行状态,使用Promise方式作为异步方法。 135 136**系统能力**:SystemCapability.Telephony.CellularData 137 138**返回值:** 139 140| 类型 | 说明 | 141| ---------------------------------------- | ----------------------------------------------- | 142| Promise\<[DataFlowType](#dataflowtype)\> | 以Promise形式返回获取蜂窝数据业务的上下行状态。 | 143 144**示例:** 145 146```ts 147import { data } from '@kit.TelephonyKit'; 148import { BusinessError } from '@kit.BasicServicesKit'; 149 150data.getCellularDataFlowType().then((contextData: data.DataFlowType) => { 151 console.log(`getCellularDataFlowType success, promise: contextData->${JSON.stringify(contextData)}`); 152}).catch((err: BusinessError) => { 153 console.error(`getCellularDataFlowType fail, promise: err->${JSON.stringify(err)}`); 154}); 155``` 156 157## data.getCellularDataState 158 159getCellularDataState(callback: AsyncCallback\<DataConnectState\>): void 160 161获取蜂窝数据业务的连接状态,使用callback方式作为异步方法。 162 163**系统能力**:SystemCapability.Telephony.CellularData 164 165**参数:** 166 167| 参数名 | 类型 | 必填 | 说明 | 168| -------- | ------------------------------------------------------ | ---- | ---------- | 169| callback | AsyncCallback\<[DataConnectState](#dataconnectstate)\> | 是 | 以callback形式异步返回结果。 | 170 171**示例:** 172 173```ts 174import { data } from '@kit.TelephonyKit'; 175import { BusinessError } from '@kit.BasicServicesKit'; 176 177data.getCellularDataState((err: BusinessError, contextData: data.DataConnectState) => { 178 if(err){ 179 console.error(`getCellularDataState fail,callback: err->${JSON.stringify(err)}, contextData->${JSON.stringify(contextData)}`); 180 }else{ 181 console.log(`getCellularDataState success`); 182 } 183}); 184``` 185 186## data.getCellularDataState 187 188getCellularDataState(): Promise\<DataConnectState\> 189 190获取蜂窝数据业务的连接状态,使用Promise方式作为异步方法。 191 192**系统能力**:SystemCapability.Telephony.CellularData 193 194**返回值:** 195 196| 类型 | 说明 | 197| ------------------------------------------------ | ------------------------------------- | 198| Promise\<[DataConnectState](#dataconnectstate)\> | 以Promise形式返回获取PS域的连接状态。 | 199 200**示例:** 201 202```ts 203import { data } from '@kit.TelephonyKit'; 204import { BusinessError } from '@kit.BasicServicesKit'; 205 206data.getCellularDataState().then((contextData: data.DataConnectState) => { 207 console.log(`getCellularDataState success, promise: contextData->${JSON.stringify(contextData)}`); 208}).catch((err: BusinessError) => { 209 console.error(`getCellularDataState fail, promise: err->${JSON.stringify(err)}`); 210}); 211``` 212 213## data.isCellularDataEnabled 214 215isCellularDataEnabled(callback: AsyncCallback\<boolean\>): void 216 217检查蜂窝数据业务是否启用,使用callback方式作为异步方法。 218 219**需要权限**:ohos.permission.GET_NETWORK_INFO 220 221**系统能力**:SystemCapability.Telephony.CellularData 222 223**参数:** 224 225| 参数名 | 类型 | 必填 | 说明 | 226| -------- | ------------------------ | ---- | ------------------------------------------------------------ | 227| callback | AsyncCallback\<boolean\> | 是 | 以callback形式异步返回结果。<br />true:蜂窝数据业务已启用。<br />false:蜂窝数据业务已禁用。 | 228 229**错误码:** 230 231以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 232 233| 错误码ID | 错误信息 | 234| -------- | -------------------------------------------- | 235| 201 | Permission denied. | 236| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 237| 8300001 | Invalid parameter value. | 238| 8300002 | Service connection failed. | 239| 8300003 | System internal error. | 240| 8300999 | Internal error. | 241 242**示例:** 243 244```ts 245import { data } from '@kit.TelephonyKit'; 246import { BusinessError } from '@kit.BasicServicesKit'; 247 248data.isCellularDataEnabled((err: BusinessError, contextData: boolean) => { 249 if(err){ 250 console.error(`isCellularDataEnabled fail,callback: callback: err->${JSON.stringify(err)}, contextData->${JSON.stringify(contextData)}`); 251 }else{ 252 console.log(`isCellularDataEnabled success`); 253 } 254}); 255``` 256 257## data.isCellularDataEnabled 258 259isCellularDataEnabled(): Promise\<boolean\> 260 261检查蜂窝数据业务是否启用,使用Promise方式作为异步方法。 262 263**需要权限**:ohos.permission.GET_NETWORK_INFO 264 265**系统能力**:SystemCapability.Telephony.CellularData 266 267**返回值:** 268 269| 类型 | 说明 | 270| ------------------ | ------------------------------------------------------------ | 271| Promise\<boolean\> | 以Promise形式返回检查蜂窝数据业务是否启用。<br />true:蜂窝数据业务已启用。<br />false:蜂窝数据业务已禁用。 | 272 273**错误码:** 274 275以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 276 277| 错误码ID | 错误信息 | 278| -------- | -------------------------------------------- | 279| 201 | Permission denied. | 280| 8300002 | Service connection failed. | 281| 8300003 | System internal error. | 282| 8300999 | Internal error. | 283 284**示例:** 285 286```ts 287import { data } from '@kit.TelephonyKit'; 288import { BusinessError } from '@kit.BasicServicesKit'; 289 290data.isCellularDataEnabled().then((contextData: boolean) => { 291 console.log(`isCellularDataEnabled success, promise: contextData->${JSON.stringify(contextData)}`); 292}).catch((err: BusinessError) => { 293 console.error(`isCellularDataEnabled fail, promise: err->${JSON.stringify(err)}`); 294}); 295``` 296 297## data.isCellularDataEnabledSync<sup>12+</sup> 298 299isCellularDataEnabledSync(): boolean 300 301检查蜂窝数据业务是否启用,调用此API返回结果。 302 303**需要权限**:ohos.permission.GET_NETWORK_INFO 304 305**系统能力**:SystemCapability.Telephony.CellularData 306 307**返回值:** 308 309| 类型 | 说明 | 310| ------- | ------------------------------------------------------------ | 311| boolean | 用来返回检查蜂窝数据业务是否启用。<br />true:蜂窝数据业务已启用。<br />false:蜂窝数据业务已禁用。 | 312 313**错误码:** 314 315以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 316 317| 错误码ID | 错误信息 | 318| -------- | -------------------------------------------- | 319| 201 | Permission denied. | 320| 8300002 | Operation failed. Cannot connect to service. | 321| 8300003 | System internal error. | 322| 8300999 | Internal error. | 323 324**示例:** 325 326<!--code_no_check--> 327 328```ts 329import { data } from '@kit.TelephonyKit'; 330 331try { 332 let isEnabled: boolean = data.isCellularDataEnabledSync(); 333 console.log(`isCellularDataEnabledSync success : ${isEnabled}`); 334} catch (error) { 335 console.error(`isCellularDataEnabledSync fail : err->${JSON.stringify(error)}`); 336} 337``` 338 339## data.isCellularDataRoamingEnabled 340 341isCellularDataRoamingEnabled(slotId: number, callback: AsyncCallback\<boolean\>): void 342 343检查蜂窝数据业务是否启用漫游,使用callback方式作为异步方法。 344 345**需要权限**:ohos.permission.GET_NETWORK_INFO 346 347**系统能力**:SystemCapability.Telephony.CellularData 348 349**参数:** 350 351| 参数名 | 类型 | 必填 | 说明 | 352| -------- | ------------------------ | ---- | ------------------------------------------------------------ | 353| slotId | number | 是 | 卡槽ID。<br />- 0:卡槽1。<br />- 1:卡槽2。 | 354| callback | AsyncCallback\<boolean\> | 是 | 以callback形式异步返回结果。<br />true:蜂窝数据业务已启用漫游。<br />false:蜂窝数据业务已禁用漫游。 | 355 356**错误码:** 357 358以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 359 360| 错误码ID | 错误信息 | 361| -------- | -------------------------------------------- | 362| 201 | Permission denied. | 363| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 364| 8300001 | Invalid parameter value. | 365| 8300002 | Service connection failed. | 366| 8300003 | System internal error. | 367| 8300999 | Internal error. | 368 369**示例:** 370 371```ts 372import { data } from '@kit.TelephonyKit'; 373import { BusinessError } from '@kit.BasicServicesKit'; 374 375data.isCellularDataRoamingEnabled(0, (err: BusinessError, contextData: boolean) => { 376 if(err){ 377 console.error(`isCellularDataRoamingEnabled fail,callback: err->${JSON.stringify(err)}, contextData->${JSON.stringify(contextData)}`); 378 }else{ 379 console.log(`isCellularDataRoamingEnabled success`); 380 } 381}); 382``` 383 384## data.isCellularDataRoamingEnabled 385 386isCellularDataRoamingEnabled(slotId: number): Promise\<boolean\> 387 388检查蜂窝数据业务是否启用漫游,使用Promise方式作为异步方法。 389 390**需要权限**:ohos.permission.GET_NETWORK_INFO 391 392**系统能力**:SystemCapability.Telephony.CellularData 393 394**参数:** 395 396| 参数名 | 类型 | 必填 | 说明 | 397| ------ | ------ | ---- | ---------------------------------------- | 398| slotId | number | 是 | 卡槽ID。<br />- 0:卡槽1。<br />- 1:卡槽2。 | 399 400**返回值:** 401 402| 类型 | 说明 | 403| ------------------ | ------------------------------------------------------------ | 404| Promise\<boolean\> | 以Promise形式返回检查蜂窝数据业务是否启用漫游。<br />true:蜂窝数据业务已启用漫游。<br />false:蜂窝数据业务已禁用漫游。 | 405 406**错误码:** 407 408以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 409 410| 错误码ID | 错误信息 | 411| -------- | -------------------------------------------- | 412| 201 | Permission denied. | 413| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 414| 8300001 | Invalid parameter value. | 415| 8300002 | Service connection failed. | 416| 8300003 | System internal error. | 417| 8300999 | Internal error. | 418 419**示例:** 420 421```ts 422import { data } from '@kit.TelephonyKit'; 423import { BusinessError } from '@kit.BasicServicesKit'; 424 425data.isCellularDataRoamingEnabled(0).then((contextData: boolean) => { 426 console.log(`isCellularDataRoamingEnabled success, promise: contextData->${JSON.stringify(contextData)}`); 427}).catch((err: BusinessError) => { 428 console.error(`isCellularDataRoamingEnabled fail, promise: err->${JSON.stringify(err)}`); 429}); 430``` 431 432## data.isCellularDataRoamingEnabledSync<sup>12+</sup> 433 434isCellularDataRoamingEnabledSync(slotId: number): boolean 435 436检查蜂窝数据业务是否启用漫游,调用此API返回结果。 437 438**需要权限**:ohos.permission.GET_NETWORK_INFO 439 440**系统能力**:SystemCapability.Telephony.CellularData 441 442**参数:** 443 444| 参数名 | 类型 | 必填 | 说明 | 445| ------ | ------ | ---- | ---------------------------------------- | 446| slotId | number | 是 | 卡槽ID。<br />- 0:卡槽1。<br />- 1:卡槽2。 | 447 448**返回值:** 449 450| 类型 | 说明 | 451| ------- | ------------------------------------------------------------ | 452| boolean | 用来返回检查蜂窝数据业务是否启用漫游。<br />true:蜂窝数据业务已启用漫游。<br />false:蜂窝数据业务已禁用漫游。 | 453 454**错误码:** 455 456以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 457 458| 错误码ID | 错误信息 | 459| -------- | ------------------------------------------------------------ | 460| 201 | Permission denied. | 461| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 462| 8300001 | Invalid parameter value. | 463| 8300002 | Operation failed. Cannot connect to service. | 464| 8300003 | System internal error. | 465| 8300999 | Internal error. | 466 467**示例:** 468 469<!--code_no_check--> 470 471```ts 472import { data } from '@kit.TelephonyKit'; 473 474try { 475 let isEnabled: boolean = data.isCellularDataRoamingEnabledSync(0); 476 console.log(`isCellularDataRoamingEnabledSync success : ${isEnabled}`); 477} catch (error) { 478 console.error(`isCellularDataRoamingEnabledSync fail : err->${JSON.stringify(error)}`); 479} 480``` 481 482## data.getDefaultCellularDataSimId<sup>10+</sup> 483 484getDefaultCellularDataSimId(): number 485 486获取默认移动数据的SIM卡ID。 487 488**系统能力**:SystemCapability.Telephony.CellularData 489 490**返回值:** 491 492| 类型 | 说明 | 493| ------ | -------------------------------------------------- | 494| number | 获取默认移动数据的SIM卡ID。<br/>与SIM卡绑定,从1开始递增。 | 495 496**示例:** 497 498```ts 499import { data } from '@kit.TelephonyKit'; 500 501console.log("Result: "+ data.getDefaultCellularDataSimId()); 502``` 503 504## data.queryAllApns<sup>16+</sup> 505 506queryAllApns(): Promise\<Array\<ApnInfo\>\> 507 508异步获取默认移动数据的SIM卡的APN(access point name,接入点名称)信息。 509 510**需要权限**:ohos.permission.MANAGE_APN_SETTING(该权限是受限开放权限,仅需要连接移动数据专网进行办公室可以申请该权限,权限介绍参见[权限定义](../../security/AccessToken/restricted-permissions.md#ohospermissionmanage_apn_setting)) 511 512**系统能力**:SystemCapability.Telephony.CellularData 513 514**返回值:** 515 516| 类型 | 说明 | 517| ------ |--------------------------------------------| 518| Promise\<Array\<[ApnInfo](#apninfo16)\>\> | Promise对象,返回默认移动数据的SIM卡的APN信息列表。 | 519 520**错误码:** 521 522以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 523 524| 错误码ID | 错误信息 | 525| -------- | ------------------------------------------------------------ | 526| 201 | Permission denied. | 527 528**示例:** 529 530```ts 531import { data } from '@kit.TelephonyKit'; 532import { BusinessError } from '@kit.BasicServicesKit'; 533 534data.queryAllApns().then((data: Array<data.ApnInfo>) => { 535 console.info(`queryAllApns success, promise: data->${JSON.stringify(data)}`); 536}).catch((err: BusinessError) => { 537 console.error(`queryAllApns failed, promise: err->${JSON.stringify(err)}`); 538}); 539``` 540 541## data.queryApnIds<sup>16+</sup> 542 543queryApnIds(apnInfo: ApnInfo): Promise\<Array\<number\>\> 544 545异步获取传入的ApnInfo对应的ApnId信息。 546 547**需要权限**:ohos.permission.MANAGE_APN_SETTING(该权限是受限开放权限,仅需要连接移动数据专网进行办公室可以申请该权限,权限介绍参见[权限定义](../../security/AccessToken/restricted-permissions.md#ohospermissionmanage_apn_setting)) 548 549**系统能力**:SystemCapability.Telephony.CellularData 550 551**参数:** 552 553| 参数名 | 类型 | 必填 | 说明 | 554| ------ | ------ | ---- | ---------------------------------------- | 555| apnInfo | [ApnInfo](#apninfo16) | 是 | 要查询的APN参数。 | 556 557 558**返回值:** 559 560| 类型 | 说明 | 561| ------ |-----------------------------| 562| Promise\<Array\<number\>\> | Promise对象,返回传入的ApnInfo对应的ApnId信息列表。 | 563 564**错误码:** 565 566以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 567 568| 错误码ID | 错误信息 | 569| -------- | ------------------------------------------------------------ | 570| 201 | Permission denied. | 571 572**示例:** 573 574```ts 575import { data } from '@kit.TelephonyKit'; 576import { BusinessError } from '@kit.BasicServicesKit'; 577 578let apnInfo: data.ApnInfo; 579apnInfo = { 580 apnName: "CMNET", 581 apn: "cmnet", 582 mcc: "460", 583 mnc: "07", 584}; 585 586data.queryApnIds(apnInfo).then((data: Array<number>) => { 587 console.info(`queryApnIds success, promise: data->${JSON.stringify(data)}`); 588}).catch((err: BusinessError) => { 589 console.error(`queryApnIds failed, promise: err->${JSON.stringify(err)}`); 590}); 591``` 592 593## data.setPreferredApn<sup>16+</sup> 594 595setPreferredApn(apnId: number): Promise\<boolean\> 596 597异步设置apnId对应的APN为首选APN。 598 599> 注意: 600> 601> 如果传入的apnId为无效的apnId,切回运营商默认配置的优选Apn。 602 603**需要权限**:ohos.permission.MANAGE_APN_SETTING(该权限是受限开放权限,仅需要连接移动数据专网进行办公室可以申请该权限,权限介绍参见[权限定义](../../security/AccessToken/restricted-permissions.md#ohospermissionmanage_apn_setting)) 604 605**系统能力**:SystemCapability.Telephony.CellularData 606 607**参数:** 608 609| 参数名 | 类型 | 必填 | 说明 | 610| ------ | ------ | ---- | ---------------------------------------- | 611| apnId | number | 是 | 要设置的apnId,可以通过[queryApnIds](#dataqueryapnids16)查询。 | 612 613**返回值:** 614 615| 类型 | 说明 | 616| ------ |------------------------| 617| Promise\<boolean\> | Promise对象,返回设置的结果,在未插卡时会返回fasle。 | 618 619**错误码:** 620 621以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 622 623| 错误码ID | 错误信息 | 624| -------- | ------------------------------------------------------------ | 625| 201 | Permission denied. | 626 627**示例:** 628 629```ts 630import { data } from '@kit.TelephonyKit'; 631import { BusinessError } from '@kit.BasicServicesKit'; 632 633let apnId: number = 0; // apnId为通过queryApnIds返回的有效值,setPreferredApn传入无效的apnId会切回运营商默认配置的优选APN。 634data.setPreferredApn(apnId).then((data: boolean) => { 635 console.info(`setPreferredApn success, promise: data->${JSON.stringify(data)}`); 636}).catch((err: BusinessError) => { 637 console.error(`setPreferredApn failed, promise: err->${JSON.stringify(err)}`); 638}); 639``` 640 641## data.getActiveApnName<sup>20+</sup> 642 643getActiveApnName(): Promise\<string\> 644 645异步获取默认移动数据SIM卡对应的处于激活状态的数据业务APN(access point name,接入点名称)name信息,若不处于激活状态,返回为空字符串。 646 647**需要权限**:ohos.permission.GET_NETWORK_INFO 648 649**系统能力**:SystemCapability.Telephony.CellularData 650 651**返回值:** 652 653| 类型 | 说明 | 654| ------ |--------------------------------------------| 655| Promise\<string\> | Promise对象,返回默认移动数据SIM卡对应的处于激活状态的数据业务APN name信息。 | 656 657**错误码:** 658 659以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 660 661| 错误码ID | 错误信息 | 662| -------- | ------------------------------------------------------------ | 663| 201 | Permission denied. | 664 665**示例:** 666 667```ts 668import { data } from '@kit.TelephonyKit'; 669import { BusinessError } from '@kit.BasicServicesKit'; 670 671data.getActiveApnName().then((data: string) => { 672 console.info(`getActiveApnName success, promise: data->${JSON.stringify(data)}`); 673}).catch((err: BusinessError) => { 674 console.error(`getActiveApnName failed, promise: err->${JSON.stringify(err)}`); 675}); 676``` 677 678## DataFlowType 679 680描述蜂窝数据流类型。 681 682**系统能力**:SystemCapability.Telephony.CellularData 683 684| 名称 | 值 | 说明 | 685| ---------------------- | ---- | ------------------------------------------ | 686| DATA_FLOW_TYPE_NONE | 0 | 表示没有上行或下行数据。 | 687| DATA_FLOW_TYPE_DOWN | 1 | 表示只有下行数据。 | 688| DATA_FLOW_TYPE_UP | 2 | 表示只有上行数据。 | 689| DATA_FLOW_TYPE_UP_DOWN | 3 | 表示有上下行数据。 | 690| DATA_FLOW_TYPE_DORMANT | 4 | 表示没有上下行数据,底层链路处于休眠状态。 | 691 692## DataConnectState 693 694描述蜂窝数据链路连接状态。 695 696**系统能力**:SystemCapability.Telephony.CellularData 697 698| 名称 | 值 | 说明 | 699| ----------------------- | ---- | -------------------------- | 700| DATA_STATE_UNKNOWN | -1 | 表示蜂窝数据链路未知。 | 701| DATA_STATE_DISCONNECTED | 0 | 表示蜂窝数据链路断开。 | 702| DATA_STATE_CONNECTING | 1 | 表示正在连接蜂窝数据链路。 | 703| DATA_STATE_CONNECTED | 2 | 表示蜂窝数据链路已连接。 | 704| DATA_STATE_SUSPENDED | 3 | 表示蜂窝数据链路被挂起。 | 705 706## ApnInfo<sup>16+</sup> 707 708APN信息。 709 710**系统能力**:SystemCapability.Telephony.CellularData 711 712| 名称 | 类型 | 只读 | 可选 | 说明 | 713|------------|----------|---------|------------|-------------| 714| apnName | string | 否 | 否 | APN名称。 | 715| apn | string | 否 | 否 | APN。 | 716| mcc | string | 否 | 否 | Sim卡的mcc。 | 717| mnc | string | 否 | 否 | Sim卡的mnc。 | 718| user | string | 否 | 是 | 用户名。 | 719| type | string | 否 | 是 | APN类型。 | 720| proxy | string | 否 | 是 | 代理地址。 | 721| mmsproxy | string | 否 | 是 | 彩信代理。 | 722