openharmony 鸿蒙 js-apis-sim

2025-06-12 浏览 (1)

@ohos.telephony.sim (SIM Management)

The sim module provides basic SIM card management functions. With the APIs provided by this module, you can obtain the ISO country code, home PLMN ID, service provider name, SIM card status, type, installation status, and activation status of the SIM card in the specified slot.

NOTE

The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version.

Modules to Import

import { sim } from '@kit.TelephonyKit';

sim.isSimActive7+

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

Checks whether the SIM card in the specified slot is activated. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2
callbackAsyncCallback<boolean>YesCallback used to return the result, which indicates whether the SIM card in the specified slot is activated.
true: activated.
false: not activated.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

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

sim.isSimActive7+

isSimActive(slotId: number): Promise<boolean>

Checks whether the SIM card in the specified slot is activated. This API uses a promise to return the result.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2

Return value

TypeDescription
Promise<boolean>Promise used to return the result.
true: activated.
false: not activated.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

sim.isSimActive(0).then((data: boolean) => {
    console.log(`isSimActive success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
    console.error(`isSimActive failed, promise: err->${JSON.stringify(err)}`);
});

sim.isSimActiveSync10+

isSimActiveSync(slotId: number): boolean

Checks whether the SIM card in the specified slot is activated.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2

Return value

TypeDescription
booleanwhich indicates whether the SIM card in the specified slot is activated.
true: activated.
false: not activated.

Example

import { sim } from '@kit.TelephonyKit';

let isSimActive: boolean = sim.isSimActiveSync(0);
console.log(`the sim is active:` + isSimActive);

sim.getDefaultVoiceSlotId7+

getDefaultVoiceSlotId(callback: AsyncCallback<number>): void

Obtains the default slot ID of the SIM card that provides voice services. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
callbackAsyncCallback<number>YesCallback used to return the result.
- 0: card slot 1.
- 1: card slot 2.
- -1: card slot not set or service not unavailable

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

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

sim.getDefaultVoiceSlotId7+

getDefaultVoiceSlotId(): Promise<number>

Obtains the default slot ID of the SIM card that provides voice services. This API uses a promise to return the result.

System capability: SystemCapability.Telephony.CoreService

Return value

TypeDescription
Promise<number>Promise used to return the result.
- 0: card slot 1.
- 1: card slot 2.
- -1: card slot not set or service not unavailable

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

sim.getDefaultVoiceSlotId().then((data: number) => {
    console.log(`getDefaultVoiceSlotId success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
    console.error(`getDefaultVoiceSlotId failed, promise: err->${JSON.stringify(err)}`);
});

sim.hasOperatorPrivileges7+

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

Checks whether the application (caller) has been granted the operator permission. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2
callbackAsyncCallback<boolean>YesCallback used to return the result, which indicates whether the application (caller) has been granted the operator permission.

Error codes

For details about the error codes, see Universal Error Codes and Telephony Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001Invalid parameter value.
8300002Service connection failed.
8300003System internal error.
8300999Unknown error.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

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

sim.hasOperatorPrivileges7+

hasOperatorPrivileges(slotId: number): Promise<boolean>

Checks whether the application (caller) has been granted the operator permission. This API uses a promise to return the result.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2

Return value

TypeDescription
Promise<boolean>Promise used to return the result. The value true indicates that the application (caller) has been granted the carrier permission, and the value false indicates the opposite.

Error codes

For details about the error codes, see Universal Error Codes and Telephony Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001Invalid parameter value.
8300002Service connection failed.
8300003System internal error.
8300999Unknown error.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

sim.hasOperatorPrivileges(0).then((data: boolean) => {
    console.log(`hasOperatorPrivileges success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
    console.error(`hasOperatorPrivileges failed, promise: err->${JSON.stringify(err)}`);
});

sim.getISOCountryCodeForSim

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

Obtains the ISO country code of the SIM card in the specified slot. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2
callbackAsyncCallback<string>YesCallback used to return the result, which is a country code, for example, CN (China).

Error codes

For details about the error codes, see Universal Error Codes and Telephony Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001Invalid parameter value.
8300002Service connection failed.
8300003System internal error.
8300004No SIM card found.
8300999Unknown error.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

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

sim.getISOCountryCodeForSim

getISOCountryCodeForSim(slotId: number): Promise<string>

Obtains the ISO country code of the SIM card in the specified slot. This API uses a promise to return the result.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2

Return value

TypeDescription
Promise<string>Promise used to return the result, which is the ISO country code of the SIM card in the specified slot, for example, CN (China).

Error codes

For details about the error codes, see Universal Error Codes and Telephony Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001Invalid parameter value.
8300002Service connection failed.
8300003System internal error.
8300004No SIM card found.
8300999Unknown error.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

sim.getISOCountryCodeForSim(0).then((data: string) => {
    console.log(`getISOCountryCodeForSim success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
    console.error(`getISOCountryCodeForSim failed, promise: err->${JSON.stringify(err)}`);
});

sim.getISOCountryCodeForSimSync10+

getISOCountryCodeForSimSync(slotId: number): string

Obtains the ISO country code of the SIM card in the specified slot.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2

Return value

TypeDescription
stringISO country code of the SIM card in the specified slot, for example, CN (China).

Example

import { sim } from '@kit.TelephonyKit';

let countryCode: string = sim.getISOCountryCodeForSimSync(0);
console.log(`the country ISO is:` + countryCode);

sim.getSimOperatorNumeric

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

Obtains the home public land mobile network (PLMN) ID of the SIM card in the specified slot. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2
callbackAsyncCallback<string>YesCallback used to return the result, which is the home PLMN number of the SIM card in the specified slot.

Error codes

For details about the error codes, see Universal Error Codes and Telephony Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001Invalid parameter value.
8300002Service connection failed.
8300003System internal error.
8300004No SIM card found.
8300999Unknown error.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

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

sim.getSimOperatorNumeric

getSimOperatorNumeric(slotId: number): Promise<string>

Obtains the home PLMN ID of the SIM card in the specified slot. This API uses a promise to return the result.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2

Return value

TypeDescription
Promise<string>Promise used to return the result.

Error codes

For details about the error codes, see Universal Error Codes and Telephony Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001Invalid parameter value.
8300002Service connection failed.
8300003System internal error.
8300004No SIM card found.
8300999Unknown error.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

sim.getSimOperatorNumeric(0).then((data: string) => {
    console.log(`getSimOperatorNumeric success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
    console.error(`getSimOperatorNumeric failed, promise: err->${JSON.stringify(err)}`);
});

sim.getSimOperatorNumericSync10+

getSimOperatorNumericSync(slotId: number): string

Obtains the home PLMN ID of the SIM card in the specified slot.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2

Return value

TypeDescription
stringHome PLMN number of the SIM card in the specified slot.

Example

import { sim } from '@kit.TelephonyKit';

let numeric: string = sim.getSimOperatorNumericSync(0);
console.log(`the sim operator numeric is:` + numeric);

sim.getSimSpn

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

Obtains the service provider name (SPN) of the SIM card in the specified slot. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2
callbackAsyncCallback<string>YesCallback used to return the result, which is the SPN of the SIM card in the specified slot.

Error codes

For details about the error codes, see Universal Error Codes and Telephony Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001Invalid parameter value.
8300002Service connection failed.
8300003System internal error.
8300004No SIM card found.
8300999Unknown error.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

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

sim.getSimSpn

getSimSpn(slotId: number): Promise<string>

Obtains the SPN of the SIM card in the specified slot. This API uses a promise to return the result.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2

Return value

TypeDescription
Promise<string>Promise used to return the result.

Error codes

For details about the error codes, see Universal Error Codes and Telephony Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001Invalid parameter value.
8300002Service connection failed.
8300003System internal error.
8300004No SIM card found.
8300999Unknown error.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

sim.getSimSpn(0).then((data: string) => {
    console.log(`getSimSpn success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
    console.error(`getSimSpn failed, promise: err->${JSON.stringify(err)}`);
});

sim.getSimSpnSync10+

getSimSpnSync(slotId: number): string

Obtains the SPN of the SIM card in the specified slot.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2

Return value

TypeDescription
stringSPN of the SIM card in the specified slot.

Example

import { sim } from '@kit.TelephonyKit';

let spn: string = sim.getSimSpnSync(0);
console.log(`the sim card spn is:` + spn);

sim.getSimState

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

Obtains the state of the SIM card in the specified slot. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2
callbackAsyncCallback<SimState>YesCallback used to return the result, which is the state of the SIM card in the specified slot. For details, see SimState.

Error codes

For details about the error codes, see Universal Error Codes and Telephony Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001Invalid parameter value.
8300002Service connection failed.
8300003System internal error.
8300999Unknown error.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

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

sim.getSimState

getSimState(slotId: number): Promise<SimState>

Obtains the state of the SIM card in the specified slot. This API uses a promise to return the result.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2

Return value

TypeDescription
Promise<SimState>Promise used to return the result.

Error codes

For details about the error codes, see Universal Error Codes and Telephony Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001Invalid parameter value.
8300002Service connection failed.
8300003System internal error.
8300999Unknown error.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

sim.getSimState(0).then((data: sim.SimState) => {
    console.log(`getSimState success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
    console.error(`getSimState failed, promise: err->${JSON.stringify(err)}`);
});

sim.getSimStateSync10+

getSimStateSync(slotId: number): SimState

Obtains the state of the SIM card in the specified slot.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2

Return value

TypeDescription
SimStateState of the SIM card in the specified slot.

Example

import { sim } from '@kit.TelephonyKit';

let simState: sim.SimState = sim.getSimStateSync(0);
console.log(`The sim state is:` + simState);

sim.getCardType7+

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

Obtains the type of the SIM card in the specified slot. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2
callbackAsyncCallback<CardType>YesCallback used to return the result.

Error codes

For details about the error codes, see Universal Error Codes and Telephony Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001Invalid parameter value.
8300002Service connection failed.
8300003System internal error.
8300004No SIM card found.
8300999Unknown error.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

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

sim.getCardType7+

getCardType(slotId: number): Promise<CardType>

Obtains the type of the SIM card in the specified slot. This API uses a promise to return the result.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2

Return value

TypeDescription
Promise<CardType>Promise used to return the result.

Error codes

For details about the error codes, see Universal Error Codes and Telephony Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001Invalid parameter value.
8300002Service connection failed.
8300003System internal error.
8300004No SIM card found.
8300999Unknown error.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

sim.getCardType(0).then((data: sim.CardType) => {
    console.log(`getCardType success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
    console.error(`getCardType failed, promise: err->${JSON.stringify(err)}`);
});

sim.getCardTypeSync10+

getCardTypeSync(slotId: number): CardType

Obtains the type of the SIM card in the specified slot.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2

Return value

TypeDescription
CardTypeType of the SIM card in the specified slot.

Example

import { sim } from '@kit.TelephonyKit';

let cardType: sim.CardType = sim.getCardTypeSync(0);
console.log(`the card type is:` + cardType);

sim.hasSimCard7+

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

Checks whether the SIM card in the specified slot is installed. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2
callbackAsyncCallback<boolean>YesCallback used to return the result.
- true: installed.
- false: not installed.

Error codes

For details about the error codes, see Universal Error Codes and Telephony Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001Invalid parameter value.
8300002Service connection failed.
8300003System internal error.
8300999Unknown error.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

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

sim.hasSimCard7+

hasSimCard(slotId: number): Promise<boolean>

Checks whether the SIM card in the specified slot is installed. This API uses a promise to return the result.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2

Return value

TypeDescription
Promise<boolean>Promise used to return the result.
- true: installed.
- false: not installed.

Error codes

For details about the error codes, see Universal Error Codes and Telephony Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001Invalid parameter value.
8300002Service connection failed.
8300003System internal error.
8300999Unknown error.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

sim.hasSimCard(0).then((data: boolean) => {
    console.log(`hasSimCard success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
    console.error(`hasSimCard failed, promise: err->${JSON.stringify(err)}`);
});

sim.hasSimCardSync10+

hasSimCardSync(slotId: number): boolean

Checks whether the SIM card in the specified slot is installed.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2

Return value

TypeDescription
booleanWhether the SIM card in the specified slot is installed.
- true: installed.
- false: not installed.

Example

import { sim } from '@kit.TelephonyKit';

let hasSimCard: boolean = sim.hasSimCardSync(0);
console.log(`has sim card: ` + hasSimCard);

sim.getSimAccountInfo10+

getSimAccountInfo(slotId: number, callback: AsyncCallback<IccAccountInfo>): void

Obtains account information of the SIM card in the specified slot. This API uses an asynchronous callback to return the result.

Required permission: ohos.permission.GET_TELEPHONY_STATE

NOTE

The GET_TELEPHONY_STATE permission is required to obtain the ICCID and phone number. Such information is sensitive and not open to third-party applications. When this API is called, the returned ICCID and phone number are empty.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2
callbackAsyncCallback<IccAccountInfo>YesCallback used to return the result, which is the account information of the SIM card in the specified slot.

Error codes

For details about the error codes, see Universal Error Codes and Telephony Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001Invalid parameter value.
8300002Service connection failed.
8300003System internal error.
8300004No SIM card found.
8300999Unknown error.
8301002The SIM card failed to read or update data.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

sim.getSimAccountInfo(0, (err:BusinessError , data: sim.IccAccountInfo) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});

sim.getSimAccountInfo10+

getSimAccountInfo(slotId: number): Promise<IccAccountInfo>

Obtains account information of the SIM card in the specified slot. This API uses a promise to return the result.

Required permission: ohos.permission.GET_TELEPHONY_STATE

NOTE

The GET_TELEPHONY_STATE permission is required to obtain the ICCID and phone number. Such information is sensitive and not open to third-party applications. When this API is called, the returned ICCID and phone number are empty.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2

Return value

TypeDescription
Promise<IccAccountInfo>Promise used to return the result.

Error codes

For details about the error codes, see Universal Error Codes and Telephony Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001Invalid parameter value.
8300002Service connection failed.
8300003System internal error.
8300004No SIM card found.
8300999Unknown error.
8301002The SIM card failed to read or update data.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

sim.getSimAccountInfo(0).then((data: sim.IccAccountInfo) => {
    console.log(`getSimAccountInfo success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
    console.error(`getSimAccountInfo failed, promise: err->${JSON.stringify(err)}`);
});

sim.getActiveSimAccountInfoList10+

getActiveSimAccountInfoList(callback: AsyncCallback<Array<IccAccountInfo>>): void

Obtains the list of activated SIM card accounts. This API uses an asynchronous callback to return the result.

Required permission: ohos.permission.GET_TELEPHONY_STATE

NOTE

The GET_TELEPHONY_STATE permission is required to obtain the ICCID and phone number. Such information is sensitive and not open to third-party applications. When this API is called, the returned ICCID and phone number are empty.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
callbackAsyncCallback<Array<IccAccountInfo>>YesCallback used to return the result, which is a list of activated SIM card accounts.

Error codes

For details about the error codes, see Universal Error Codes and Telephony Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001Invalid parameter value.
8300002Service connection failed.
8300003System internal error.
8300004No SIM card found.
8300999Unknown error.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

sim.getActiveSimAccountInfoList((err: BusinessError, data: Array<sim.IccAccountInfo>) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});

sim.getMaxSimCount7+

getMaxSimCount(): number

Obtains the number of card slots.

System capability: SystemCapability.Telephony.CoreService

Return value

TypeDescription
numberNumber of card slots.

Example

import { sim } from '@kit.TelephonyKit';

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

sim.getActiveSimAccountInfoList10+

getActiveSimAccountInfoList(): Promise<Array<IccAccountInfo>>

Obtains the list of activated SIM card accounts. This API uses a promise to return the result.

Required permission: ohos.permission.GET_TELEPHONY_STATE

NOTE

The GET_TELEPHONY_STATE permission is required to obtain the ICCID and phone number. Such information is sensitive and not open to third-party applications. When this API is called, the returned ICCID and phone number are empty.

System capability: SystemCapability.Telephony.CoreService

Return value

TypeDescription
Promise<Array<IccAccountInfo>>Promise used to return the result.

Error codes

For details about the error codes, seeohos.telephony (Telephony) Error Codes.

IDError Message
8300002Service connection failed.
8300003System internal error.
8300004No SIM card found.
8300999Unknown error.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

sim.getActiveSimAccountInfoList().then((data: Array<sim.IccAccountInfo>) => {
    console.log(`getActiveSimAccountInfoList success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
    console.error(`getActiveSimAccountInfoList failed, promise: err->${JSON.stringify(err)}`);
});

sim.getOpKey9+

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

Obtains the opkey of the SIM card in the specified slot. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2
callbackAsyncCallback<string>YesCallback used to return the result.

Error codes

For details about the error codes, see Universal Error Codes and Telephony Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
801Capability not supported.
8300001Invalid parameter value.
8300002Service connection failed.
8300003System internal error.
8300999Unknown error.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

try {
    sim.getOpKey(0, (err: BusinessError, data: string) => {
    if (err) {
      console.error("getOpKey failed, err: " + JSON.stringify(err));
    } else {
      console.log('getOpKey successfully, data: ' + JSON.stringify(data));
    }
  });
} catch (err) {
  console.error("getOpKey err: " + JSON.stringify(err));
}

sim.getOpKey9+

getOpKey(slotId: number): Promise<string>

Obtains the opkey of the SIM card in the specified slot. This API uses a promise to return the result.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2

Return value

TypeDescription
Promise<string>Promise used to return the result.

Error codes

For details about the error codes, see Universal Error Codes and Telephony Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
801Capability not supported.
8300001Invalid parameter value.
8300002Service connection failed.
8300003System internal error.
8300999Unknown error.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

sim.getOpKey(0).then((data: string) => {
    console.log(`getOpKey success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
    console.error(`getOpKey failed, promise: err->${JSON.stringify(err)}`);
});

sim.getOpKeySync10+

getOpKeySync(slotId: number): string

Obtains the opkey of the SIM card in the specified slot.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2

Return value

TypeDescription
stringopkey of the SIM card in the specified slot.

Example

import { sim } from '@kit.TelephonyKit';

let data: string = sim.getOpKeySync(0);
console.log(`getOpKey success, promise: data->${JSON.stringify(data)}`);

sim.getOpName9+

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

Obtains the OpName of the SIM card in the specified slot. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2
callbackAsyncCallback<string>YesCallback used to return the result.

Error codes

For details about the error codes, see Universal Error Codes and Telephony Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
801Capability not supported.
8300001Invalid parameter value.
8300002Service connection failed.
8300003System internal error.
8300999Unknown error.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

try {
    sim.getOpName(0, (err: BusinessError, data: string) => {
    if (err) {
      console.error("getOpName failed, err: " + JSON.stringify(err));
    } else {
      console.log('getOpName successfully, data: ' + JSON.stringify(data));
    }
  });
} catch (err) {
  console.error("getOpName err: " + JSON.stringify(err));
}

sim.getOpName9+

getOpName(slotId: number): Promise<string>

Obtains the OpName of the SIM card in the specified slot. This API uses a promise to return the result.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2

Return value

TypeDescription
Promise<string>Promise used to return the result.

Error codes

For details about the error codes, see Universal Error Codes and Telephony Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
801Capability not supported.
8300001Invalid parameter value.
8300002Service connection failed.
8300003System internal error.
8300999Unknown error.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

sim.getOpName(0).then((data: string) => {
    console.log(`getOpName success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
    console.error(`getOpName failed, promise: err->${JSON.stringify(err)}`);
});

sim.getOpNameSync10+

getOpNameSync(slotId: number): string

Obtains the OpName of the SIM card in the specified slot.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
slotIdnumberYesCard slot ID.
- 0: card slot 1.
- 1: card slot 2

Return value

TypeDescription
stringOpName of the SIM card in the specified slot.

Example

import { sim } from '@kit.TelephonyKit';

let data: string = sim.getOpNameSync(0);
console.log(`getOpName success, promise: data->${JSON.stringify(data)}`);

sim.getDefaultVoiceSimId10+

getDefaultVoiceSimId(callback: AsyncCallback<number>): void

Obtains the default slot ID of the SIM card that provides voice services. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Telephony.CoreService

Parameters

NameTypeMandatoryDescription
callbackAsyncCallback<number>YesCallback used to return the result.
The return value is bound to the SIM card and increases from 1.

Error codes

For details about the error codes, see Universal Error Codes and Telephony Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001Invalid parameter value.
8300002Service connection failed.
8300003System internal error.
8300004No SIM card found.
8300999Unknown error.
8301001SIM card is not activated.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

sim.getDefaultVoiceSimId((err: BusinessError, data: number) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});

sim.getDefaultVoiceSimId10+

getDefaultVoiceSimId(): Promise<number>

Obtains the default slot ID of the SIM card that provides voice services. This API uses a promise to return the result.

System capability: SystemCapability.Telephony.CoreService

Return value

TypeDescription
Promise<number>Promise used to return the result.
The return value is bound to the SIM card and increases from 1.

Error codes

For details about the error codes, seeohos.telephony (Telephony) Error Codes.

IDError Message
8300001Invalid parameter value.
8300002Service connection failed.
8300003System internal error.
8300004No SIM card found.
8300999Unknown error.
8301001SIM card is not activated.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { sim } from '@kit.TelephonyKit';

let promise = sim.getDefaultVoiceSimId();
promise.then((data: number) => {
    console.log(`getDefaultVoiceSimId success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
    console.error(`getDefaultVoiceSimId failed, promise: err->${JSON.stringify(err)}`);
});

SimState

Enumerates SIM card states.

System capability: SystemCapability.Telephony.CoreService

NameValueDescription
SIM_STATE_UNKNOWN0The SIM card is in unknown state; that is, the SIM card status cannot be obtained.
SIM_STATE_NOT_PRESENT1The SIM card is in not present state; that is, no SIM card is inserted into the card slot.
SIM_STATE_LOCKED2The SIM card is in locked state; that is, the SIM card is locked by the personal identification number (PIN), PIN unblocking key (PUK), or network.
SIM_STATE_NOT_READY3The SIM card is in not ready state; that is, the SIM card has been installed but cannot work properly.
SIM_STATE_READY4The SIM card is in ready state; that is, the SIM card has been installed and is working properly.
SIM_STATE_LOADED5The SIM card is in loaded state; that is, the SIM card is present and all its files have been loaded.

CardType7+

Enumerates SIM card types.

System capability: SystemCapability.Telephony.CoreService

NameValueDescription
UNKNOWN_CARD-1Unknown type.
SINGLE_MODE_SIM_CARD10Single-card (SIM).
SINGLE_MODE_USIM_CARD20Single-card (USIM).
SINGLE_MODE_RUIM_CARD30Single-card (RUIM).
DUAL_MODE_CG_CARD40Dual-card (CDMA+GSM).
CT_NATIONAL_ROAMING_CARD41China Telecom internal roaming card.
CU_DUAL_MODE_CARD42China Unicom dual-mode card.
DUAL_MODE_TELECOM_LTE_CARD43China Telecom dual-mode LTE card.
DUAL_MODE_UG_CARD50Dual-mode card (UMTS+GSM).
SINGLE_MODE_ISIM_CARD8+60Single-card (ISIM).

IccAccountInfo10+

ICC account information.

System capability: SystemCapability.Telephony.CoreService

NameTypeMandatoryDescription
simIdnumberYesSIM card ID.
slotIndexnumberYesCard slot ID.
isEsimbooleanYesWhether the SIM card is an eSim card.
isActivebooleanYesWhether the card is activated.
iccIdstringYesICCID number.
showNamestringYesSIM card display name.
showNumberstringYesSIM card display number.

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Telephony Kit

harmony 鸿蒙Telephony_NetworkState

harmony 鸿蒙Telephony Error Codes

harmony 鸿蒙js-apis-call-sys

harmony 鸿蒙@ohos.telephony.call (Call)

harmony 鸿蒙@ohos.telephony.esim (eSIM Management) (System API)

harmony 鸿蒙@ohos.telephony.esim (eSIM Management)

harmony 鸿蒙@ohos.telephony.observer (Observer) (System API)

harmony 鸿蒙@ohos.telephony.observer (Observer)

harmony 鸿蒙@ohos.telephony.radio (Radio) (System API)

  • 所属分类: 后端技术
  • 本文标签: 鸿蒙 软件
  • 版权声明: 本文链接 https://seaxiang.com/blog/dlixbc