js-apis-sim.md 13.3 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

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

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

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

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

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

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

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


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

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

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

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

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 55
| 类型                  | 说明                               |
| --------------------- | ---------------------------------- |
| Promise&lt;string&gt; | 以Promise形式返回指定卡槽的ICCID。 |
C
clevercong 已提交
56

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

Z
zengyawen 已提交
59 60 61 62 63 64 65 66
```
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)}`);
});
```
C
clevercong 已提交
67

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

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

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

Z
zengyawen 已提交
74
**参数:**
C
clevercong 已提交
75

Z
zengyawen 已提交
76 77 78
| 参数名   | 类型                        | 必填 | 说明       |
| -------- | --------------------------- | ---- | ---------- |
| callback | AsyncCallback&lt;number&gt; | 是   | 回调函数。 |
C
clevercong 已提交
79

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

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


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

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

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

Z
zengyawen 已提交
95
**返回值:**
Z
zengyawen 已提交
96

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

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

Z
zengyawen 已提交
103 104 105 106 107 108 109 110
```
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 已提交
111

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

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

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

Z
zengyawen 已提交
118
**参数:**
C
clevercong 已提交
119

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

Z
zengyawen 已提交
125
**示例:**
C
clevercong 已提交
126

Z
zengyawen 已提交
127 128 129 130 131
```
sim.getISOCountryCodeForSim(0, (err, data) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
C
clevercong 已提交
132 133


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

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

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

Z
zengyawen 已提交
140
**参数:**
C
clevercong 已提交
141

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

Z
zengyawen 已提交
146
**返回值:**
Z
zengyawen 已提交
147

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

Z
zengyawen 已提交
152
**示例:**
C
clevercong 已提交
153

Z
zengyawen 已提交
154 155 156 157 158 159 160 161
```
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 已提交
162 163


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

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

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

Z
zengyawen 已提交
170
**参数:**
C
clevercong 已提交
171

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

Z
zengyawen 已提交
177
**示例:**
C
clevercong 已提交
178

Z
zengyawen 已提交
179 180 181 182 183
```
sim.getSimOperatorNumeric(0, (err, data) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
C
clevercong 已提交
184 185


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

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

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

Z
zengyawen 已提交
192
**参数:**
Z
zengyawen 已提交
193

Z
zengyawen 已提交
194 195 196
| 参数名 | 类型   | 必填 | 说明                                   |
| ------ | ------ | ---- | -------------------------------------- |
| slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
Z
zengyawen 已提交
197

Z
zengyawen 已提交
198
**返回值:**
C
clevercong 已提交
199

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

Z
zengyawen 已提交
204
**示例:**
C
clevercong 已提交
205

Z
zengyawen 已提交
206 207 208 209 210 211 212 213
```
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 已提交
214 215


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

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

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

Z
zengyawen 已提交
222
**参数:**
C
clevercong 已提交
223

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

Z
zengyawen 已提交
229
**示例:**
C
clevercong 已提交
230

Z
zengyawen 已提交
231 232 233 234 235
```
sim.getSimSpn(0, (err, data) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
C
clevercong 已提交
236 237


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

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

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

Z
zengyawen 已提交
244
**参数:**
C
clevercong 已提交
245

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

Z
zengyawen 已提交
250
**返回值:**
C
clevercong 已提交
251

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

Z
zengyawen 已提交
256
**示例:**
C
clevercong 已提交
257

Z
zengyawen 已提交
258 259 260 261 262 263 264 265
```
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 已提交
266 267


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

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

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

Z
zengyawen 已提交
274
**参数:**
C
clevercong 已提交
275

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

Z
zengyawen 已提交
281
**示例:**
C
clevercong 已提交
282

Z
zengyawen 已提交
283 284 285 286 287
```
sim.getSimState(0, (err, data) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
C
clevercong 已提交
288 289


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

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

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

Z
zengyawen 已提交
296
**参数:**
C
clevercong 已提交
297

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

Z
zengyawen 已提交
302
**返回值:**
C
clevercong 已提交
303

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

Z
zengyawen 已提交
308
**示例:**
C
clevercong 已提交
309

Z
zengyawen 已提交
310 311 312 313 314 315 316 317
```
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 已提交
318

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

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

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

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

Z
zengyawen 已提交
327
**参数:**
C
clevercong 已提交
328

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

Z
zengyawen 已提交
334
**示例:**
C
clevercong 已提交
335

Z
zengyawen 已提交
336 337 338 339 340
```
sim.getSimGid1(0, (err, data) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
C
clevercong 已提交
341 342


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

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

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

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

Z
zengyawen 已提交
351
**参数:**
C
clevercong 已提交
352

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

Z
zengyawen 已提交
357
**返回值:**
C
clevercong 已提交
358

Z
zengyawen 已提交
359 360 361
| 类型              | 说明                                                         |
| ----------------- | ------------------------------------------------------------ |
| Promise\<string\> | 以Promise形式返回获取指定卡槽SIM卡的GID1(Group Identifier Level 1)。 |
C
clevercong 已提交
362

Z
zengyawen 已提交
363
**示例:**
C
clevercong 已提交
364

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


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

SIM卡状态。

Z
zengyawen 已提交
379 380 381 382 383 384 385 386
| 变量                  | 说明                                                       |
| --------------------- | ---------------------------------------------------------- |
| 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卡在位且所有卡文件加载完毕。 |