js-apis-sim.md 13.7 KB
Newer Older
Z
zengyawen 已提交
1 2
# SIM卡管理

C
clevercong 已提交
3 4
>**说明:** 
>
Z
zengyawen 已提交
5
>本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
C
clevercong 已提交
6

Z
zengyawen 已提交
7
## 导入模块
C
clevercong 已提交
8 9 10 11 12

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

Z
zengyawen 已提交
13
## sim.getSimIccId<a name=sim.getSimIccId-callback></a>
C
clevercong 已提交
14 15 16 17 18 19 20 21 22

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

获取指定卡槽SIM卡的ICCID(Integrate Circuit Card Identity),使用callback方式作为异步方法。

需要ohos.permission.GET\_TELEPHONY\_STATE权限,该权限为系统权限。

-   参数

Z
zengyawen 已提交
23 24 25 26
    | 参数名   | 类型                        | 必填 | 说明                                   |
    | -------- | --------------------------- | ---- | -------------------------------------- |
    | slotId   | number                      | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
    | callback | AsyncCallback&lt;string&gt; | 是   | 回调函数。                             |
C
clevercong 已提交
27 28 29 30 31 32 33 34 35 36 37


-   示例

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


Z
zengyawen 已提交
38
## sim.getSimIccId<a name=sim.getSimIccId-promise></a>
C
clevercong 已提交
39 40 41 42 43 44 45

getSimIccId\(slotId: number\): Promise<string\>

获取指定卡槽SIM卡的ICCID(Integrate Circuit Card Identity),使用Promise方式作为异步方法。

需要ohos.permission.GET\_TELEPHONY\_STATE权限,该权限为系统权限。

Z
zengyawen 已提交
46
- 参数
C
clevercong 已提交
47

Z
zengyawen 已提交
48 49 50
    | 参数名 | 类型   | 必填 | 说明                                   |
    | ------ | ------ | ---- | -------------------------------------- |
    | slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
C
clevercong 已提交
51 52 53

- 返回值

Z
zengyawen 已提交
54 55 56
    | 类型                  | 说明                               |
    | --------------------- | ---------------------------------- |
    | Promise&lt;string&gt; | 以Promise形式返回指定卡槽的ICCID。 |
C
clevercong 已提交
57 58 59 60 61 62 63 64 65 66 67 68

-   示例

    ```
    let promise = sim.getSimIccId(0);
    promise.then(data => {
        console.log(`getSimIccId success, promise: data->${JSON.stringify(data)}`);
    }).catch(err => {
        console.log(`getSimIccId fail, promise: err->${JSON.stringify(err)}`);
    });
    ```

Z
zengyawen 已提交
69
## sim.getDefaultVoiceSlotId<sup>7+</sup><a name= sim.getDefaultVoiceSlotId-callback></a>
C
clevercong 已提交
70

Z
zengyawen 已提交
71
getDefaultVoiceSlotId\(callback: AsyncCallback<number\>\): void
C
clevercong 已提交
72 73 74

获取默认语音业务的卡槽ID,使用callback方式作为异步方法。

Z
zengyawen 已提交
75
- 参数
C
clevercong 已提交
76

Z
zengyawen 已提交
77 78 79
  | 参数名   | 类型                        | 必填 | 说明       |
  | -------- | --------------------------- | ---- | ---------- |
  | callback | AsyncCallback&lt;number&gt; | 是   | 回调函数。 |
C
clevercong 已提交
80 81 82 83 84 85 86 87 88 89

-   示例

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


Z
zengyawen 已提交
90
## sim.getDefaultVoiceSlotId<sup>7+</sup><a name=sim.getDefaultVoiceSlotId-promise></a>
C
clevercong 已提交
91

Z
zengyawen 已提交
92
getDefaultVoiceSlotId\(\): Promise<number\>
C
clevercong 已提交
93 94 95

获取默认语音业务的卡槽ID,使用Promise方式作为异步方法。

Z
zengyawen 已提交
96 97 98 99 100
- 返回值

  | 类型              | 说明                                    |
  | ----------------- | --------------------------------------- |
  | Promise\<number\> | 以Promise形式返回默认语音业务的卡槽ID。 |
C
clevercong 已提交
101 102 103 104 105 106 107 108 109 110 111 112

-   示例

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

Z
zengyawen 已提交
113
## sim.getISOCountryCodeForSim<a name=sim.getISOCountryCodeForSim-callback></a>
C
clevercong 已提交
114 115 116 117 118

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

获取指定卡槽SIM卡的ISO国家码,使用callback方式作为异步方法。

Z
zengyawen 已提交
119
- 参数
C
clevercong 已提交
120

Z
zengyawen 已提交
121 122 123 124
  | 参数名   | 类型                    | 必填 | 说明                                     |
  | -------- | ----------------------- | ---- | ---------------------------------------- |
  | slotId   | number                  | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2   |
  | callback | AsyncCallback\<string\> | 是   | 回调函数。返回国家码,例如:CN(中国)。 |
