1 # 事件订阅 2 3### 介绍 4 5本示例通过observer接口订阅网络状态、信号状态、通话状态、蜂窝数据、sim状态等事件,并获取状态变化返回的结果。 6 7### 效果预览 8 9|主页| 10|--------------------------------| 11|| 12 13使用说明 14 151.打开应用,开启所有订阅事件开关。 16 172.开关一次网络,触发网络状态变化。 18 193.拨打一次电话,触发通话状态变化,手机号暂不支持显示,需要应用为系统应用同时预授权才能正常显示。 20 214.插拔一次sim卡,触发sim卡状态变化和信号状态变化。 22 235.点击**查看详情**按钮,跳转详情页,显示监听到的数据结果。 24 25### 工程目录 26``` 27entry/src/main/ets/ 28|---Application 29| |---AbilityStage.ts 30|---MainAbility 31| |---MainAbility.ts 32|---model 33| |---DetailData.ts // 详情数据 34| |---Logger.ts // 日志工具 35|---pages 36| |---Index.ets // 首页 37| |---Deatil.ets // 详情页面 38``` 39### 具体实现 40 41* 该示例使用NetworkState方法获取网络注册状态,SignalInformation方法获取网络信号强度信息,RadioTechnology方法获取无线接入技术,CallState方法获取通话状态码,DataConnectState方法描述蜂窝数据链路连接状态,DataFlowType方法描述蜂窝数据流类型,SimStateData方法获取SIM卡类型和状态等方法提供订阅管理功能。 42* 源码链接:[DetailData.ts](entry/src/main/ets/modle/DetailData.ts),[Index.ets](entry/src/main/ets/pages/Index.ets) 43* 接口参考:[@ohos.telephony.radio](https://docs.openharmony.cn/pages/v4.1/zh-cn/application-dev/reference/apis-telephony-kit/js-apis-radio.md),[@ohos.telephony.call](https://docs.openharmony.cn/pages/v4.1/zh-cn/application-dev/reference/apis-telephony-kit/js-apis-call.md),[@ohos.telephony.data](https://docs.openharmony.cn/pages/v4.1/zh-cn/application-dev/reference/apis-telephony-kit/js-apis-telephony-data.md),[@ohos.telephony.observer](https://docs.openharmony.cn/pages/v4.1/zh-cn/application-dev/reference/apis-telephony-kit/js-apis-observer.md) 44 45#### 相关概念 46 47observer: 通过注册相关监听事件,来监听手机网络、信号、通话、sim卡等状态,并返回相应的结果。 48 49### 相关权限 50 511.获取网络状态权限:[ohos.permission.GET_NETWORK_INFO](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-all.md#ohospermissionget_network_info) 52 532.获取通话状态权限:[ohos.permission.READ_CALL_LOG](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionread_call_log) 54 55### 依赖 56 57不涉及。 58 59### 约束与限制 60 611.本示例仅支持标准系统上运行。 62 632.本示例需要插入SIM卡,目前该功能仅支持部分机型。 64 653.本示例已适配API version 9版本SDK,版本号:3.2.11.9。 66 674.本示例需要使用DevEco Studio 3.1 Beta2 (Build Version: 3.1.0.400, built on April 7, 2023)及以上版本才可编译运行。 68 695.本示例所配置的权限ohos.permission.READ_CALL_LOG为system_basic级别(相关权限级别可通过[权限定义列表](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-all.md)查看),需要手动配置对应级别的权限签名(具体操作可查看[自动化签名方案](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/hapsigntool-overview.md)。 70 71### 下载 72 73如需单独下载本工程,执行如下命令: 74``` 75git init 76git config core.sparsecheckout true 77echo code/BasicFeature/Telephony/Observer/ > .git/info/sparse-checkout 78git remote add origin https://gitee.com/openharmony/applications_app_samples.git 79git pull origin master 80 81```