diff --git a/en/application-dev/reference/apis/js-apis-sim.md b/en/application-dev/reference/apis/js-apis-sim.md
index 4af4fa4a29edfd12e607bdb3f153fb9d03d3d5fc..7f278067ade16a03c474eae596ff2a15e46eddf1 100644
--- a/en/application-dev/reference/apis/js-apis-sim.md
+++ b/en/application-dev/reference/apis/js-apis-sim.md
@@ -3,6 +3,7 @@
>**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
@@ -10,72 +11,75 @@
import sim from '@ohos.telephony.sim';
```
-## sim.getSimIccId
+## sim.isSimActive7+
-getSimIccId\(slotId: number, callback: AsyncCallback\): void
+isSimActive\(slotId: number, callback: AsyncCallback\): void
-Obtains the integrated circuit card identity (ICCID) of the SIM card in the specified slot. This function uses an asynchronous callback to return the result.
+Checks whether the SIM card in the specified slot is activated. This function uses an asynchronous callback to return the result.
-Before using this API, you must declare the **ohos.permission.GET\_TELEPHONY\_STATE** permission.
+**System capability**: SystemCapability.Communication.CoreService
**Parameters**
-| Name| Type| Mandatory| Description|
+| Name | Type | Mandatory| Description |
| -------- | --------------------------- | ---- | -------------------------------------- |
-| slotId | number | Yes| Card slot ID. The options are as follows:
- **0**: slot 1
- **1**: slot 2|
-| callback | AsyncCallback<string> | Yes| Callback used to return the result.|
+| slotId | number | Yes | Card slot ID. The options are as follows:
- **0**: card slot 1
- **1**: card slot 2|
+| callback | AsyncCallback<boolean> | Yes | Callback used to return the result. |
**Example**
```
-sim.getSimIccId(0, (err, data) => {
+sim.isSimActive(0, (err, data) => {
console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
-## sim.getSimIccId
+## sim.isSimActive7+
-getSimIccId\(slotId: number\): Promise
+isSimActive\(slotId: number\): Promise
-Obtains the ICCID of the SIM card in the specified slot. This function uses a promise to return the result.
+Checks whether the SIM card in the specified slot is activated. This function uses a promise to return the result.
-Before using this API, you must declare the **ohos.permission.GET\_TELEPHONY\_STATE** permission.
+**System capability**: SystemCapability.Communication.CoreService
**Parameters**
-| Name| Type| Mandatory| Description|
+| Name| Type | Mandatory| Description |
| ------ | ------ | ---- | -------------------------------------- |
-| slotId | number | Yes| Card slot ID. The options are as follows:
- **0**: slot 1
- **1**: slot 2|
+| slotId | number | Yes | Card slot ID. The options are as follows:
- **0**: card slot 1
- **1**: card slot 2|
-**Return value**
+**Return Value**
-| Type| Description|
+| Type | Description |
| --------------------- | ---------------------------------- |
-| Promise<string> | Promise used to return the result.|
+| Promise<boolean> | Promise used to return the result. The value **true** indicates that the SIM card in the specified slot is activated, and the value **false** indicates the opposite.|
**Example**
```
-let promise = sim.getSimIccId(0);
+let promise = sim.isSimActive(0);
promise.then(data => {
- console.log(`getSimIccId success, promise: data->${JSON.stringify(data)}`);
+ console.log(`isSimActive success, promise: data->${JSON.stringify(data)}`);
}).catch(err => {
- console.log(`getSimIccId fail, promise: err->${JSON.stringify(err)}`);
+ console.log(`isSimActive fail, promise: err->${JSON.stringify(err)}`);
});
```
-## sim.getDefaultVoiceSlotId7+
+
+## sim.getDefaultVoiceSlotId7+
getDefaultVoiceSlotId\(callback: AsyncCallback\): void
Obtains the default slot ID of the SIM card that provides voice services. This function uses an asynchronous callback to return the result.
+**System capability**: SystemCapability.Communication.CoreService
+
**Parameters**
-| Name| Type| Mandatory| Description|
+| Name | Type | Mandatory| Description |
| -------- | --------------------------- | ---- | ---------- |
-| callback | AsyncCallback<number> | Yes| Callback invoked to traverse the entries in the container.|
+| callback | AsyncCallback<number> | Yes | Callback used to return the result.|
**Example**
@@ -86,15 +90,17 @@ sim.getDefaultVoiceSlotId((err, data) => {
```
-## sim.getDefaultVoiceSlotId7+
+## sim.getDefaultVoiceSlotId7+
getDefaultVoiceSlotId\(\): Promise
Obtains the default slot ID of the SIM card that provides voice services. This function uses a promise to return the result.
-**Return value**
+**System capability**: SystemCapability.Communication.CoreService
-| Type| Description|
+**Return Value**
+
+| Type | Description |
| ----------------- | --------------------------------------- |
| Promise\ | Promise used to return the result.|
@@ -109,18 +115,74 @@ promise.then(data => {
});
```
-## sim.getISOCountryCodeForSim
+## sim.hasOperatorPrivileges7+
+
+hasOperatorPrivileges(slotId: number, callback: AsyncCallback\): void
+
+Checks whether the application (caller) has been granted the operator permission. This function uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Communication.CoreService
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | ------------------------ | ---- | ---------------------------------------- |
+| slotId | number | Yes | Card slot ID. The options are as follows:
- **0**: card slot 1
- **1**: card slot 2|
+| callback | AsyncCallback\ | Yes | Callback used to return the result. |
+
+**Example**
+
+```
+sim.hasOperatorPrivileges(0, (err, data) => {
+ console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## sim.hasOperatorPrivileges7+
+
+hasOperatorPrivileges(slotId: number): Promise
+
+Checks whether the application (caller) has been granted the operator permission. This function uses a promise to return the result.
+
+**System capability**: SystemCapability.Communication.CoreService
+
+**Parameters**
+
+| Name| Type | Mandatory| Description |
+| ------ | ------ | ---- | ---------------------------------------- |
+| slotId | number | Yes | Card slot ID. The options are as follows:
- **0**: card slot 1
- **1**: card slot 2|
+
+**Return Value**
+
+| Type | Description |
+| :----------------- | :---------------------------------------------------------- |
+| Promise\ | Promise used to return the result. The value **true** indicates that the application (caller) has been granted the operator permission, and the value **false** indicates the opposite.|
+
+**Example**
+
+```
+let promise = sim.hasOperatorPrivileges(0);
+promise.then(data => {
+ console.log(`hasOperatorPrivileges success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+ console.log(`hasOperatorPrivileges fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## sim.getISOCountryCodeForSim
getISOCountryCodeForSim\(slotId: number, callback: AsyncCallback\): void
Obtains the ISO country code of the SIM card in the specified slot. This function uses an asynchronous callback to return the result.
+**System capability**: SystemCapability.Communication.CoreService
+
**Parameters**
-| Name| Type| Mandatory| Description|
+| Name | Type | Mandatory| Description |
| -------- | ----------------------- | ---- | ---------------------------------------- |
-| slotId | number | Yes| Card slot ID. The options are as follows:
- **0**: slot 1
- **1**: slot 2|
-| callback | AsyncCallback\ | Yes| Callback used to return the result, which is a country code, for example, **CN** (China).|
+| slotId | number | Yes | Card slot ID. The options are as follows:
- **0**: card slot 1
- **1**: card slot 2 |
+| callback | AsyncCallback\ | Yes | Callback used to return the result, which is a country code, for example, **CN** (China).|
**Example**
@@ -131,21 +193,23 @@ sim.getISOCountryCodeForSim(0, (err, data) => {
```
-## sim.getISOCountryCodeForSim
+## sim.getISOCountryCodeForSim
getISOCountryCodeForSim\(slotId: number\): Promise
Obtains the ISO country code of the SIM card in the specified slot. This function uses a promise to return the result.
+**System capability**: SystemCapability.Communication.CoreService
+
**Parameters**
-| Name| Type| Mandatory| Description|
+| Name| Type | Mandatory| Description |
| ------ | ------ | ---- | -------------------------------------- |
-| slotId | number | Yes| Card slot ID. The options are as follows:
- **0**: slot 1
- **1**: slot 2|
+| slotId | number | Yes | Card slot ID. The options are as follows:
- **0**: card slot 1
- **1**: card slot 2|
-**Return value**
+**Return Value**
-| Type| Description|
+| Type | Description |
| ----------------- | ------------------------------------------------------------ |
| Promise\ | Promise used to return the result, which is a country code, for example, **CN** (China).|
@@ -161,18 +225,20 @@ promise.then(data => {
```
-## sim.getSimOperatorNumeric
+## sim.getSimOperatorNumeric
getSimOperatorNumeric\(slotId: number, callback: AsyncCallback\): void
Obtains the public land mobile network (PLMN) ID of the SIM card in the specified slot. This function uses an asynchronous callback to return the result.
+**System capability**: SystemCapability.Communication.CoreService
+
**Parameters**
-| Name| Type| Mandatory| Description|
+| Name | Type | Mandatory| Description |
| -------- | ----------------------- | ---- | -------------------------------------- |
-| slotId | number | Yes| Card slot ID. The options are as follows:
- **0**: slot 1
- **1**: slot 2|
-| callback | AsyncCallback\ | Yes| Callback used to return the result.|
+| slotId | number | Yes | Card slot ID. The options are as follows:
- **0**: card slot 1
- **1**: card slot 2|
+| callback | AsyncCallback\ | Yes | Callback used to return the result. |
**Example**
@@ -183,21 +249,23 @@ sim.getSimOperatorNumeric(0, (err, data) => {
```
-## sim.getSimOperatorNumeric
+## sim.getSimOperatorNumeric
getSimOperatorNumeric\(slotId: number\): Promise
Obtains the PLMN ID of the SIM card in the specified slot. This function uses a promise to return the result.
+**System capability**: SystemCapability.Communication.CoreService
+
**Parameters**
-| Name| Type| Mandatory| Description|
+| Name| Type | Mandatory| Description |
| ------ | ------ | ---- | -------------------------------------- |
-| slotId | number | Yes| Card slot ID. The options are as follows:
- **0**: slot 1
- **1**: slot 2|
+| slotId | number | Yes | Card slot ID. The options are as follows:
- **0**: card slot 1
- **1**: card slot 2|
-**Return value**
+**Return Value**
-| Type| Description|
+| Type | Description |
| ----------------- | ------------------------------------------------ |
| Promise\ | Promise used to return the result.|
@@ -213,18 +281,20 @@ promise.then(data => {
```
-## sim.getSimSpn
+## sim.getSimSpn
getSimSpn\(slotId: number, callback: AsyncCallback\): void
Obtains the service provider name (SPN) of the SIM card in the specified slot. This function uses an asynchronous callback to return the result.
+**System capability**: SystemCapability.Communication.CoreService
+
**Parameters**
-| Name| Type| Mandatory| Description|
+| Name | Type | Mandatory| Description |
| -------- | ----------------------- | ---- | -------------------------------------- |
-| slotId | number | Yes| Card slot ID. The options are as follows:
- **0**: slot 1
- **1**: slot 2|
-| callback | AsyncCallback\ | Yes| Callback used to return the result.|
+| slotId | number | Yes | Card slot ID. The options are as follows:
- **0**: card slot 1
- **1**: card slot 2|
+| callback | AsyncCallback\ | Yes | Callback used to return the result. |
**Example**
@@ -235,21 +305,23 @@ sim.getSimSpn(0, (err, data) => {
```
-## sim.getSimSpn
+## sim.getSimSpn
getSimSpn\(slotId: number\): Promise
Obtains the SPN of the SIM card in the specified slot. This function uses a promise to return the result.
+**System capability**: SystemCapability.Communication.CoreService
+
**Parameters**
-| Name| Type| Mandatory| Description|
+| Name| Type | Mandatory| Description |
| ------ | ------ | ---- | -------------------------------------- |
-| slotId | number | Yes| Card slot ID. The options are as follows:
- **0**: slot 1
- **1**: slot 2|
+| slotId | number | Yes | Card slot ID. The options are as follows:
- **0**: card slot 1
- **1**: card slot 2|
-**Return value**
+**Return Value**
-| Type| Description|
+| Type | Description |
| ----------------- | ----------------------------------------- |
| Promise\ | Promise used to return the result.|
@@ -265,18 +337,20 @@ promise.then(data => {
```
-## sim.getSimState
+## sim.getSimState
getSimState\(slotId: number, callback: AsyncCallback\): void
Obtains the status of the SIM card in the specified slot. This function uses an asynchronous callback to return the result.
+**System capability**: SystemCapability.Communication.CoreService
+
**Parameters**
-| Name| Type| Mandatory| Description|
+| Name | Type | Mandatory| Description |
| -------- | -------------------------------------- | ---- | -------------------------------------- |
-| slotId | number | Yes| Card slot ID. The options are as follows:
- **0**: slot 1
- **1**: slot 2|
-| callback | AsyncCallback\<[SimState](#SimState)\> | Yes| Callback used to return the result, For details, see [SimState](#SimState).|
+| slotId | number | Yes | Card slot ID. The options are as follows:
- **0**: card slot 1
- **1**: card slot 2|
+| callback | AsyncCallback\<[SimState](#simState)\> | Yes | Callback used to return the result. For details, see [SimState](#simState). |
**Example**
@@ -287,23 +361,25 @@ sim.getSimState(0, (err, data) => {
```
-## sim.getSimState
+## sim.getSimState
getSimState\(slotId: number\): Promise
Obtains the status of the SIM card in the specified slot. This function uses a promise to return the result.
+**System capability**: SystemCapability.Communication.CoreService
+
**Parameters**
-| Name| Type| Mandatory| Description|
+| Name| Type | Mandatory| Description |
| ------ | ------ | ---- | -------------------------------------- |
-| slotId | number | Yes| Card slot ID. The options are as follows:
- **0**: slot 1
- **1**: slot 2|
+| slotId | number | Yes | Card slot ID. The options are as follows:
- **0**: card slot 1
- **1**: card slot 2|
-**Return value**
+**Return Value**
-| Type| Description|
+| Type | Description |
| -------------------------------- | ------------------------------------------ |
-| Promise\<[SimState](#SimState)\> | Promise used to return the result.|
+| Promise\<[SimState](#simState)\> | Promise used to return the result.|
**Example**
@@ -316,71 +392,169 @@ promise.then(data => {
});
```
-## sim.getSimGid1
+## sim.getCardType7+
-getSimGid1\(slotId: number, callback: AsyncCallback\): void
+getCardType\(slotId: number, callback: AsyncCallback\): void
-Obtains the group identifier level 1 (GID1) of the SIM card in the specified slot. This function uses an asynchronous callback to return the result.
+Obtains the type of the SIM card in the specified slot. This function uses an asynchronous callback to return the result.
-Before using this API, you must declare the **ohos.permission.GET\_TELEPHONY\_STATE** permission.
+**System capability**: SystemCapability.Communication.CoreService
**Parameters**
-| Name| Type| Mandatory| Description|
+| Name | Type | Mandatory| Description |
| -------- | ----------------------- | ---- | -------------------------------------- |
-| slotId | number | Yes| Card slot ID. The options are as follows:
- **0**: slot 1
- **1**: slot 2|
-| callback | AsyncCallback\ | Yes| Callback used to return the result.|
+| slotId | number | Yes | Card slot ID. The options are as follows:
- **0**: card slot 1
- **1**: card slot 2|
+| callback | AsyncCallback\<[CardType](#cardtype7)\> | Yes | Callback used to return the result. |
**Example**
```
-sim.getSimGid1(0, (err, data) => {
+sim.getCardType(0, (err, data) => {
console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
-## sim.getSimGid1
+## sim.getCardType7+
-getSimGid1\(slotId: number\): Promise
+getCardType\(slotId: number\): Promise
-Obtains the GID1 of the SIM card in the specified slot. This function uses a promise to return the result.
+Obtains the type of the SIM card in the specified slot. This function uses a promise to return the result.
-Before using this API, you must declare the **ohos.permission.GET\_TELEPHONY\_STATE** permission.
+**System capability**: SystemCapability.Communication.CoreService
**Parameters**
-| Name| Type| Mandatory| Description|
+| Name| Type | Mandatory| Description |
| ------ | ------ | ---- | -------------------------------------- |
-| slotId | number | Yes| Card slot ID. The options are as follows:
- **0**: slot 1
- **1**: slot 2|
+| slotId | number | Yes | Card slot ID. The options are as follows:
- **0**: card slot 1
- **1**: card slot 2|
-**Return value**
+**Return Value**
-| Type| Description|
+| Type | Description |
| ----------------- | ------------------------------------------------------------ |
-| Promise\ | Promise used to return the result.|
+| Promise\<[CardType](#cardtype7)\> | Promise used to return the result.|
**Example**
```
-let promise = sim.getSimGid1(0);
+let promise = sim.getCardType(0);
promise.then(data => {
- console.log(`getSimGid1 success, promise: data->${JSON.stringify(data)}`);
+ console.log(`getCardType success, promise: data->${JSON.stringify(data)}`);
}).catch(err => {
- console.log(`getSimGid1 fail, promise: err->${JSON.stringify(err)}`);
+ console.log(`getCardType fail, promise: err->${JSON.stringify(err)}`);
});
```
-## SimState
+## sim.hasSimCard7+
+
+hasSimCard\(slotId: number, callback: AsyncCallback\): void
+
+Checks whether the SIM card in the specified slot is installed. This function uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Communication.CoreService
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------- | ---- | -------------------------------------- |
+| slotId | number | Yes | Card slot ID. The options are as follows:
- **0**: card slot 1
- **1**: card slot 2|
+| callback | AsyncCallback<boolean> | Yes | Callback used to return the result. |
+
+**Example**
+
+```
+sim.hasSimCard(0, (err, data) => {
+ console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## sim.hasSimCard7+
+
+hasSimCard\(slotId: number\): Promise
+
+Checks whether the SIM card in the specified slot is installed. This function uses a promise to return the result.
+
+**System capability**: SystemCapability.Communication.CoreService
+
+**Parameters**
+
+| Name| Type | Mandatory| Description |
+| ------ | ------ | ---- | -------------------------------------- |
+| slotId | number | Yes | Card slot ID. The options are as follows:
- **0**: card slot 1
- **1**: card slot 2|
+
+**Return Value**
+
+| Type | Description |
+| --------------------- | ---------------------------------- |
+| Promise<boolean> | Promise used to return the result. The value **true** indicates that the SIM card in the specified slot is installed, and the value **false** indicates the opposite.|
+
+**Example**
+
+```
+let promise = sim.hasSimCard(0);
+promise.then(data => {
+ console.log(`hasSimCard success, promise: data->${JSON.stringify(data)}`);
+}).catch(err => {
+ console.log(`hasSimCard fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+
+## sim.getMaxSimCount7+
+
+getMaxSimCount\(\): number
+
+Obtains the number of card slots.
+
+**System capability**: SystemCapability.Communication.CoreService
+
+**Return Value**
+
+| Type | Description |
+| ----------------- | ------------------------------------------------------------ |
+| number | Number of card slots.|
+
+**Example**
+
+```
+console.log(sim.getMaxSimCount())
+```
+
+
+## SimState
Enumerates SIM card states.
-| Variable| Description|
-| --------------------- | ---------------------------------------------------------- |
-| SIM_STATE_UNKNOWN | The SIM card is in **unknown** state; that is, the SIM card status cannot be obtained.|
-| SIM_STATE_NOT_PRESENT | The SIM card is in **not present** state; that is, no SIM card is inserted into the slot.|
-| SIM_STATE_LOCKED | The 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_READY | The SIM card is in **not ready** state; that is, the SIM card is present but cannot work properly.|
-| SIM_STATE_READY | The SIM card is in **ready** state; that is, the SIM card is present and is working properly.|
-| SIM_STATE_LOADED | The SIM card is in **loaded** state; that is, the SIM card is present and all its files have been loaded.|
+**System capability**: SystemCapability.Telephony.CoreService
+
+| Name | Value | Description |
+| --------------------- | ---- | ---------------------------------------------------------- |
+| SIM_STATE_UNKNOWN | 0 | The SIM card is in **unknown** state; that is, the SIM card status cannot be obtained. |
+| SIM_STATE_NOT_PRESENT | 1 | The SIM card is in **not present** state; that is, no SIM card is inserted into the slot. |
+| SIM_STATE_LOCKED | 2 | The 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_READY | 3 | The SIM card is in **not ready** state; that is, the SIM card is present but cannot work properly. |
+| SIM_STATE_READY | 4 | The SIM card is in **ready** state; that is, the SIM card is present and is working properly. |
+| SIM_STATE_LOADED | 5 | The SIM card is in **loaded** state; that is, the SIM card is present and all its files have been loaded.|
+
+## CardType7+
+
+Enumerates card types.
+
+**System capability**: SystemCapability.Telephony.CoreService
+
+| Name| Value| Description|
+| ----- | ----- | ----- |
+|UNKNOWN_CARD | -1 | Unknown|
+|SINGLE_MODE_SIM_CARD | 10 | Single-card (SIM)|
+|SINGLE_MODE_USIM_CARD | 20 | Single-card (USIM)|
+|SINGLE_MODE_RUIM_CARD | 30 | Single-card (RUIM)|
+|DUAL_MODE_CG_CARD | 40 | Dual-card (CDMA+GSM)|
+|CT_NATIONAL_ROAMING_CARD | 41 | China Telecom internal roaming card|
+|CU_DUAL_MODE_CARD | 42 | China Unicom dual-mode card|
+|DUAL_MODE_TELECOM_LTE_CARD | 43 | China Telecom dual-mode LTE card|
+|DUAL_MODE_UG_CARD | 50 | Dual-mode card (UMTS+GSM)|
+|SINGLE_MODE_ISIM_CARD | 60 | Single-card (ISIM)|