1# @ohos.telephony.observer (observer)(系统接口) 2 3本模块提供订阅管理功能,可以订阅/取消订阅的事件包括:小区信息变化事件、指定卡槽位的小区信息变化事件。 4 5>**说明:** 6> 7>本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8> 9>当前页面仅包含本模块的系统接口,其他公开接口参见[@ohos.telephony.observer (observer)](js-apis-observer.md) 10 11## 导入模块 12 13```ts 14import { observer } from '@kit.TelephonyKit'; 15``` 16 17 18## observer.on('cellInfoChange')<sup>8+</sup> 19 20on\(type: \'cellInfoChange\', callback: Callback\<Array\<CellInformation\>\>\): void 21 22订阅小区信息变化事件,使用callback方式作为异步方法。 23 24**系统接口:** 此接口为系统接口。 25 26**需要权限**:ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION 27 28**系统能力**:SystemCapability.Telephony.StateRegistry 29 30**参数:** 31 32| 参数名 | 类型 | 必填 | 说明 | 33| -------- | --------------------------------------------------------- | ---- |------------------------------------------| 34| type | string | 是 | 小区信息变化事件,固定为'cellInfoChange'。 | 35| callback | Callback\<Array\<[CellInformation](js-apis-radio.md#cellinformation8)\>\> | 是 | 以callback形式异步返回结果。 | 36 37**错误码:** 38 39以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 40 41| 错误码ID | 错误信息 | 42| -------- | -------------------------------------------- | 43| 201 | Permission denied. | 44| 202 | Non-system applications use system APIs. | 45| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 46| 8300001 | Invalid parameter value. | 47| 8300002 | Service connection failed. | 48| 8300003 | System internal error. | 49| 8300999 | Unknown error. | 50 51**示例:** 52 53```ts 54import { radio } from '@kit.TelephonyKit'; 55 56observer.on('cellInfoChange', (data: Array<radio.CellInformation>) => { 57 console.log("on cellInfoChange, data:" + JSON.stringify(data)); 58}); 59``` 60 61 62## observer.on('cellInfoChange')<sup>8+</sup> 63 64on\(type: \'cellInfoChange\', options: ObserverOptions, callback: Callback\<Array\<CellInformation\>\>\): void 65 66订阅指定卡槽位的小区信息变化事件,使用callback方式作为异步方法。 67 68**系统接口:** 此接口为系统接口。 69 70**需要权限**:ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION 71 72**系统能力**:SystemCapability.Telephony.StateRegistry 73 74**参数:** 75 76| 参数名 | 类型 | 必填 | 说明 | 77| ------ |--------------------------------------------------| ---- |--------------------------------------------| 78| type | string | 是 | 小区信息变化事件,固定为'cellInfoChange'。 | 79| options | [ObserverOptions](js-apis-observer.md#observeroptions11) | 是 | 电话相关事件订阅参数可选项。 | 80| callback | Callback\<Array\<[CellInformation](js-apis-radio.md#cellinformation8)\>\> | 是 | 以callback形式异步返回结果。 | 81 82**错误码:** 83 84以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 85 86| 错误码ID | 错误信息 | 87| -------- | -------------------------------------------- | 88| 201 | Permission denied. | 89| 202 | Non-system applications use system APIs. | 90| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 91| 8300001 | Invalid parameter value. | 92| 8300002 | Service connection failed. | 93| 8300003 | System internal error. | 94| 8300999 | Unknown error. | 95 96**示例:** 97 98```ts 99import { radio } from '@kit.TelephonyKit'; 100 101let options: observer.ObserverOptions = { 102 slotId: 0 103} 104observer.on('cellInfoChange', options, (data: Array<radio.CellInformation>) => { 105 console.log("on cellInfoChange, data:" + JSON.stringify(data)); 106}); 107``` 108 109 110## observer.off('cellInfoChange')<sup>8+</sup> 111 112off\(type: \'cellInfoChange\', callback?: Callback\<Array\<CellInformation\>\>\): void 113 114取消订阅小区信息变化事件,使用callback方式作为异步方法。 115 116>**说明:** 117> 118>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 119 120**系统接口:** 此接口为系统接口。 121 122**系统能力**:SystemCapability.Telephony.StateRegistry 123 124**参数:** 125 126| 参数名 | 类型 | 必填 | 说明 | 127| -------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ | 128| type | string | 是 | 小区信息变化事件,固定为'cellInfoChange'。 | 129| callback | Callback\<Array\<[CellInformation](js-apis-radio.md#cellinformation8)\>\> | 否 | 以callback形式异步返回结果。| 130 131**错误码:** 132 133以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 134 135| 错误码ID | 错误信息 | 136| -------- | -------------------------------------------- | 137| 202 | Non-system applications use system APIs. | 138| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 139| 8300001 | Invalid parameter value. | 140| 8300002 | Service connection failed. | 141| 8300003 | System internal error. | 142| 8300999 | Unknown error. | 143 144**示例:** 145 146```ts 147import { radio } from '@kit.TelephonyKit'; 148 149let callback: (data: Array<radio.CellInformation>) => void = (data: Array<radio.CellInformation>) => { 150 console.log("on cellInfoChange, data:" + JSON.stringify(data)); 151} 152observer.on('cellInfoChange', callback); 153// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 154observer.off('cellInfoChange', callback); 155observer.off('cellInfoChange'); 156``` 157 158