在13.0系统rom定制化开发中,最近项目需要开发需求是屏蔽来电功能,需要根据标志位 屏蔽一切来电功能
就是去掉通话功能,这就需要从通话流程进行分析,然后实现功能
,而我们知道所有的来电去掉都是CallManager.java来负责监听管理的。
packages\services\Telecomm\src\com\android\server\telecom\CallsManager.java
packages/services/Telecomm/src/com/android/server/telecom/callfiltering/IncomingCallFilterGraph.java
CallsManager就是该接口的一个实现类,Call在状态改变时(无论是主动或者被动)就会回调Call.Listener接口的对应方法,而CallsManager就会在对应方法中进行相应处理,这是非常经典的观察者模式。实际上不仅Call使用了观察者模式来监听自身状态的改变,CallsManager也同样使用了该模式以对其他具体的功能类进行管理,下面进行具体的阐述。
CallsManager - 观察者模式
Call与CallsManager均使用了观察者模式以处理状态的变化:
Call.Listener
在Call中,Call为被观察者,Call.Listener为观察者,观察者Call.Listener实现类为CallsManager和InCallController
CallsManager.CallsManagerListener
在CallsManager中,CallsManager为被观察者ÿ
更多【android-android 13.0 屏蔽所有电话来电功能】相关视频教程:www.yxfzedu.com