# @ohos.telephony.data (蜂窝数据) 蜂窝数据提供了移动数据管理能力,包括获取、设置默认移动数据的SIM卡,获取蜂窝数据业务的上下行和分组交换域(PS域)的连接状态,以及检查蜂窝数据业务和漫游是否启用等。 >**说明:** > >本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 ## 导入模块 ```js import data from '@ohos.telephony.data'; ``` ## data.getDefaultCellularDataSlotId getDefaultCellularDataSlotId(callback: AsyncCallback\): void 获取默认移动数据的SIM卡,使用callback方式作为异步方法。 **系统能力**:SystemCapability.Telephony.CellularData **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------- | ---- | ------------------------------------------ | | callback | AsyncCallback\ | 是 | 回调函数。
0:卡槽1。
1:卡槽2。 | **示例:** ```js data.getDefaultCellularDataSlotId((err, data) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); ``` ## data.getDefaultCellularDataSlotId getDefaultCellularDataSlotId(): Promise\ 获取默认移动数据的SIM卡,使用Promise方式作为异步方法。 **系统能力**:SystemCapability.Telephony.CellularData **返回值:** | 类型 | 说明 | | ----------------- | ------------------------------------------------------------ | | Promise\ | 以Promise形式返回获取默认移动数据的SIM卡。
0:卡槽1。
1:卡槽2。 | **示例:** ```js let promise = data.getDefaultCellularDataSlotId(); promise.then((data) => { console.log(`getDefaultCellularDataSlotId success, promise: data->${JSON.stringify(data)}`); }).catch((err) => { console.error(`getDefaultCellularDataSlotId fail, promise: err->${JSON.stringify(err)}`); }); ``` ## data.getDefaultCellularDataSlotIdSync9+ getDefaultCellularDataSlotIdSync(): number 获取默认移动数据的SIM卡 **系统能力**:SystemCapability.Telephony.CellularData **返回值:** | 类型 | 说明 | | ------ | -------------------------------------------------- | | number | 获取默认移动数据的SIM卡。
0:卡槽1。
1:卡槽2。 | **示例:** ```js console.log("Result: "+ data.getDefaultCellularDataSlotIdSync()) ``` ## data.setDefaultCellularDataSlotId setDefaultCellularDataSlotId(slotId: number, callback: AsyncCallback\): void 设置默认移动数据的SIM卡,使用callback方式作为异步方法。 **系统接口:** 此接口为系统接口。 **需要权限**:ohos.permission.SET_TELEPHONY_STATE **系统能力**:SystemCapability.Telephony.CellularData **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | --------------------- | ---- | ------------------------------------------------------------ | | slotId | number | 是 | SIM卡槽ID。
- 0:卡槽1。
- 1:卡槽2。
- -1:清除默认配置。 | | callback | AsyncCallback\ | 是 | 回调函数。 | **错误码:** 以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)。 | 错误码ID | 错误信息 | | -------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 8300001 | Invalid parameter value. | | 8300002 | Operation failed. Cannot connect to service. | | 8300003 | System internal error. | | 8300004 | Do not have sim card. | | 8300999 | Unknown error code. | | 8301001 | SIM card is not activated. | **示例:** ```js data.setDefaultCellularDataSlotId(0, (err) => { console.log(`callback: err->${JSON.stringify(err)}.`); }); ``` ## data.setDefaultCellularDataSlotId setDefaultCellularDataSlotId(slotId: number): Promise\ 设置默认移动数据的SIM卡,使用Promise方式作为异步方法。 **系统接口:** 此接口为系统接口。 **需要权限**:ohos.permission.SET_TELEPHONY_STATE **系统能力**:SystemCapability.Telephony.CellularData **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------ | ------ | ---- | ------------------------------------------------------------ | | slotId | number | 是 | SIM卡槽ID。
- 0:卡槽1。
- 1:卡槽2。
- -1:清除默认配置。 | **返回值:** | 类型 | 说明 | | --------------- | ------------------------------- | | Promise\ | 以Promise形式异步返回设置结果。 | **错误码:** 以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)。 | 错误码ID | 错误信息 | | -------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 8300001 | Invalid parameter value. | | 8300002 | Operation failed. Cannot connect to service. | | 8300003 | System internal error. | | 8300004 | Do not have sim card. | | 8300999 | Unknown error code. | | 8301001 | SIM card is not activated. | **示例:** ```js let promise = data.setDefaultCellularDataSlotId(0); promise.then(() => { console.log(`setDefaultCellularDataSlotId success.`); }).catch((err) => { console.error(`setDefaultCellularDataSlotId fail, promise: err->${JSON.stringify(err)}`); }); ``` ## data.getCellularDataFlowType getCellularDataFlowType(callback: AsyncCallback\): void 获取蜂窝数据业务的上下行状态,使用callback方式作为异步方法。 **系统能力**:SystemCapability.Telephony.CellularData **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ---------------------------------------------- | ---- | ---------- | | callback | AsyncCallback\<[DataFlowType](#dataflowtype)\> | 是 | 回调函数。 | **示例:** ```js data.getCellularDataFlowType((err, data) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); ``` ## data.getCellularDataFlowType getCellularDataFlowType(): Promise\ 获取蜂窝数据业务的上下行状态,使用Promise方式作为异步方法。 **系统能力**:SystemCapability.Telephony.CellularData **返回值:** | 类型 | 说明 | | ---------------------------------------- | ----------------------------------------------- | | Promise\<[DataFlowType](#dataflowtype)\> | 以Promise形式返回获取蜂窝数据业务的上下行状态。 | **示例:** ```js let promise = data.getCellularDataFlowType(); promise.then((data) => { console.log(`test success, promise: data->${JSON.stringify(data)}`); }).catch((err) => { console.error(`test fail, promise: err->${JSON.stringify(err)}`); }); ``` ## data.getCellularDataState getCellularDataState(callback: AsyncCallback\): void 获取分组交换域(PS域)的连接状态,使用callback方式作为异步方法。 **系统能力**:SystemCapability.Telephony.CellularData **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------------------------ | ---- | ---------- | | callback | AsyncCallback\<[DataConnectState](#dataconnectstate)\> | 是 | 回调函数。 | **示例:** ```js data.getCellularDataState((err, data) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); ``` ## data.getCellularDataState getCellularDataState(): Promise\ 获取分组交换域(PS域)的连接状态,使用Promise方式作为异步方法。 **系统能力**:SystemCapability.Telephony.CellularData **返回值:** | 类型 | 说明 | | ------------------------------------------------ | ------------------------------------- | | Promise\<[DataConnectState](#dataconnectstate)\> | 以Promise形式返回获取PS域的连接状态。 | **示例:** ```js let promise = data.getCellularDataState(); promise.then((data) => { console.log(`test success, promise: data->${JSON.stringify(data)}`); }).catch((err) => { console.error(`test fail, promise: err->${JSON.stringify(err)}`); }); ``` ## data.isCellularDataEnabled isCellularDataEnabled(callback: AsyncCallback\): void 检查蜂窝数据业务是否启用,使用callback方式作为异步方法。 **需要权限**:ohos.permission.GET_NETWORK_INFO **系统能力**:SystemCapability.Telephony.CellularData **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------ | ---- | ------------------------------------------------------------ | | callback | AsyncCallback\ | 是 | 回调函数。
true:蜂窝数据业务已启用。
false:蜂窝数据业务已禁用。 | **错误码:** 以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)。 | 错误码ID | 错误信息 | | -------- | -------------------------------------------- | | 201 | Permission denied. | | 401 | Parameter error. | | 8300001 | Invalid parameter value. | | 8300002 | Operation failed. Cannot connect to service. | | 8300003 | System internal error. | | 8300999 | Unknown error code. | **示例:** ```js data.isCellularDataEnabled((err, data) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); ``` ## data.isCellularDataEnabled isCellularDataEnabled(): Promise\ 检查蜂窝数据业务是否启用,使用Promise方式作为异步方法。 **需要权限**:ohos.permission.GET_NETWORK_INFO **系统能力**:SystemCapability.Telephony.CellularData **返回值:** | 类型 | 说明 | | ------------------ | ------------------------------------------------------------ | | Promise\ | 以Promise形式返回检查蜂窝数据业务是否启用。
true:蜂窝数据业务已启用。
false:蜂窝数据业务已禁用。 | **错误码:** 以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)。 | 错误码ID | 错误信息 | | -------- | -------------------------------------------- | | 201 | Permission denied. | | 8300002 | Operation failed. Cannot connect to service. | | 8300003 | System internal error. | | 8300999 | Unknown error code. | **示例:** ```js let promise = data.isCellularDataEnabled(); promise.then((data) => { console.log(`test success, promise: data->${JSON.stringify(data)}`); }).catch((err) => { console.error(`test fail, promise: err->${JSON.stringify(err)}`); }); ``` ## data.isCellularDataRoamingEnabled isCellularDataRoamingEnabled(slotId: number, callback: AsyncCallback\): void 检查蜂窝数据业务是否启用漫游,使用callback方式作为异步方法。 **需要权限**:ohos.permission.GET_NETWORK_INFO **系统能力**:SystemCapability.Telephony.CellularData **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------ | ---- | ------------------------------------------------------------ | | slotId | number | 是 | 卡槽ID。
0:卡槽1。
1:卡槽2。 | | callback | AsyncCallback\ | 是 | 回调函数。
true:蜂窝数据业务已启用漫游。
false:蜂窝数据业务已禁用漫游。 | **错误码:** 以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)。 | 错误码ID | 错误信息 | | -------- | -------------------------------------------- | | 201 | Permission denied. | | 401 | Parameter error. | | 8300001 | Invalid parameter value. | | 8300002 | Operation failed. Cannot connect to service. | | 8300003 | System internal error. | | 8300999 | Unknown error code. | **示例:** ```js data.isCellularDataRoamingEnabled(0, (err, data) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); ``` ## data.isCellularDataRoamingEnabled isCellularDataRoamingEnabled(slotId: number): Promise\ 检查蜂窝数据业务是否启用漫游,使用Promise方式作为异步方法。 **需要权限**:ohos.permission.GET_NETWORK_INFO **系统能力**:SystemCapability.Telephony.CellularData **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------ | ------ | ---- | ---------------------------------------- | | slotId | number | 是 | 卡槽ID。
0:卡槽1。
1:卡槽2。 | **返回值:** | 类型 | 说明 | | ------------------ | ------------------------------------------------------------ | | Promise\ | 以Promise形式返回检查蜂窝数据业务是否启用漫游。
true:蜂窝数据业务已启用漫游。
false:蜂窝数据业务已禁用漫游。 | **错误码:** 以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)。 | 错误码ID | 错误信息 | | -------- | -------------------------------------------- | | 201 | Permission denied. | | 401 | Parameter error. | | 8300001 | Invalid parameter value. | | 8300002 | Operation failed. Cannot connect to service. | | 8300003 | System internal error. | | 8300999 | Unknown error code. | **示例:** ```js let promise = data.isCellularDataRoamingEnabled(0); promise.then((data) => { console.log(`test success, promise: data->${JSON.stringify(data)}`); }).catch((err) => { console.error(`test fail, promise: err->${JSON.stringify(err)}`); }); ``` ## data.enableCellularData enableCellularData(callback: AsyncCallback\): void 启用蜂窝数据服务,使用callback方式作为异步方法。 **系统接口:** 此接口为系统接口。 **需要权限**:ohos.permission.SET_TELEPHONY_STATE **系统能力**:SystemCapability.Telephony.CellularData **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | --------------------- | ---- | ---------- | | callback | AsyncCallback\ | 是 | 回调函数。 | **错误码:** 以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)。 | 错误码ID | 错误信息 | | -------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 8300001 | Invalid parameter value. | | 8300002 | Operation failed. Cannot connect to service. | | 8300003 | System internal error. | | 8300999 | Unknown error code. | **示例:** ```js data.enableCellularData((err) => { console.log(`callback: err->${JSON.stringify(err)}`); }); ``` ## data.enableCellularData enableCellularData(): Promise\ 启用蜂窝数据服务,使用Promise方式作为异步方法。 **系统接口:** 此接口为系统接口。 **需要权限**:ohos.permission.SET_TELEPHONY_STATE **系统能力**:SystemCapability.Telephony.CellularData **返回值:** | 类型 | 说明 | | --------------- | ----------------------- | | Promise\ | 以Promise形式返回结果。 | **错误码:** 以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)。 | 错误码ID | 错误信息 | | -------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 8300002 | Operation failed. Cannot connect to service. | | 8300003 | System internal error. | | 8300999 | Unknown error code. | **示例:** ```js let promise = data.enableCellularData(); promise.then(() => { console.log(`enableCellularData success.`); }).catch((err) => { console.error(`enableCellularData fail, promise: err->${JSON.stringify(err)}`); }); ``` ## data.disableCellularData disableCellularData(callback: AsyncCallback\): void 禁用蜂窝数据服务,使用callback方式作为异步方法。 **系统接口:** 此接口为系统接口。 **需要权限**:ohos.permission.SET_TELEPHONY_STATE **系统能力**:SystemCapability.Telephony.CellularData **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | --------------------- | ---- | ---------- | | callback | AsyncCallback\ | 是 | 回调函数。 | **错误码:** 以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)。 | 错误码ID | 错误信息 | | -------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 8300001 | Invalid parameter value. | | 8300002 | Operation failed. Cannot connect to service. | | 8300003 | System internal error. | | 8300999 | Unknown error code. | **示例:** ```js data.disableCellularData((err) => { console.log(`callback: err->${JSON.stringify(err)}`); }); ``` ## data.disableCellularData disableCellularData(): Promise\ 禁用蜂窝数据服务,使用Promise方式作为异步方法。 **系统接口:** 此接口为系统接口。 **需要权限**:ohos.permission.SET_TELEPHONY_STATE **系统能力**:SystemCapability.Telephony.CellularData **返回值:** | 类型 | 说明 | | --------------- | --------------------------- | | Promise\ | 以Promise形式返回禁用结果。 | **错误码:** 以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)。 | 错误码ID | 错误信息 | | -------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 8300002 | Operation failed. Cannot connect to service. | | 8300003 | System internal error. | | 8300999 | Unknown error code. | **示例:** ```js let promise = data.disableCellularData(); promise.then(() => { console.log(`disableCellularData success.`); }).catch((err) => { console.error(`disableCellularData fail, promise: err->${JSON.stringify(err)}`); }); ``` ## data.enableCellularDataRoaming enableCellularDataRoaming(slotId: number, callback: AsyncCallback\): void 启用蜂窝数据漫游,使用callback方式作为异步方法。 **系统接口:** 此接口为系统接口。 **需要权限**:ohos.permission.SET_TELEPHONY_STATE **系统能力**:SystemCapability.Telephony.CellularData **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | --------------------- | ---- | ---------------------------------------- | | slotId | number | 是 | 卡槽ID。
0:卡槽1。
1:卡槽2。 | | callback | AsyncCallback\ | 是 | 回调函数。 | **错误码:** 以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)。 | 错误码ID | 错误信息 | | -------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 8300001 | Invalid parameter value. | | 8300002 | Operation failed. Cannot connect to service. | | 8300003 | System internal error. | | 8300999 | Unknown error code. | **示例:** ```js data.enableCellularDataRoaming(0, (err) => { console.log(`callback: err->${JSON.stringify(err)}`); }); ``` ## data.enableCellularDataRoaming enableCellularDataRoaming(slotId: number): Promise\ 启用蜂窝数据漫游,使用Promise方式作为异步方法。 **系统接口:** 此接口为系统接口。 **需要权限**:ohos.permission.SET_TELEPHONY_STATE **系统能力**:SystemCapability.Telephony.CellularData **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------ | ------ | ---- | ---------------------------------------- | | slotId | number | 是 | 卡槽ID。
0:卡槽1。
1:卡槽2。 | **返回值:** | 类型 | 说明 | | --------------- | ------------------------- | | Promise\ | 以Promise形式返回启用结果 | **错误码:** 以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)。 | 错误码ID | 错误信息 | | -------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 8300001 | Invalid parameter value. | | 8300002 | Operation failed. Cannot connect to service. | | 8300003 | System internal error. | | 8300999 | Unknown error code. | **示例:** ```js let promise = data.enableCellularDataRoaming(0); promise.then(() => { console.log(`enableCellularDataRoaming success.`); }).catch((err) => { console.error(`enableCellularDataRoaming fail, promise: err->${JSON.stringify(err)}`); }); ``` ## data.disableCellularDataRoaming disableCellularDataRoaming(slotId: number, callback: AsyncCallback\): void 禁用蜂窝数据漫游,使用callback方式作为异步方法。 **系统接口:** 此接口为系统接口。 **需要权限**:ohos.permission.SET_TELEPHONY_STATE **系统能力**:SystemCapability.Telephony.CellularData **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | --------------------- | ---- | ---------------------------------------- | | slotId | number | 是 | 卡槽ID。
0:卡槽1。
1:卡槽2。 | | callback | AsyncCallback\ | 是 | 回调函数。 | **错误码:** 以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)。 | 错误码ID | 错误信息 | | -------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 8300001 | Invalid parameter value. | | 8300002 | Operation failed. Cannot connect to service. | | 8300003 | System internal error. | | 8300999 | Unknown error code. | **示例:** ```js data.disableCellularDataRoaming(0, (err) => { console.log(`callback: err->${JSON.stringify(err)}`); }); ``` ## data.disableCellularDataRoaming disableCellularDataRoaming(slotId: number): Promise\ 禁用蜂窝数据漫游,使用Promise方式作为异步方法。 **系统接口:** 此接口为系统接口。 **需要权限**:ohos.permission.SET_TELEPHONY_STATE **系统能力**:SystemCapability.Telephony.CellularData **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------ | ------ | ---- | ---------------------------------------- | | slotId | number | 是 | 卡槽ID。
0:卡槽1。
1:卡槽2。 | **返回值:** | 类型 | 说明 | | --------------- | ------------------------- | | Promise\ | 以Promise形式返回禁用结果 | **错误码:** 以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)。 | 错误码ID | 错误信息 | | -------- | -------------------------------------------- | | 201 | Permission denied. | | 202 | Non-system applications use system APIs. | | 401 | Parameter error. | | 8300001 | Invalid parameter value. | | 8300002 | Operation failed. Cannot connect to service. | | 8300003 | System internal error. | | 8300999 | Unknown error code. | **示例:** ```js let promise = data.disableCellularDataRoaming(0); promise.then(() => { console.log(`disableCellularDataRoaming success.`); }).catch((err) => { console.error(`disableCellularDataRoaming fail, promise: err->${JSON.stringify(err)}`); }); ``` ## DataFlowType 描述蜂窝数据流类型。 **系统能力**:SystemCapability.Telephony.CellularData | 名称 | 值 | 说明 | | ---------------------- | ---- | ------------------------------------------ | | DATA_FLOW_TYPE_NONE | 0 | 表示没有上行或下行数据。 | | DATA_FLOW_TYPE_DOWN | 1 | 表示只有下行数据。 | | DATA_FLOW_TYPE_UP | 2 | 表示只有上行数据。 | | DATA_FLOW_TYPE_UP_DOWN | 3 | 表示有上下行数据。 | | DATA_FLOW_TYPE_DORMANT | 4 | 表示没有上下行数据,底层链路处于休眠状态。 | ## DataConnectState 描述蜂窝数据链路连接状态。 **系统能力**:SystemCapability.Telephony.CellularData | 名称 | 值 | 说明 | | ----------------------- | ---- | -------------------------- | | DATA_STATE_UNKNOWN | -1 | 表示蜂窝数据链路未知。 | | DATA_STATE_DISCONNECTED | 0 | 表示蜂窝数据链路断开。 | | DATA_STATE_CONNECTING | 1 | 表示正在连接蜂窝数据链路。 | | DATA_STATE_CONNECTED | 2 | 表示蜂窝数据链路已连接。 | | DATA_STATE_SUSPENDED | 3 | 表示蜂窝数据链路被挂起。 |