SIM卡管理

2024-01-23 16:38 更新

SIM卡管理模块提供了SIM卡管理的基础能力,包括获取指定卡槽SIM卡的名称、号码、ISO国家码、归属PLMN号、服务提供商名称、SIM卡状态、卡类型、是否插卡、是否激活、锁状态,设置指定卡槽SIM卡显示的名称、号码、锁状态,激活、禁用指定卡槽SIM卡,更改Pin密码,以及解锁指定卡槽SIM卡密码、SIM卡密码的解锁密码等。

说明

本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

  1. import sim from '@ohos.telephony.sim';

sim.isSimActive7+

isSimActive(slotId: number, callback: AsyncCallback<boolean>): void

获取指定卡槽SIM卡是否激活。使用callback异步回调。

系统能力:SystemCapability.Telephony.CoreService

参数:

参数名

类型

必填

说明

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

callback

AsyncCallback<boolean>

回调函数。

示例:

  1. sim.isSimActive(0, (err, data) => {
  2. console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
  3. });

sim.isSimActive7+

isSimActive(slotId: number): Promise<boolean>

获取指定卡槽SIM卡是否激活。使用Promise异步回调。

系统能力:SystemCapability.Telephony.CoreService

参数:

参数名

类型

必填

说明

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

返回值:

类型

说明

Promise<boolean>

以Promise形式返回指定卡槽是否激活,如果激活返回true。

示例:

  1. let promise = sim.isSimActive(0);
  2. promise.then(data => {
  3. console.log(`isSimActive success, promise: data->${JSON.stringify(data)}`);
  4. }).catch(err => {
  5. console.log(`isSimActive failed, promise: err->${JSON.stringify(err)}`);
  6. });

sim.getDefaultVoiceSlotId7+

getDefaultVoiceSlotId(callback: AsyncCallback<number>): void

获取默认语音业务的卡槽ID。使用callback异步回调。

系统能力:SystemCapability.Telephony.CoreService

参数:

参数名

类型

必填

说明

callback

AsyncCallback<number>

回调函数。

示例:

  1. sim.getDefaultVoiceSlotId((err, data) => {
  2. console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
  3. });

sim.getDefaultVoiceSlotId7+

getDefaultVoiceSlotId(): Promise<number>

获取默认语音业务的卡槽ID。使用Promise异步回调。

系统能力:SystemCapability.Telephony.CoreService

返回值:

类型

说明

Promise<number>

以Promise形式返回默认语音业务的卡槽ID。

示例:

  1. let promise = sim.getDefaultVoiceSlotId();
  2. promise.then(data => {
  3. console.log(`getDefaultVoiceSlotId success, promise: data->${JSON.stringify(data)}`);
  4. }).catch(err => {
  5. console.log(`getDefaultVoiceSlotId failed, promise: err->${JSON.stringify(err)}`);
  6. });

sim.hasOperatorPrivileges7+

hasOperatorPrivileges(slotId: number, callback: AsyncCallback<boolean>): void

检查应用(调用者)是否已被授予运营商权限。使用callback异步回调。

系统能力:SystemCapability.Telephony.CoreService

参数:

参数名

类型

必填

说明

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

callback

AsyncCallback<boolean>

回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

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.

示例:

  1. sim.hasOperatorPrivileges(0, (err, data) => {
  2. console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
  3. });

sim.hasOperatorPrivileges7+

hasOperatorPrivileges(slotId: number): Promise<boolean>

检查应用(调用者)是否已被授予运营商权限。使用Promise异步回调。

系统能力:SystemCapability.Telephony.CoreService

参数:

参数名

类型

必填

说明

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

返回值:

类型

说明

Promise<boolean>

以Promise形式返回检查应用(调用者)是否已被授予运营商权限。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

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.

示例:

  1. let promise = sim.hasOperatorPrivileges(0);
  2. promise.then(data => {
  3. console.log(`hasOperatorPrivileges success, promise: data->${JSON.stringify(data)}`);
  4. }).catch(err => {
  5. console.log(`hasOperatorPrivileges failed, promise: err->${JSON.stringify(err)}`);
  6. });

