详解Telecom
2024-10-02 22:25:05
学习目标:
- 掌握Telecom入口和分析方法
- 总结和演进Telecom交互模型
- 掌握Listener消息回调机制
- 学习CallsManager
为什么选择Telecom分析?
这是由于在Android Telephony通话模型中它为Dialer和TeleService消息中转站,作为MT与MO消息处理关键入口,承上启下,非常重要。
- 呈上:
相对与Dialer应用而言,发送call状态变化消息给IInCallService服务,并接收Dialer应用发出的call状态控制消息。
- 启下
相对与TeleService应用而言,Telecom应用继续传递接收到Dialer应用发出的call状态控制消息给IConnectionService服务,并接收TeleService应用发出的Call状态变化传递给Dialer应用。
frameworks/base/telecomm/java/android/telecom/TelecomManager.java
public static TelecomManager from(Context context) {
return (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE);
}
frameworks/base/telephony/java/android/telephony/TelephonyManager.java
private ITelecomService getTelecomService() {
return ITelecomService.Stub.asInterface(ServiceManager.getService(TELECOM_SERVICE));
}
frameworks/base/core/java/android/app/SystemServiceRegistry.java
registerService(Context.TELECOM_SERVICE, TelecomManager.class,
new CachedServiceFetcher<TelecomManager>() {
@Override
public TelecomManager createService(ContextImpl ctx) {
return new TelecomManager(ctx.getOuterContext());
}});
frameworks/base/services/core/java/com/android/server/telecom/TelecomLoaderService.java
public class TelecomLoaderService extends SystemService { private class TelecomServiceConnection implements ServiceConnection {
@Override
public void onServiceConnected(ComponentName name, IBinder service) { ... ServiceManager.addService(Context.TELECOM_SERVICE, service);
}
...
@Override
public void onServiceDisconnected(ComponentName name) {
connectToTelecom();
}
未完待续...
最新文章
- C程序中常见的内存操作错误
- Centos中jdk的环境配置
- linux 安装软件,卸载软件 等的几种方式
- 如何成为高级java程序员
- 一个html5 + nodejs的游戏
- python网络编程(六)---web客户端访问
- 2的32次方 分类: C#小技巧 2014-08-05 18:18 406人阅读 评论(0) 收藏
- 设计模式2----建造者模式(builder pattern)
- C++标准:C++不允许修改任何基本型别(包括指针)的暂时值
- C语言之预处理命令
- VM添加e1000e驱动网卡
- [再寄小读者之数学篇](2014-06-23 Hardy 空间、BMO空间与 Triebel-Lizorkin 空间)
- python time库
- jquery的jsonp的使用
- python自学第5天,集合,文件读写
- CSS特效(弧光效果)
- 2019CSUST集训队选拔赛题解(二)
- 全局 Style
- 【五年】Java打怪升级之路
- CodeForces 347B Fixed Points (水题)