# @ohos.telephony.observer (observer)(系统接口)
本模块提供订阅管理功能,可以订阅/取消订阅的事件包括:小区信息变化事件、指定卡槽位的小区信息变化事件。
>**说明:**
>
>本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
>
>当前页面仅包含本模块的系统接口,其他公开接口参见[@ohos.telephony.observer (observer)](js-apis-observer.md)
## 导入模块
```ts
import { observer } from '@kit.TelephonyKit';
```
## observer.on('cellInfoChange')8+
on\(type: \'cellInfoChange\', callback: Callback\\>\): void
订阅小区信息变化事件,使用callback方式作为异步方法。
**系统接口:** 此接口为系统接口。
**需要权限**:ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION
**系统能力**:SystemCapability.Telephony.StateRegistry
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------------------------------------- | ---- |------------------------------------------|
| type | string | 是 | 小区信息变化事件,固定为'cellInfoChange'。 |
| callback | Callback\\> | 是 | 以callback形式异步返回结果。 |
**错误码:**
以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。
| 错误码ID | 错误信息 |
| -------- | -------------------------------------------- |
| 201 | Permission denied. |
| 202 | Non-system applications use system APIs. |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
| 8300001 | Invalid parameter value. |
| 8300002 | Service connection failed. |
| 8300003 | System internal error. |
| 8300999 | Unknown error. |
**示例:**
```ts
import { radio } from '@kit.TelephonyKit';
observer.on('cellInfoChange', (data: Array) => {
console.log("on cellInfoChange, data:" + JSON.stringify(data));
});
```
## observer.on('cellInfoChange')8+
on\(type: \'cellInfoChange\', options: ObserverOptions, callback: Callback\\>\): void
订阅指定卡槽位的小区信息变化事件,使用callback方式作为异步方法。
**系统接口:** 此接口为系统接口。
**需要权限**:ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION
**系统能力**:SystemCapability.Telephony.StateRegistry
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ |--------------------------------------------------| ---- |--------------------------------------------|
| type | string | 是 | 小区信息变化事件,固定为'cellInfoChange'。 |
| options | [ObserverOptions](js-apis-observer.md#observeroptions11) | 是 | 电话相关事件订阅参数可选项。 |
| callback | Callback\\> | 是 | 以callback形式异步返回结果。 |
**错误码:**
以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。
| 错误码ID | 错误信息 |
| -------- | -------------------------------------------- |
| 201 | Permission denied. |
| 202 | Non-system applications use system APIs. |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
| 8300001 | Invalid parameter value. |
| 8300002 | Service connection failed. |
| 8300003 | System internal error. |
| 8300999 | Unknown error. |
**示例:**
```ts
import { radio } from '@kit.TelephonyKit';
let options: observer.ObserverOptions = {
slotId: 0
}
observer.on('cellInfoChange', options, (data: Array) => {
console.log("on cellInfoChange, data:" + JSON.stringify(data));
});
```
## observer.off('cellInfoChange')8+
off\(type: \'cellInfoChange\', callback?: Callback\\>\): void
取消订阅小区信息变化事件,使用callback方式作为异步方法。
>**说明:**
>
>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
**系统接口:** 此接口为系统接口。
**系统能力**:SystemCapability.Telephony.StateRegistry
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ |
| type | string | 是 | 小区信息变化事件,固定为'cellInfoChange'。 |
| callback | Callback\\> | 否 | 以callback形式异步返回结果。|
**错误码:**
以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。
| 错误码ID | 错误信息 |
| -------- | -------------------------------------------- |
| 202 | Non-system applications use system APIs. |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. |
| 8300001 | Invalid parameter value. |
| 8300002 | Service connection failed. |
| 8300003 | System internal error. |
| 8300999 | Unknown error. |
**示例:**
```ts
import { radio } from '@kit.TelephonyKit';
let callback: (data: Array) => void = (data: Array) => {
console.log("on cellInfoChange, data:" + JSON.stringify(data));
}
observer.on('cellInfoChange', callback);
// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
observer.off('cellInfoChange', callback);
observer.off('cellInfoChange');
```