js-apis-sim.md 17.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';
```

M
maosiping 已提交
13
## sim.isSimActive<a name=sim.isSimActive-callback></a>
C
clevercong 已提交
14

M
maosiping 已提交
15
isSimActive\(slotId: number, callback: AsyncCallback<boolean\>\): void
C
clevercong 已提交
16

M
maosiping 已提交
17
获取指定卡槽SIM卡的是否激活,使用callback方式作为异步方法。
C
clevercong 已提交
18

M
maosiping 已提交
19
**需要权限**:ohos.permission.GET_TELEPHONY_STATE
C
clevercong 已提交
20

Z
zengyawen 已提交
21
**参数:**
C
clevercong 已提交
22

Z
zengyawen 已提交
23 24 25
| 参数名   | 类型                        | 必填 | 说明                                   |
| -------- | --------------------------- | ---- | -------------------------------------- |
| slotId   | number                      | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
M
maosiping 已提交
26
| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。                             |
C
clevercong 已提交
27

Z
zengyawen 已提交
28
**示例:**
C
clevercong 已提交
29

Z
zengyawen 已提交
30
```
M
maosiping 已提交
31
sim.isSimActive(0, (err, data) => {
Z
zengyawen 已提交
32 33 34
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
C
clevercong 已提交
35 36


M
maosiping 已提交
37
## sim.isSimActive<a name=sim.isSimActive-promise></a>
C
clevercong 已提交
38

M
maosiping 已提交
39
isSimActive\(slotId: number\): Promise<string\>
C
clevercong 已提交
40

M
maosiping 已提交
41
获取指定卡槽SIM卡的是否激活,使用Promise方式作为异步方法。
C
clevercong 已提交
42

M
maosiping 已提交
43
**需要权限**:ohos.permission.GET_TELEPHONY_STATE
C
clevercong 已提交
44

Z
zengyawen 已提交
45
**参数:**
C
clevercong 已提交
46

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

Z
zengyawen 已提交
51
**返回值:**
C
clevercong 已提交
52

Z
zengyawen 已提交
53 54
| 类型                  | 说明                               |
| --------------------- | ---------------------------------- |
M
maosiping 已提交
55
| Promise&lt;boolean&gt; | 以Promise形式返回指定卡槽的是否激活,如果激活返回true。 |
C
clevercong 已提交
56

Z
zengyawen 已提交
57
**示例:**
C
clevercong 已提交
58

Z
zengyawen 已提交
59
```
M
maosiping 已提交
60
let promise = sim.isSimActive(0);
Z
zengyawen 已提交
61
promise.then(data => {
M
maosiping 已提交
62
    console.log(`isSimActive success, promise: data->${JSON.stringify(data)}`);
Z
zengyawen 已提交
63
}).catch(err => {
M
maosiping 已提交
64
    console.log(`isSimActive fail, promise: err->${JSON.stringify(err)}`);
Z
zengyawen 已提交
65 66
});
```
C
clevercong 已提交
67

M
maosiping 已提交
68

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

Z
zengyawen 已提交
81
**示例:**
C
clevercong 已提交
82

Z
zengyawen 已提交
83 84 85 86 87
```
sim.getDefaultVoiceSlotId((err, data) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
C
clevercong 已提交
88 89


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
**返回值:**
Z
zengyawen 已提交
97

Z
zengyawen 已提交
98 99 100
| 类型              | 说明                                    |
| ----------------- | --------------------------------------- |
| Promise\<number\> | 以Promise形式返回默认语音业务的卡槽ID。 |
C
clevercong 已提交
101

Z
zengyawen 已提交
102
**示例:**
C
clevercong 已提交
103

Z
zengyawen 已提交
104 105 106 107 108 109 110 111
```
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)}`);
});
```
C
clevercong 已提交
112

M
maosiping 已提交
113 114 115 116 117 118 119

## sim.hasOperatorPrivileges<a name=sim.hasOperatorPrivileges-callback></a>

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

检查应用是否操作电话服务的权限,使用callback方式作为异步方法。

M
maosiping 已提交
120
**需要权限**:ohos.permission.GET_TELEPHONY_STATE
M
maosiping 已提交
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143

**参数:**

| 参数名   | 类型                        | 必填 | 说明                                   |
| -------- | --------------------------- | ---- | -------------------------------------- |
| slotId   | number                      | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。                             |

**示例:**

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