C
clevercong 已提交
125 126 127 128 129 130 131 132 133 134

-   示例

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


Z
zengyawen 已提交
135
## sim.getISOCountryCodeForSim<a name=sim.getISOCountryCodeForSim-promise></a>
C
clevercong 已提交
136 137 138 139 140

getISOCountryCodeForSim\(slotId: number\): Promise<string\>

获取指定卡槽SIM卡的ISO国家码,使用Promise方式作为异步方法。

Z
zengyawen 已提交
141
- 参数
C
clevercong 已提交
142

Z
zengyawen 已提交
143 144 145 146 147 148 149 150 151
  | 参数名 | 类型   | 必填 | 说明                                   |
  | ------ | ------ | ---- | -------------------------------------- |
  | slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |

- 返回值

  | 类型              | 说明                                                         |
  | ----------------- | ------------------------------------------------------------ |
  | Promise\<string\> | 以Promise形式返回获取指定卡槽SIM卡的ISO国家码,例如:CN(中国)。 |
C
clevercong 已提交
152 153 154 155 156 157 158 159 160 161 162 163 164

-   示例

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


Z
zengyawen 已提交
165
## sim.getSimOperatorNumeric<a name=sim.getSimOperatorNumeric-callback></a>
C
clevercong 已提交
166 167 168 169 170

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

获取指定卡槽SIM卡的归属PLMN(Public Land Mobile Network)号,使用callback方式作为异步方法。

Z
zengyawen 已提交
171
- 参数
C
clevercong 已提交
172

Z
zengyawen 已提交
173 174 175 176
  | 参数名   | 类型                    | 必填 | 说明                                   |
  | -------- | ----------------------- | ---- | -------------------------------------- |
  | slotId   | number                  | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
  | callback | AsyncCallback\<string\> | 是   | 回调函数。                             |
C
clevercong 已提交
177 178 179 180 181 182 183 184 185 186

-   示例

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


Z
zengyawen 已提交
187
## sim.getSimOperatorNumeric<a name=sim.getSimOperatorNumeric-promise></a>
C
clevercong 已提交
188 189 190 191 192

getSimOperatorNumeric\(slotId: number\): Promise<string\>

获取指定卡槽SIM卡的归属PLMN(Public Land Mobile Network)号,使用Promise方式作为异步方法。

Z
zengyawen 已提交
193 194 195 196 197 198 199
- 参数

  | 参数名 | 类型   | 必填 | 说明                                   |
  | ------ | ------ | ---- | -------------------------------------- |
  | slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |

- 返回值
C
clevercong 已提交
200

Z
zengyawen 已提交
201 202 203
  | 类型              | 说明                                             |
  | ----------------- | ------------------------------------------------ |
  | Promise\<string\> | 以Promise形式返回获取指定卡槽SIM卡的归属PLMN号。 |
C
clevercong 已提交
204 205 206 207 208 209 210 211 212 213 214 215 216

-   示例

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


Z
zengyawen 已提交
217
## sim.getSimSpn<a name=sim.getSimSpn-callback></a>
C
clevercong 已提交
218 219 220 221 222

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

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

Z
zengyawen 已提交
223
- 参数
C
clevercong 已提交
224

Z
zengyawen 已提交
225 226 227 228
  | 参数名   | 类型                    | 必填 | 说明                                   |
  | -------- | ----------------------- | ---- | -------------------------------------- |
  | slotId   | number                  | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
  | callback | AsyncCallback\<string\> | 是   | 回调函数。                             |
C
clevercong 已提交
229 230 231 232 233 234 235 236 237 238

-   示例

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


Z
zengyawen 已提交
239
## sim.getSimSpn<a name=sim.getSimSpn-promise></a>
C
clevercong 已提交
240 241 242 243 244 245 246

getSimSpn\(slotId: number\): Promise<string\>

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

- 参数

Z
zengyawen 已提交
247 248 249
    | 参数名 | 类型   | 必填 | 说明                                   |
    | ------ | ------ | ---- | -------------------------------------- |
    | slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
C
clevercong 已提交
250 251 252

- 返回值

Z
zengyawen 已提交
253 254 255
    | 类型              | 说明                                      |
    | ----------------- | ----------------------------------------- |
    | Promise\<string\> | 以Promise形式返回获取指定卡槽SIM卡的SPN。 |
C
clevercong 已提交
256 257 258 259 260 261 262 263 264 265 266 267 268

-   示例

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


Z
zengyawen 已提交
269
## sim.getSimState<a name=sim.getSimState-callback></a>
C
clevercong 已提交
270 271 272 273 274

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

获取指定卡槽的SIM卡状态,使用callback方式作为异步方法。

Z
zengyawen 已提交
275
- 参数
C
clevercong 已提交
276

