前言
本文代碼基于 Android S。
框架

Ims 結構層級
Ims 框架的核心是 ImsService ,它向 phone fw 提供 aidl 接口。這些接口提供 ims 相關的所有信息。
更直觀的表示:
imsservice 提供的 aidl 接口
其中:
IImsMmTelFeature 提供 ims call 相關的信息;
IImsRcsFeature 提供 ims rcs 相關的信息;
IImsRegistration 提供 ims feature 注冊狀態(tài)的信息;
等。
框架中主要類介紹及其作用
ImsService:
ImsService

Ims 相關文件 .png

ims call 相關文件
IMS 綁定流程
phone 進程啟動后,會調用 ImsResolver 管理它設備上所有 Ims feature 的 services 的綁定,實際綁定操作由 ImsServiceController 執(zhí)行,綁定成功后,每個 ImsService 都會返回其對應的 IImsServiceController 接口,phone fw 可以通過這個 IImsServiceController 接口注冊 IImsFeatureStatusCallback 等回調或獲取 MmTelFeature 相關的接口 IImsMmTelFeature 等。
簡述為:
綁定 IMS Service 并創(chuàng)建 ImsFeature 的流程圖

Android S ims service bind 流程
有的應用需要監(jiān)聽某個 ImsFeature 的狀態(tài)變更, 可以使用 FeatureConnector 來注冊監(jiān)聽。
FeatureConnector 用來管理和 ImsFeature manager 的連接,所有和 ImsFeature 的連接(IIMmTelFeature、IImsRcsFeature)都存儲在 ImsFeatureBinderRepository 中,FeatureConnector 會向透傳監(jiān)聽到這個存儲庫,然后統(tǒng)一處理 callback 結果封裝返回給注冊方。如下:
獲取 ims MmTelFeature 狀態(tài)變更的流程圖
具體流程如下:

FeatureConnector 管理 ImsFeature 的連接
原創(chuàng)文章,歡迎轉載,但請注明出處。