sim.getISOCountryCodeForSim

getISOCountryCodeForSim(slotId: number, callback: AsyncCallback<string>): void

获取指定卡槽SIM卡的ISO国家码。使用callback异步回调。

系统能力:SystemCapability.Telephony.CoreService

参数:

参数名

类型

必填

说明

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

callback

AsyncCallback<string>

回调函数。返回国家码,例如:CN(中国)。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

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.

示例:

  1. sim.getISOCountryCodeForSim(0, (err, data) => {
  2. console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
  3. });

sim.getISOCountryCodeForSim

getISOCountryCodeForSim(slotId: number): Promise<string>

获取指定卡槽SIM卡的ISO国家码。使用Promise异步回调。

系统能力:SystemCapability.Telephony.CoreService

参数:

参数名

类型

必填

说明

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

返回值:

类型

说明

Promise<string>

以Promise形式返回获取指定卡槽SIM卡的ISO国家码,例如:CN(中国)。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

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.

示例:

  1. let promise = sim.getISOCountryCodeForSim(0);
  2. promise.then(data => {
  3. console.log(`getISOCountryCodeForSim success, promise: data->${JSON.stringify(data)}`);
  4. }).catch(err => {
  5. console.log(`getISOCountryCodeForSim failed, promise: err->${JSON.stringify(err)}`);
  6. });

sim.getSimOperatorNumeric

getSimOperatorNumeric(slotId: number, callback: AsyncCallback<string>): void

获取指定卡槽SIM卡的归属PLMN(Public Land Mobile Network)号。使用callback异步回调。

系统能力:SystemCapability.Telephony.CoreService

参数:

参数名

类型

必填

说明

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

callback

AsyncCallback<string>

回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

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.

示例:

  1. sim.getSimOperatorNumeric(0, (err, data) => {
  2. console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
  3. });

sim.getSimOperatorNumeric

getSimOperatorNumeric(slotId: number): Promise<string>

获取指定卡槽SIM卡的归属PLMN(Public Land Mobile Network)号。使用Promise异步回调。

系统能力:SystemCapability.Telephony.CoreService

参数:

参数名

类型

必填

说明

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

返回值:

类型

说明

Promise<string>

以Promise形式返回获取指定卡槽SIM卡的归属PLMN号。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

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.

示例:

  1. let promise = sim.getSimOperatorNumeric(0);
  2. promise.then(data => {
  3. console.log(`getSimOperatorNumeric success, promise: data->${JSON.stringify(data)}`);
  4. }).catch(err => {
  5. console.log(`getSimOperatorNumeric failed, promise: err->${JSON.stringify(err)}`);
  6. });

sim.getSimSpn

getSimSpn(slotId: number, callback: AsyncCallback<string>): void

获取指定卡槽SIM卡的服务提供商名称(Service Provider Name,SPN)。使用callback异步回调。

系统能力:SystemCapability.Telephony.CoreService

参数:

参数名

类型

必填

说明

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

callback

AsyncCallback<string>

回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

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.

示例:

  1. sim.getSimSpn(0, (err, data) => {
  2. console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
  3. });

sim.getSimSpn

getSimSpn(slotId: number): Promise<string>

获取指定卡槽SIM卡的服务提供商名称(Service Provider Name,SPN)。使用Promise异步回调。

系统能力:SystemCapability.Telephony.CoreService

参数:

参数名

类型

必填

说明

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

返回值:

类型

说明

Promise<string>

以Promise形式返回获取指定卡槽SIM卡的SPN。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

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.

示例:

  1. let promise = sim.getSimSpn(0);
  2. promise.then(data => {
  3. console.log(`getSimSpn success, promise: data->${JSON.stringify(data)}`);
  4. }).catch(err => {
  5. console.log(`getSimSpn failed, promise: err->${JSON.stringify(err)}`);
  6. });

sim.getSimState

getSimState(slotId: number, callback: AsyncCallback<SimState>): void

获取指定卡槽的SIM卡状态。使用callback异步回调。

