安卓代替系统默认电话应⽤(Android6.0+)与电话状态监听
Procrastinator's Brain
Android 6.0 之后开始⽀持修改默认电话应⽤,刚好最近有个相关的需求,于是记录下⾃⼰探索之旅。
00 Android Telecom framework
安卓intent用法从 API 21 开始,⾕歌添加了 TelecomManager ⽤于提供对电话通讯状态的监听,⽽ API 23 之后,⼜开放了 Telecom framework,这个框架允许第三⽅应⽤开发者编写应⽤来替换系统默认电话应⽤,⽽其中⼤部分接⼝就添加在 lecom 包下。
Telecom framework 其实提供了两个⽅⾯的 API,⼀个是 ConnectionService ⽤于实现通讯(⽐如通过电信服务商提供的电话连接服务),另⼀个就是我们这次的需要⽤到的 InCallService,它主要负责提供 UI 来管理电话。⼀般系统⾃带的电话应⽤同样也是实现这套 API 来提供电话通信的交互界⾯的。
01 替代系统默认电话应⽤
整个实现过程其实分为两步,⾸先是新增⼀个 Service 继承 InCallService 并实现其中你感兴趣的⽅法,然后再添加⼀个 Activity ⽤于提供⽤户界⾯。
⾸先我们来看下 Service 部分。
实现 InCallService
继承 InCallService 后我们需要实现两个⽅法 onCallAdded 和 onCallRemoved,分别代表电话进来与断开时会被调⽤,⼀般我们会在 onCallAdded 中注册电话状态监听,并在 onCallRemoved 中解除监
听。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论