1# @ohos.telephony.data (蜂窝数据) 2 3蜂窝数据提供了移动数据管理能力,包括获取默认移动数据的SIM卡,获取蜂窝数据业务的上下行和分组交换域(PS域)的连接状态,以及检查蜂窝数据业务和漫游是否启用等。 4 5>**说明:** 6> 7>本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8 9## 导入模块 10 11```ts 12import { data } from '@kit.TelephonyKit'; 13``` 14 15## data.getDefaultCellularDataSlotId 16 17getDefaultCellularDataSlotId(callback: AsyncCallback\<number\>): void 18 19获取默认移动数据的SIM卡,使用callback方式作为异步方法。 20 21**系统能力**:SystemCapability.Telephony.CellularData 22 23**参数:** 24 25| 参数名 | 类型 | 必填 | 说明 | 26| -------- | ----------------------- | ---- | ------------------------------------------ | 27| callback | AsyncCallback\<number\> | 是 | 以callback形式异步返回结果。<br />0:卡槽1。<br />1:卡槽2。 | 28 29**示例:** 30 31```ts 32import { data } from '@kit.TelephonyKit'; 33import { BusinessError } from '@kit.BasicServicesKit'; 34 35data.getDefaultCellularDataSlotId((err: BusinessError, contextData: number) => { 36 if(err){ 37 console.error(`getDefaultCellularDataSlotId fail,callback: err->${JSON.stringify(err)}, contextData->${JSON.stringify(contextData)}`); 38 }else{ 39 console.log(`getDefaultCellularDataSlotId success`); 40 } 41}); 42``` 43 44## data.getDefaultCellularDataSlotId 45 46getDefaultCellularDataSlotId(): Promise\<number\> 47 48获取默认移动数据的SIM卡,使用Promise方式作为异步方法。 49 50**系统能力**:SystemCapability.Telephony.CellularData 51 52**返回值:** 53 54| 类型 | 说明 | 55| ----------------- | ------------------------------------------------------------ | 56| Promise\<number\> | 以Promise形式返回获取默认移动数据的SIM卡。<br />0:卡槽1。<br />1:卡槽2。 | 57 58**示例:** 59 60```ts 61import { data } from '@kit.TelephonyKit'; 62import { BusinessError } from '@kit.BasicServicesKit'; 63 64data.getDefaultCellularDataSlotId().then((contextData: number) => { 65 console.log(`getDefaultCellularDataSlotId success, promise: contextData->${JSON.stringify(contextData)}`); 66}).catch((err: BusinessError) => { 67 console.error(`getDefaultCellularDataSlotId fail, promise: err->${JSON.stringify(err)}`); 68}); 69``` 70 71## data.getDefaultCellularDataSlotIdSync<sup>9+</sup> 72 73getDefaultCellularDataSlotIdSync(): number 74 75获取默认移动数据的SIM卡 76 77**系统能力**:SystemCapability.Telephony.CellularData 78 79**返回值:** 80 81| 类型 | 说明 | 82| ------ | -------------------------------------------------- | 83| number | 获取默认移动数据的SIM卡。<br />0:卡槽1。<br />1:卡槽2。 | 84 85**示例:** 86 87```ts 88import { data } from '@kit.TelephonyKit'; 89 90console.log("Result: "+ data.getDefaultCellularDataSlotIdSync()) 91``` 92 93 94## data.getCellularDataFlowType 95 96getCellularDataFlowType(callback: AsyncCallback\<DataFlowType\>): void 97 98获取蜂窝数据业务的上下行状态,使用callback方式作为异步方法。 99 100**系统能力**:SystemCapability.Telephony.CellularData 101 102**参数:** 103 104| 参数名 | 类型 | 必填 | 说明 | 105| -------- | ---------------------------------------------- | ---- | ---------- | 106| callback | AsyncCallback\<[DataFlowType](#dataflowtype)\> | 是 | 以callback形式异步返回结果。 | 107 108**示例:** 109 110```ts 111import { data } from '@kit.TelephonyKit'; 112import { BusinessError } from '@kit.BasicServicesKit'; 113 114data.getCellularDataFlowType((err: BusinessError, contextData: data.DataFlowType) => { 115 if(err){ 116 console.error(`getCellularDataFlowType fail,callback: err->${JSON.stringify(err)}, contextData->${JSON.stringify(contextData)}`); 117 }else{ 118 console.log(`getCellularDataFlowType success`); 119 } 120}); 121``` 122 123## data.getCellularDataFlowType 124 125getCellularDataFlowType(): Promise\<DataFlowType\> 126 127获取蜂窝数据业务的上下行状态,使用Promise方式作为异步方法。 128 129**系统能力**:SystemCapability.Telephony.CellularData 130 131**返回值:** 132 133| 类型 | 说明 | 134| ---------------------------------------- | ----------------------------------------------- | 135| Promise\<[DataFlowType](#dataflowtype)\> | 以Promise形式返回获取蜂窝数据业务的上下行状态。 | 136 137**示例:** 138 139```ts 140import { data } from '@kit.TelephonyKit'; 141import { BusinessError } from '@kit.BasicServicesKit'; 142 143data.getCellularDataFlowType().then((contextData: data.DataFlowType) => { 144 console.log(`getCellularDataFlowType success, promise: contextData->${JSON.stringify(contextData)}`); 145}).catch((err: BusinessError) => { 146 console.error(`getCellularDataFlowType fail, promise: err->${JSON.stringify(err)}`); 147}); 148``` 149 150## data.getCellularDataState 151 152getCellularDataState(callback: AsyncCallback\<DataConnectState\>): void 153 154获取分组交换域(PS域)的连接状态,使用callback方式作为异步方法。 155 156**系统能力**:SystemCapability.Telephony.CellularData 157 158**参数:** 159 160| 参数名 | 类型 | 必填 | 说明 | 161| -------- | ------------------------------------------------------ | ---- | ---------- | 162| callback | AsyncCallback\<[DataConnectState](#dataconnectstate)\> | 是 | 以callback形式异步返回结果。 | 163 164**示例:** 165 166```ts 167import { data } from '@kit.TelephonyKit'; 168import { BusinessError } from '@kit.BasicServicesKit'; 169 170data.getCellularDataState((err: BusinessError, contextData: data.DataConnectState) => { 171 if(err){ 172 console.error(`getCellularDataState fail,callback: err->${JSON.stringify(err)}, contextData->${JSON.stringify(contextData)}`); 173 }else{ 174 console.log(`getCellularDataState success`); 175 } 176}); 177``` 178 179## data.getCellularDataState 180 181getCellularDataState(): Promise\<DataConnectState\> 182 183获取分组交换域(PS域)的连接状态,使用Promise方式作为异步方法。 184 185**系统能力**:SystemCapability.Telephony.CellularData 186 187**返回值:** 188 189| 类型 | 说明 | 190| ------------------------------------------------ | ------------------------------------- | 191| Promise\<[DataConnectState](#dataconnectstate)\> | 以Promise形式返回获取PS域的连接状态。 | 192 193**示例:** 194 195```ts 196import { data } from '@kit.TelephonyKit'; 197import { BusinessError } from '@kit.BasicServicesKit'; 198 199data.getCellularDataState().then((contextData: data.DataConnectState) => { 200 console.log(`getCellularDataState success, promise: contextData->${JSON.stringify(contextData)}`); 201}).catch((err: BusinessError) => { 202 console.error(`getCellularDataState fail, promise: err->${JSON.stringify(err)}`); 203}); 204``` 205 206## data.isCellularDataEnabled 207 208isCellularDataEnabled(callback: AsyncCallback\<boolean\>): void 209 210检查蜂窝数据业务是否启用,使用callback方式作为异步方法。 211 212**需要权限**:ohos.permission.GET_NETWORK_INFO 213 214**系统能力**:SystemCapability.Telephony.CellularData 215 216**参数:** 217 218| 参数名 | 类型 | 必填 | 说明 | 219| -------- | ------------------------ | ---- | ------------------------------------------------------------ | 220| callback | AsyncCallback\<boolean\> | 是 | 以callback形式异步返回结果。<br />true:蜂窝数据业务已启用。<br />false:蜂窝数据业务已禁用。 | 221 222**错误码:** 223 224以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 225 226| 错误码ID | 错误信息 | 227| -------- | -------------------------------------------- | 228| 201 | Permission denied. | 229| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 230| 8300001 | Invalid parameter value. | 231| 8300002 | Service connection failed. | 232| 8300003 | System internal error. | 233| 8300999 | Unknown error. | 234 235**示例:** 236 237```ts 238import { data } from '@kit.TelephonyKit'; 239import { BusinessError } from '@kit.BasicServicesKit'; 240 241data.isCellularDataEnabled((err: BusinessError, contextData: boolean) => { 242 if(err){ 243 console.error(`isCellularDataEnabled fail,callback: callback: err->${JSON.stringify(err)}, contextData->${JSON.stringify(contextData)}`); 244 }else{ 245 console.log(`isCellularDataEnabled success`); 246 } 247}); 248``` 249 250## data.isCellularDataEnabled 251 252isCellularDataEnabled(): Promise\<boolean\> 253 254检查蜂窝数据业务是否启用,使用Promise方式作为异步方法。 255 256**需要权限**:ohos.permission.GET_NETWORK_INFO 257 258**系统能力**:SystemCapability.Telephony.CellularData 259 260**返回值:** 261 262| 类型 | 说明 | 263| ------------------ | ------------------------------------------------------------ | 264| Promise\<boolean\> | 以Promise形式返回检查蜂窝数据业务是否启用。<br />true:蜂窝数据业务已启用。<br />false:蜂窝数据业务已禁用。 | 265 266**错误码:** 267 268以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 269 270| 错误码ID | 错误信息 | 271| -------- | -------------------------------------------- | 272| 201 | Permission denied. | 273| 8300002 | Service connection failed. | 274| 8300003 | System internal error. | 275| 8300999 | Unknown error. | 276 277**示例:** 278 279```ts 280import { data } from '@kit.TelephonyKit'; 281import { BusinessError } from '@kit.BasicServicesKit'; 282 283data.isCellularDataEnabled().then((contextData: boolean) => { 284 console.log(`isCellularDataEnabled success, promise: contextData->${JSON.stringify(contextData)}`); 285}).catch((err: BusinessError) => { 286 console.error(`isCellularDataEnabled fail, promise: err->${JSON.stringify(err)}`); 287}); 288``` 289 290## data.isCellularDataEnabledSync<sup>12+</sup> 291 292isCellularDataEnabledSync(): boolean 293 294检查蜂窝数据业务是否启用,调用此API返回结果。 295 296**需要权限**:ohos.permission.GET_NETWORK_INFO 297 298**系统能力**:SystemCapability.Telephony.CellularData 299 300**返回值:** 301 302| 类型 | 说明 | 303| ------- | ------------------------------------------------------------ | 304| boolean | 用来返回检查蜂窝数据业务是否启用。<br />true:蜂窝数据业务已启用。<br />false:蜂窝数据业务已禁用。 | 305 306**错误码:** 307 308以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 309 310| 错误码ID | 错误信息 | 311| -------- | -------------------------------------------- | 312| 201 | Permission denied. | 313| 8300002 | Operation failed. Cannot connect to service. | 314| 8300003 | System internal error. | 315| 8300999 | Unknown error code. | 316 317**示例:** 318 319<!--code_no_check--> 320 321```ts 322import { data } from '@kit.TelephonyKit'; 323 324try { 325 let isEnabled: boolean = data.isCellularDataEnabledSync(); 326 console.log(`isCellularDataEnabledSync success : ${isEnabled}`); 327} catch (error) { 328 console.error(`isCellularDataEnabledSync fail : err->${JSON.stringify(error)}`); 329} 330``` 331 332## data.isCellularDataRoamingEnabled 333 334isCellularDataRoamingEnabled(slotId: number, callback: AsyncCallback\<boolean\>): void 335 336检查蜂窝数据业务是否启用漫游,使用callback方式作为异步方法。 337 338**需要权限**:ohos.permission.GET_NETWORK_INFO 339 340**系统能力**:SystemCapability.Telephony.CellularData 341 342**参数:** 343 344| 参数名 | 类型 | 必填 | 说明 | 345| -------- | ------------------------ | ---- | ------------------------------------------------------------ | 346| slotId | number | 是 | 卡槽ID。<br />0:卡槽1。<br />1:卡槽2。 | 347| callback | AsyncCallback\<boolean\> | 是 | 以callback形式异步返回结果。<br />true:蜂窝数据业务已启用漫游。<br />false:蜂窝数据业务已禁用漫游。 | 348 349**错误码:** 350 351以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 352 353| 错误码ID | 错误信息 | 354| -------- | -------------------------------------------- | 355| 201 | Permission denied. | 356| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 357| 8300001 | Invalid parameter value. | 358| 8300002 | Service connection failed. | 359| 8300003 | System internal error. | 360| 8300999 | Unknown error. | 361 362**示例:** 363 364```ts 365import { data } from '@kit.TelephonyKit'; 366import { BusinessError } from '@kit.BasicServicesKit'; 367 368data.isCellularDataRoamingEnabled(0, (err: BusinessError, contextData: boolean) => { 369 if(err){ 370 console.error(`isCellularDataRoamingEnabled fail,callback: err->${JSON.stringify(err)}, contextData->${JSON.stringify(contextData)}`); 371 }else{ 372 console.log(`isCellularDataRoamingEnabled success`); 373 } 374}); 375``` 376 377## data.isCellularDataRoamingEnabled 378 379isCellularDataRoamingEnabled(slotId: number): Promise\<boolean\> 380 381检查蜂窝数据业务是否启用漫游,使用Promise方式作为异步方法。 382 383**需要权限**:ohos.permission.GET_NETWORK_INFO 384 385**系统能力**:SystemCapability.Telephony.CellularData 386 387**参数:** 388 389| 参数名 | 类型 | 必填 | 说明 | 390| ------ | ------ | ---- | ---------------------------------------- | 391| slotId | number | 是 | 卡槽ID。<br />0:卡槽1。<br />1:卡槽2。 | 392 393**返回值:** 394 395| 类型 | 说明 | 396| ------------------ | ------------------------------------------------------------ | 397| Promise\<boolean\> | 以Promise形式返回检查蜂窝数据业务是否启用漫游。<br />true:蜂窝数据业务已启用漫游。<br />false:蜂窝数据业务已禁用漫游。 | 398 399**错误码:** 400 401以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 402 403| 错误码ID | 错误信息 | 404| -------- | -------------------------------------------- | 405| 201 | Permission denied. | 406| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 407| 8300001 | Invalid parameter value. | 408| 8300002 | Service connection failed. | 409| 8300003 | System internal error. | 410| 8300999 | Unknown error. | 411 412**示例:** 413 414```ts 415import { data } from '@kit.TelephonyKit'; 416import { BusinessError } from '@kit.BasicServicesKit'; 417 418data.isCellularDataRoamingEnabled(0).then((contextData: boolean) => { 419 console.log(`isCellularDataRoamingEnabled success, promise: contextData->${JSON.stringify(contextData)}`); 420}).catch((err: BusinessError) => { 421 console.error(`isCellularDataRoamingEnabled fail, promise: err->${JSON.stringify(err)}`); 422}); 423``` 424 425## data.isCellularDataRoamingEnabledSync<sup>12+</sup> 426 427isCellularDataRoamingEnabledSync(slotId: number): boolean 428 429检查蜂窝数据业务是否启用漫游,调用此API返回结果。 430 431**需要权限**:ohos.permission.GET_NETWORK_INFO 432 433**系统能力**:SystemCapability.Telephony.CellularData 434 435**参数:** 436 437| 参数名 | 类型 | 必填 | 说明 | 438| ------ | ------ | ---- | ---------------------------------------- | 439| slotId | number | 是 | 卡槽ID。<br />0:卡槽1。<br />1:卡槽2。 | 440 441**返回值:** 442 443| 类型 | 说明 | 444| ------- | ------------------------------------------------------------ | 445| boolean | 用来返回检查蜂窝数据业务是否启用漫游。<br />true:蜂窝数据业务已启用漫游。<br />false:蜂窝数据业务已禁用漫游。 | 446 447**错误码:** 448 449以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 450 451| 错误码ID | 错误信息 | 452| -------- | ------------------------------------------------------------ | 453| 201 | Permission denied. | 454| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; | 455| 8300001 | Invalid parameter value. | 456| 8300002 | Operation failed. Cannot connect to service. | 457| 8300003 | System internal error. | 458| 8300999 | Unknown error code. | 459 460**示例:** 461 462<!--code_no_check--> 463 464```ts 465import { data } from '@kit.TelephonyKit'; 466 467try { 468 let isEnabled: boolean = data.isCellularDataRoamingEnabledSync(0); 469 console.log(`isCellularDataRoamingEnabledSync success : ${isEnabled}`); 470} catch (error) { 471 console.error(`isCellularDataRoamingEnabledSync fail : err->${JSON.stringify(error)}`); 472} 473``` 474 475## data.getDefaultCellularDataSimId<sup>10+</sup> 476 477getDefaultCellularDataSimId(): number 478 479获取默认移动数据的SIM卡ID。 480 481**系统能力**:SystemCapability.Telephony.CellularData 482 483**返回值:** 484 485| 类型 | 说明 | 486| ------ | -------------------------------------------------- | 487| number | 获取默认移动数据的SIM卡ID。<br/>与SIM卡绑定,从1开始递增。 | 488 489**示例:** 490 491```ts 492import { data } from '@kit.TelephonyKit'; 493 494console.log("Result: "+ data.getDefaultCellularDataSimId()); 495``` 496 497## DataFlowType 498 499描述蜂窝数据流类型。 500 501**系统能力**:SystemCapability.Telephony.CellularData 502 503| 名称 | 值 | 说明 | 504| ---------------------- | ---- | ------------------------------------------ | 505| DATA_FLOW_TYPE_NONE | 0 | 表示没有上行或下行数据。 | 506| DATA_FLOW_TYPE_DOWN | 1 | 表示只有下行数据。 | 507| DATA_FLOW_TYPE_UP | 2 | 表示只有上行数据。 | 508| DATA_FLOW_TYPE_UP_DOWN | 3 | 表示有上下行数据。 | 509| DATA_FLOW_TYPE_DORMANT | 4 | 表示没有上下行数据,底层链路处于休眠状态。 | 510 511## DataConnectState 512 513描述蜂窝数据链路连接状态。 514 515**系统能力**:SystemCapability.Telephony.CellularData 516 517| 名称 | 值 | 说明 | 518| ----------------------- | ---- | -------------------------- | 519| DATA_STATE_UNKNOWN | -1 | 表示蜂窝数据链路未知。 | 520| DATA_STATE_DISCONNECTED | 0 | 表示蜂窝数据链路断开。 | 521| DATA_STATE_CONNECTING | 1 | 表示正在连接蜂窝数据链路。 | 522| DATA_STATE_CONNECTED | 2 | 表示蜂窝数据链路已连接。 | 523| DATA_STATE_SUSPENDED | 3 | 表示蜂窝数据链路被挂起。 | 524