系统能力:SystemCapability.Telephony.CoreService

参数:

参数名

类型

必填

说明

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

callback

AsyncCallback<SimState>

回调函数。参考SimState

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

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.

示例:

  1. sim.getSimState(0, (err, data) => {
  2. console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
  3. });

sim.getSimState

getSimState(slotId: number): Promise<SimState>

获取指定卡槽的SIM卡状态。使用Promise异步回调。

系统能力:SystemCapability.Telephony.CoreService

参数:

参数名

类型

必填

说明

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

返回值:

类型

说明

Promise<SimState>

以Promise形式返回获取指定卡槽的SIM卡状态。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

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.

示例:

  1. let promise = sim.getSimState(0);
  2. promise.then(data => {
  3. console.log(`getSimState success, promise: data->${JSON.stringify(data)}`);
  4. }).catch(err => {
  5. console.log(`getSimState failed, promise: err->${JSON.stringify(err)}`);
  6. });

sim.getCardType7+

getCardType(slotId: number, callback: AsyncCallback<CardType>): void

获取指定卡槽SIM卡的卡类型。使用callback异步回调。

系统能力:SystemCapability.Telephony.CoreService

参数:

参数名

类型

必填

说明

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

callback

AsyncCallback<CardType>

回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

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.

示例:

  1. sim.getCardType(0, (err, data) => {
  2. console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
  3. });

sim.getCardType7+

getCardType(slotId: number): Promise<CardType>

获取指定卡槽SIM卡的卡类型。使用Promise异步回调。

系统能力:SystemCapability.Telephony.CoreService

参数:

参数名

类型

必填

说明

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

返回值:

类型

说明

Promise<CardType>

以Promise形式返回指定卡槽SIM卡的卡类型。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

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.

示例:

  1. let promise = sim.getCardType(0);
  2. promise.then(data => {
  3. console.log(`getCardType success, promise: data->${JSON.stringify(data)}`);
  4. }).catch(err => {
  5. console.log(`getCardType failed, promise: err->${JSON.stringify(err)}`);
  6. });

sim.hasSimCard7+

hasSimCard(slotId: number, callback: AsyncCallback<boolean>): void

获取指定卡槽SIM卡是否插卡。使用callback异步回调。

系统能力:SystemCapability.Telephony.CoreService

参数:

参数名

类型

必填

说明

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

callback

AsyncCallback<boolean>

回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

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.

示例:

  1. sim.hasSimCard(0, (err, data) => {
  2. console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
  3. });

sim.hasSimCard7+

hasSimCard(slotId: number): Promise<boolean>

获取指定卡槽SIM卡是否插卡。使用Promise异步回调。

系统能力:SystemCapability.Telephony.CoreService

参数:

参数名

类型

必填

说明

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

返回值:

类型

说明

Promise<boolean>

以Promise形式返回指定卡槽是否插卡,如果插卡返回true。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

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.

示例:

  1. let promise = sim.hasSimCard(0);
  2. promise.then(data => {
  3. console.log(`hasSimCard success, promise: data->${JSON.stringify(data)}`);
  4. }).catch(err => {
  5. console.log(`hasSimCard failed, promise: err->${JSON.stringify(err)}`);
  6. });

sim.getMaxSimCount7+

getMaxSimCount(): number

获取卡槽数量。

系统能力:SystemCapability.Telephony.CoreService

返回值:

类型

说明

number

卡槽数量。

示例:

  1. console.log("Result: "+ sim.getMaxSimCount())

sim.getOpKey9+

getOpKey(slotId: number, callback: AsyncCallback<string>): void

获取指定卡槽中SIM卡的opkey。使用callback异步回调。

系统能力:SystemCapability.Telephony.CoreService

参数:

参数名

类型

必填

说明

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

callback

AsyncCallback<string>

回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

401

Parameter error.

801

Capability not supported.

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.