## sim.hasOperatorPrivileges<a name=sim.hasOperatorPrivileges-promise></a>

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

检查应用是否操作电话服务的权限,使用Promise方式作为异步方法。

M
maosiping 已提交
144
**需要权限**:ohos.permission.GET_TELEPHONY_STATE
M
maosiping 已提交
145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169

**参数:**

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

**返回值:**

| 类型                  | 说明                               |
| --------------------- | ---------------------------------- |
| Promise&lt;boolean&gt; | 以Promise形式返回指应用是否操作电话服务的权限,如果有返回true。 |

**示例:**

```
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)}`);
});
```


Z
zengyawen 已提交
170
## sim.getISOCountryCodeForSim<a name=sim.getISOCountryCodeForSim-callback></a>
C
clevercong 已提交
171 172 173 174 175

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

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

Z
zengyawen 已提交
176
**参数:**
C
clevercong 已提交
177

Z
zengyawen 已提交
178 179 180 181
| 参数名   | 类型                    | 必填 | 说明                                     |
| -------- | ----------------------- | ---- | ---------------------------------------- |
| slotId   | number                  | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2   |
| callback | AsyncCallback\<string\> | 是   | 回调函数。返回国家码,例如:CN(中国)。 |
C
clevercong 已提交
182

Z
zengyawen 已提交
183
**示例:**
C
clevercong 已提交
184

Z
zengyawen 已提交
185 186 187 188 189
```
sim.getISOCountryCodeForSim(0, (err, data) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
C
clevercong 已提交
190 191


Z
zengyawen 已提交
192
## sim.getISOCountryCodeForSim<a name=sim.getISOCountryCodeForSim-promise></a>
C
clevercong 已提交
193 194 195 196 197

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

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

Z
zengyawen 已提交
198
**参数:**
C
clevercong 已提交
199

Z
zengyawen 已提交
200 201 202
| 参数名 | 类型   | 必填 | 说明                                   |
| ------ | ------ | ---- | -------------------------------------- |
| slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
Z
zengyawen 已提交
203

Z
zengyawen 已提交
204
**返回值:**
Z
zengyawen 已提交
205

Z
zengyawen 已提交
206 207 208
| 类型              | 说明                                                         |
| ----------------- | ------------------------------------------------------------ |
| Promise\<string\> | 以Promise形式返回获取指定卡槽SIM卡的ISO国家码,例如:CN(中国)。 |
C
clevercong 已提交
209

Z
zengyawen 已提交
210
**示例:**
C
clevercong 已提交
211

Z
zengyawen 已提交
212 213 214 215 216 217 218 219
```
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)}`);
});
```
C
clevercong 已提交
220 221


Z
zengyawen 已提交
222
## sim.getSimOperatorNumeric<a name=sim.getSimOperatorNumeric-callback></a>
C
clevercong 已提交
223 224 225 226 227

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

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

Z
zengyawen 已提交
228
**参数:**
C
clevercong 已提交
229

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

Z
zengyawen 已提交
235
**示例:**
C
clevercong 已提交
236

Z
zengyawen 已提交
237 238 239 240 241
```
sim.getSimOperatorNumeric(0, (err, data) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
C
clevercong 已提交
242 243


Z
zengyawen 已提交
244
## sim.getSimOperatorNumeric<a name=sim.getSimOperatorNumeric-promise></a>
C
clevercong 已提交
245 246 247 248 249

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

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

Z
zengyawen 已提交
250
**参数:**
Z
zengyawen 已提交
251

Z
zengyawen 已提交
252 253 254
| 参数名 | 类型   | 必填 | 说明                                   |
| ------ | ------ | ---- | -------------------------------------- |
| slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
Z
zengyawen 已提交
255

Z
zengyawen 已提交
256
**返回值:**
C
clevercong 已提交
257

Z
zengyawen 已提交
258 259 260
| 类型              | 说明                                             |
| ----------------- | ------------------------------------------------ |
| Promise\<string\> | 以Promise形式返回获取指定卡槽SIM卡的归属PLMN号。 |
C
clevercong 已提交
261

Z
zengyawen 已提交
262
**示例:**
C
clevercong 已提交
263

Z
zengyawen 已提交
264 265 266 267 268 269 270 271
```
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)}`);
});
```
C
clevercong 已提交
272 273


Z
zengyawen 已提交
274
## sim.getSimSpn<a name=sim.getSimSpn-callback></a>
C
clevercong 已提交
275 276 277 278 279

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

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

Z
zengyawen 已提交
280
**参数:**
C
clevercong 已提交
281

Z
zengyawen 已提交
282 283 284 285
| 参数名   | 类型                    | 必填 | 说明                                   |
| -------- | ----------------------- | ---- | -------------------------------------- |
| slotId   | number                  | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
| callback | AsyncCallback\<string\> | 是   | 回调函数。                             |
C
clevercong 已提交
286

Z
zengyawen 已提交
287
**示例:**
C
clevercong 已提交
288

Z
zengyawen 已提交
289 290 291 292 293
```
sim.getSimSpn(0, (err, data) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
C
clevercong 已提交
294 295


Z
zengyawen 已提交
296
## sim.getSimSpn<a name=sim.getSimSpn-promise></a>
C
clevercong 已提交
297 298 299 300 301

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

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

Z
zengyawen 已提交
302
**参数:**
C
clevercong 已提交
303

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

Z
zengyawen 已提交
308
**返回值:**
C
clevercong 已提交
309

Z
zengyawen 已提交
310 311 312
| 类型              | 说明                                      |
| ----------------- | ----------------------------------------- |
| Promise\<string\> | 以Promise形式返回获取指定卡槽SIM卡的SPN。 |
C
clevercong 已提交
313

Z
zengyawen 已提交
314
**示例:**
C
clevercong 已提交
315

Z
zengyawen 已提交
316 317 318 319 320 321 322 323
```
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)}`);
});
```
C
clevercong 已提交
324 325


Z
zengyawen 已提交
326
## sim.getSimState<a name=sim.getSimState-callback></a>
C
clevercong 已提交
327 328 329 330 331

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

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

Z
zengyawen 已提交
332
**参数:**
C
clevercong 已提交
333

Z
zengyawen 已提交
334 335 336 337
| 参数名   | 类型                                   | 必填 | 说明                                   |
| -------- | -------------------------------------- | ---- | -------------------------------------- |
| slotId   | number                                 | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
| callback | AsyncCallback\<[SimState](#SimState)\> | 是   | 回调函数。参考[SimState](#SimState)。  |
C
clevercong 已提交
338

Z
zengyawen 已提交
339
**示例:**
C
clevercong 已提交
340

Z
zengyawen 已提交
341 342 343 344 345
```
sim.getSimState(0, (err, data) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
C
clevercong 已提交
346 347


Z
zengyawen 已提交
348
## sim.getSimState<a name=sim.getSimState-promise></a>
C
clevercong 已提交
349 350 351 352 353

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

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

Z
zengyawen 已提交
354
**参数:**
C
clevercong 已提交
355

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

Z
zengyawen 已提交
360
**返回值:**
C
clevercong 已提交
361

Z
zengyawen 已提交
362 363 364
| 类型                             | 说明                                       |
| -------------------------------- | ------------------------------------------ |
| Promise\<[SimState](#SimState)\> | 以Promise形式返回获取指定卡槽的SIM卡状态。 |
C
clevercong 已提交
365

Z
zengyawen 已提交
366
**示例:**
C
clevercong 已提交
367

Z
zengyawen 已提交
368 369 370 371 372 373 374 375
```
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)}`);
});
```
C
clevercong 已提交
376

M
maosiping 已提交
377
## sim.getCardType<a name=sim.getCardType-callback></a>
C
clevercong 已提交
378

M
maosiping 已提交
379
getCardType\(slotId: number, callback: AsyncCallback<CardType\>\): void
C
clevercong 已提交
380

M
maosiping 已提交
381
获取指定卡槽SIM卡的卡类型,使用callback方式作为异步方法。
C
clevercong 已提交
382

M
maosiping 已提交
383
**需要权限**:ohos.permission.GET_TELEPHONY_STATE
C
clevercong 已提交
384

Z
zengyawen 已提交
385
**参数:**
C
clevercong 已提交
386

Z
zengyawen 已提交
387 388 389
| 参数名   | 类型                    | 必填 | 说明                                   |
| -------- | ----------------------- | ---- | -------------------------------------- |
| slotId   | number                  | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
M
maosiping 已提交
390
| callback | AsyncCallback\<[CardType](#cardtype)\> | 是   | 回调函数。                             |
C
clevercong 已提交
391

Z
zengyawen 已提交
392
**示例:**
C
clevercong 已提交
393

Z
zengyawen 已提交
394
```
M
maosiping 已提交
395
sim.getCardType(0, (err, data) => {
Z
zengyawen 已提交
396 397 398
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
C
clevercong 已提交
399 400


M
maosiping 已提交
401
## sim.getCardType<a name=sim.getCardType-promise></a>
C
clevercong 已提交
402

M
maosiping 已提交
403
getCardType\(slotId: number\): Promise<CardType\>
C
clevercong 已提交
404

M
maosiping 已提交
405
获取指定卡槽SIM卡的卡类型,使用Promise方式作为异步方法。
C
clevercong 已提交
406

M
maosiping 已提交
407
**需要权限**:ohos.permission.GET_TELEPHONY_STATE
C
clevercong 已提交
408

Z
zengyawen 已提交
409
**参数:**
C
clevercong 已提交
410

Z
zengyawen 已提交
411 412 413
| 参数名 | 类型   | 必填 | 说明                                   |
| ------ | ------ | ---- | -------------------------------------- |
| slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
C
clevercong 已提交
414

Z
zengyawen 已提交
415
**返回值:**
C
clevercong 已提交
416

Z
zengyawen 已提交
417 418
| 类型              | 说明                                                         |
| ----------------- | ------------------------------------------------------------ |
M
maosiping 已提交
419
| Promise\<[CardType](#cardtype)\> | 以Promise形式返回指定卡槽SIM卡的卡类型。 |
C
clevercong 已提交
420

Z
zengyawen 已提交
421
**示例:**
C
clevercong 已提交
422

Z
zengyawen 已提交
423
```
M
maosiping 已提交
424
let promise = sim.getCardType(0);
Z
zengyawen 已提交
425
promise.then(data => {
M
maosiping 已提交
426
    console.log(`getCardType success, promise: data->${JSON.stringify(data)}`);
Z
zengyawen 已提交
427
}).catch(err => {
M
maosiping 已提交
428
    console.log(`getCardType fail, promise: err->${JSON.stringify(err)}`);
Z
zengyawen 已提交
429 430
});
```
C
clevercong 已提交
431 432


M
maosiping 已提交
433 434 435 436 437 438
## sim.hasSimCard<a name=sim.hasSimCard-callback></a>

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

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

M
maosiping 已提交
439
**需要权限**:ohos.permission.GET_TELEPHONY_STATE
M
maosiping 已提交
440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462

**参数:**

| 参数名   | 类型                        | 必填 | 说明                                   |
| -------- | --------------------------- | ---- | -------------------------------------- |
| slotId   | number                      | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。                             |

**示例:**

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


## sim.hasSimCard<a name=sim.hasSimCard-promise></a>

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

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

M
maosiping 已提交
463
**需要权限**:ohos.permission.GET_TELEPHONY_STATE
M
maosiping 已提交
464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494

**参数:**

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

**返回值:**

| 类型                  | 说明                               |
| --------------------- | ---------------------------------- |
| Promise&lt;boolean&gt; | 以Promise形式返回指定卡槽的是否插卡,如果插卡返回true。 |

**示例:**

```
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.getMaxSimCount

getMaxSimCount\(\): number

获取卡槽数量。

M
maosiping 已提交
495
**需要权限**:ohos.permission.GET_TELEPHONY_STATE
M
maosiping 已提交
496 497 498 499 500 501 502 503 504 505 506 507 508 509

**返回值:**

| 类型              | 说明                                                         |
| ----------------- | ------------------------------------------------------------ |
| number | 卡槽数量。 |

**示例:**

```
console.log(sim.getMaxSimCount())
```


Z
zengyawen 已提交
510
## SimState<a name=SimState></a>
C
clevercong 已提交
511 512 513

SIM卡状态。

Z
zengyawen 已提交
514 515 516 517 518 519 520
| 变量                  | 说明                                                       |
| --------------------- | ---------------------------------------------------------- |
| 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卡在位且工作正常。            |
M
maosiping 已提交
521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538
| SIM_STATE_LOADED      | 表示SIM卡处于loaded状态,即SIM卡在位且所有卡文件加载完毕。 |

## CardType

卡类型。

| 变量  | 值 | 说明 |
| ----- | ----- | ----- |
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_CARD | 60 | 单一ISIM卡类型 |