码迷,mamicode.com
首页 > 其他好文 > 详细

详解Telecom

时间:2019-12-15 18:09:49      阅读:409      评论:0      收藏:0      [点我收藏+]

标签:from   override   入口   core   load   image   listen   传递   gets   

学习目标:

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

 

详解Telecom

标签:from   override   入口   core   load   image   listen   传递   gets   

原文地址:https://www.cnblogs.com/yz123/p/12045241.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!