Z
zengyawen 已提交
277 278 279 280
  | 参数名   | 类型                                   | 必填 | 说明                                   |
  | -------- | -------------------------------------- | ---- | -------------------------------------- |
  | slotId   | number                                 | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
  | callback | AsyncCallback\<[SimState](#SimState)\> | 是   | 回调函数。参考[SimState](#SimState)。  |
C
clevercong 已提交
281 282 283 284 285 286 287 288 289 290

-   示例

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


Z
zengyawen 已提交
291
## sim.getSimState<a name=sim.getSimState-promise></a>
C
clevercong 已提交
292 293 294 295 296

getSimState\(slotId: number\): Promise<SimState\>

获取指定卡槽的SIM卡状态,使用Promise方式作为异步方法。

Z
zengyawen 已提交
297
- 参数
C
clevercong 已提交
298

Z
zengyawen 已提交
299 300 301
    | 参数名 | 类型   | 必填 | 说明                                   |
    | ------ | ------ | ---- | -------------------------------------- |
    | slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
C
clevercong 已提交
302 303 304

- 返回值

Z
zengyawen 已提交
305 306 307
    | 类型                             | 说明                                       |
    | -------------------------------- | ------------------------------------------ |
    | Promise\<[SimState](#SimState)\> | 以Promise形式返回获取指定卡槽的SIM卡状态。 |
C
clevercong 已提交
308 309 310 311 312 313 314 315 316 317 318 319

-   示例

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

Z
zengyawen 已提交
320
## sim.getSimGid1<a name=sim.getSimGid1-callback></a>
C
clevercong 已提交
321 322 323 324 325 326 327

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

获取指定卡槽SIM卡的GID1\(Group Identifier Level 1\),使用callback方式作为异步方法。

需要ohos.permission.GET\_TELEPHONY\_STATE权限,该权限为系统权限。

Z
zengyawen 已提交
328
- 参数
C
clevercong 已提交
329

Z
zengyawen 已提交
330 331 332 333
  | 参数名   | 类型                    | 必填 | 说明                                   |
  | -------- | ----------------------- | ---- | -------------------------------------- |
  | slotId   | number                  | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
  | callback | AsyncCallback\<string\> | 是   | 回调函数。                             |
C
clevercong 已提交
334 335 336 337 338 339 340 341 342 343

-   示例

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


Z
zengyawen 已提交
344
## sim.getSimGid1<a name=sim.getSimGid1-promise></a>
C
clevercong 已提交
345 346 347 348 349 350 351

getSimGid1\(slotId: number\): Promise<string\>

获取指定卡槽SIM卡的GID1\(Group Identifier Level 1\),使用Promise方式作为异步方法。

需要ohos.permission.GET\_TELEPHONY\_STATE权限,该权限为系统权限。

Z
zengyawen 已提交
352
- 参数
C
clevercong 已提交
353

Z
zengyawen 已提交
354 355 356
    | 参数名 | 类型   | 必填 | 说明                                   |
    | ------ | ------ | ---- | -------------------------------------- |
    | slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
C
clevercong 已提交
357 358 359

- 返回值

Z
zengyawen 已提交
360 361 362
    | 类型              | 说明                                                         |
    | ----------------- | ------------------------------------------------------------ |
    | Promise\<string\> | 以Promise形式返回获取指定卡槽SIM卡的GID1(Group Identifier Level 1)。 |
C
clevercong 已提交
363 364 365 366 367 368 369 370 371 372 373 374 375

-   示例

    ```
    let promise = sim.getSimGid1(0);
    promise.then(data => {
        console.log(`getSimGid1 success, promise: data->${JSON.stringify(data)}`);
    }).catch(err => {
        console.log(`getSimGid1 fail, promise: err->${JSON.stringify(err)}`);
    });
    ```


Z
zengyawen 已提交
376
## SimState<a name=SimState></a>
C
clevercong 已提交
377 378 379

SIM卡状态。

Z
zengyawen 已提交
380 381 382 383 384 385 386 387
| 变量                  | 说明                                                       |
| --------------------- | ---------------------------------------------------------- |
| SIM_STATE_UNKNOWN     | SIM卡状态未知,即无法获取准确的状态。                      |
| SIM_STATE_NOT_PRESENT | 表示SIM卡处于not present状态,即卡槽中没有插入SIM卡。      |
| SIM_STATE_LOCKED      | 表示SIM卡处于locked状态,即SIM卡被PIN、PUK或网络锁锁定。   |
| SIM_STATE_NOT_READY   | 表示SIM卡处于not ready状态,即SIM卡在位但无法正常工作。    |
| SIM_STATE_READY       | 表示SIM卡处于ready状态,即SIM卡在位且工作正常。            |
| SIM_STATE_LOADED      | 表示SIM卡处于loaded状态,即SIM卡在位且所有卡文件加载完毕。 |