call forward流程

GsmUmtsCallForwardOptions.onResume()----
void init(TimeConsumingPreferenceListener listener, boolean skipReading)
CallForwardEditPreference.init(TimeConsumingPreferenceListener listener, boolean skipReading)
GSMPhone.getCallForwardingOption(int commandInterfaceCFReason, Message onComplete)
RIL.queryCallForwardStatus(int cfReason, int serviceClass, String number, Message response)
GSMPhone.handleCfuQueryResult(CallForwardInfo[] infos)
SIMRecords.setVoiceCallForwardingFlag(int line, boolean enable)
GSMPhone.notifyCallForwardingIndicator()
PhoneNotifier.notifyCallForwardingChanged(Phone sender)
DefaultPhoneNotifier.java----mRegistry.notifyCallForwardingChanged(sender.getCallForwardingIndicator());
TelephonyRegistry.notifyCallForwardingChanged
IPhoneStateListener.aidl--------onCallForwardingIndicatorChanged()
PhoneStateListener.this.onCallForwardingIndicatorChanged(msg.arg1 != 0);
    public void onCallForwardingIndicatorChanged(boolean cfi) {
            Message.obtain(mHandler, LISTEN_CALL_FORWARDING_INDICATOR, cfi ? 1 : 0, 0, null)
                    .sendToTarget();
        }
    case LISTEN_CALL_FORWARDING_INDICATOR:
                    PhoneStateListener.this.onCallForwardingIndicatorChanged(msg.arg1 != 0);
                    break;
CallNotifier.mPhoneStateListener.new PhoneStateListener() {...}.onCallForwardingIndicatorChanged(boolean cfi)
CallNotifier.onCfiChanged(boolean visible)
NotificationMgr.updateCfi(boolean visible)
----------------------------------

下层监听:
TelephonyRegistry.listen(String pkgForDebug, IPhoneStateListener callback, int events, boolean notifyNow)
ITelephonyRegistry.listen(pkgForDebug, listener.callback, events, notifyNow);
TelephonyManager.listen(PhoneStateListener listener, int events)
PhoneStateListener.onCallForwardingIndicatorChanged(boolean cfi)
CallNotifier.onCfiChanged(boolean visible)

NotificationMgr.updateCfi(boolean visible)

后面的,就可以自己看了。主要用到了回调和java的多态机制。看看source code就知道了...


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值