详解Telecom

详解Telecom

学习目标:

掌握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() {

@Override

public TelecomManager createService(ContextImpl ctx) {

return new TelecomManager(ctx.getOuterContext());

}});

frameworks/base/services/core/java/com/android/server/telecom/TelecomLoaderService.javapublic 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();

}

未完待续...

💫 相关推荐

63公斤等於幾磅
365网站余额截图

63公斤等於幾磅

📅 07-08 👁️ 3013
动物有那些感知能力?
国内有bt365网站吗

动物有那些感知能力?

📅 07-04 👁️ 4360
微信公众号的文章编辑界面在哪里?怎么编辑排版?
365网站余额截图

微信公众号的文章编辑界面在哪里?怎么编辑排版?

📅 07-11 👁️ 5109