学习目标:

  • 掌握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();
  }

未完待续...

最新文章

  1. C程序中常见的内存操作错误
  2. Centos中jdk的环境配置
  3. linux 安装软件,卸载软件 等的几种方式
  4. 如何成为高级java程序员
  5. 一个html5 + nodejs的游戏
  6. python网络编程(六)---web客户端访问
  7. 2的32次方 分类: C#小技巧 2014-08-05 18:18 406人阅读 评论(0) 收藏
  8. 设计模式2----建造者模式(builder pattern)
  9. C++标准:C++不允许修改任何基本型别(包括指针)的暂时值
  10. C语言之预处理命令
  11. VM添加e1000e驱动网卡
  12. [再寄小读者之数学篇](2014-06-23 Hardy 空间、BMO空间与 Triebel-Lizorkin 空间)
  13. python time库
  14. jquery的jsonp的使用
  15. python自学第5天,集合,文件读写
  16. CSS特效(弧光效果)
  17. 2019CSUST集训队选拔赛题解(二)
  18. 全局 Style
  19. 【五年】Java打怪升级之路
  20. CodeForces 347B Fixed Points (水题)

热门文章

  1. Linux 常用指令总结
  2. 在VMware下创建windows2008虚拟机
  3. 数据持久化之Android文件系统(一)
  4. dubbo接口未更新,清maven缓存问题
  5. safari 调试iPhone web页面
  6. spring基于xml的事务控制
  7. linux 重启mysql redis等服务器
  8. 怎么部署TFS
  9. DBCP重连的问题及解决办法(转)
  10. centos 单用户登陆模式操作