call forward流程

來源:互聯網
上載者:User

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就知道了...

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.