示例:

  1. try {
  2. sim.getOpKey(0, (err, data) => {
  3. if (err) {
  4. console.log("getOpKey failed, err: " + JSON.stringify(err));
  5. } else {
  6. console.log('getOpKey successfully, data: ' + JSON.stringify(data));
  7. }
  8. });
  9. } catch (err) {
  10. console.log("getOpKey err: " + JSON.stringify(err));
  11. }

sim.getOpKey9+

getOpKey(slotId: number): Promise<string>

获取指定卡槽中SIM卡的opkey。使用Promise异步回调。

系统能力:SystemCapability.Telephony.CoreService

参数:

参数名

类型

必填

说明

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

返回值:

类型

说明

Promise<string>

以Promise形式返回指定卡槽中SIM卡的opkey。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

401

Parameter error.

801

Capability not supported.

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.

示例:

  1. try {
  2. let data = sim.getOpKey(0);
  3. console.log(`getOpKey success, promise: data->${JSON.stringify(data)}`);
  4. } catch (error) {
  5. console.log(`getOpKey failed, promise: err->${JSON.stringify(error)}`);
  6. }

sim.getOpName9+

getOpName(slotId: number, callback: AsyncCallback<string>): void

获取指定卡槽中SIM卡的OpName。使用callback异步回调。

系统能力:SystemCapability.Telephony.CoreService

参数:

参数名

类型

必填

说明

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

callback

AsyncCallback<string>

回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

401

Parameter error.

801

Capability not supported.

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.

示例:

  1. try {
  2. sim.getOpName(0, (err, data) => {
  3. if (err) {
  4. console.log("getOpName failed, err: " + JSON.stringify(err));
  5. } else {
  6. console.log('getOpName successfully, data: ' + JSON.stringify(data));
  7. }
  8. });
  9. } catch (err) {
  10. console.log("getOpName err: " + JSON.stringify(err));
  11. }

sim.getOpName9+

getOpName(slotId: number): Promise<string>

获取指定卡槽中SIM卡的OpName。使用Promise异步回调。

系统能力:SystemCapability.Telephony.CoreService

参数:

参数名

类型

必填

说明

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

返回值:

类型

说明

Promise<string>

以Promise形式返回指定卡槽中SIM卡的OpName。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

401

Parameter error.

801

Capability not supported.

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.

示例:

  1. try {
  2. let data = sim.getOpName(0);
  3. console.log(`getOpName success, promise: data->${JSON.stringify(data)}`);
  4. } catch (error) {
  5. console.log(`getOpName failed, promise: err->${JSON.stringify(error)}`);
  6. }

SimState

SIM卡状态。

系统能力:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。

名称

说明

SIM_STATE_UNKNOWN

0

SIM卡状态未知,即无法获取准确的状态。

SIM_STATE_NOT_PRESENT

1

表示SIM卡处于not present状态,即卡槽中没有插入SIM卡。

SIM_STATE_LOCKED

2

表示SIM卡处于locked状态,即SIM卡被PIN、PUK或网络锁锁定。

SIM_STATE_NOT_READY

3

表示SIM卡处于not ready状态,即SIM卡在位但无法正常工作。

SIM_STATE_READY

4

表示SIM卡处于ready状态,即SIM卡在位且工作正常。

SIM_STATE_LOADED

5

表示SIM卡处于loaded状态,即SIM卡在位且所有卡文件加载完毕。

CardType7+

卡类型。

系统能力:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。

名称

说明

UNKNOWN_CARD

-1

未知类型。

SINGLE_MODE_SIM_CARD

10

单SIM卡。

SINGLE_MODE_USIM_CARD

20

单USIM卡。

SINGLE_MODE_RUIM_CARD

30

单RUIM卡。

DUAL_MODE_CG_CARD

40

双卡模式C+G。

CT_NATIONAL_ROAMING_CARD

41

中国电信内部漫游卡。

CU_DUAL_MODE_CARD

42

中国联通双模卡。

DUAL_MODE_TELECOM_LTE_CARD

43

双模式电信LTE卡。

DUAL_MODE_UG_CARD

50

双模式UG卡。

SINGLE_MODE_ISIM_CARD8+

60

单一ISIM卡类型。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号