• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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