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

C
clevercong 已提交
3 4
>**说明:** 
>
Z
zengyawen 已提交
5 6
>- 从 API Version 6 开始支持。
>- 标记<sup>7+</sup>的接口从API Version 7开始支持。
C
clevercong 已提交
7

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

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

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

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

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

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

-   参数

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


-   示例

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


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

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

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

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

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

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

- 返回值

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

-   示例

    ```
    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 已提交
70
## sim.getDefaultVoiceSlotId<sup>7+</sup><a name= sim.getDefaultVoiceSlotId-callback></a>
C
clevercong 已提交
71

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

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

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

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

-   示例

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


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

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

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

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

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

-   示例

    ```
    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 已提交
114
## sim.getISOCountryCodeForSim<a name=sim.getISOCountryCodeForSim-callback></a>
C
clevercong 已提交
115 116 117 118 119

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

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

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

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

-   示例

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


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

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

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

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

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

- 返回值

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

-   示例

    ```
    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 已提交
166
## sim.getSimOperatorNumeric<a name=sim.getSimOperatorNumeric-callback></a>
C
clevercong 已提交
167 168 169 170 171

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

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

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

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

-   示例

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


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

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

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

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

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

- 返回值
C
clevercong 已提交
201

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

-   示例

    ```
    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 已提交
218
## sim.getSimSpn<a name=sim.getSimSpn-callback></a>
C
clevercong 已提交
219 220 221 222 223

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

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

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

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

-   示例

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


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

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

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

- 参数

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

- 返回值

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

-   示例

    ```
    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 已提交
270
## sim.getSimState<a name=sim.getSimState-callback></a>
C
clevercong 已提交
271 272 273 274 275

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

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

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

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

-   示例

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


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

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

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

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

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

- 返回值

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

-   示例

    ```
    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 已提交
321
## sim.getSimGid1<a name=sim.getSimGid1-callback></a>
C
clevercong 已提交
322 323 324 325 326 327 328

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

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

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

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

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

-   示例

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


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

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

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

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

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

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

- 返回值

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

-   示例

    ```
    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 已提交
377
## SimState<a name=SimState></a>
C
clevercong 已提交
378 379 380

SIM卡状态。

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