Call解析

有且仅有三种Call存在:foregroundcall, backgroundcall, ringingcall

Call的基本状态:IDLE,ACTIVE,HOLDING,DIALING,ALERTING,INCOMING,WAITING,

        DISCONNECTED,DISCONNECTING

CallList:Dialer侧会维护Call的CallList,如果CallList变更,界面会做出对应的响应操作

在CdmaConnection.java中可以看到

    private CdmaCall
    parentFromDCState (DriverCall.State state) {
        switch (state) {
            case ACTIVE:
            case DIALING:
            case ALERTING:
                return owner.foregroundCall;
            //break;
            case HOLDING:
                return owner.backgroundCall;
            //break;

            case INCOMING:
            case WAITING:
                return owner.ringingCall;
            //break;
            default:
                throw new RuntimeException("illegal call state: " + state);
        }
    } 


ringingCall:用来管理INCOMING和WAITING的通话
foregroundCall:用来管理DAILING、ALERTING、ACTIVE的通话
backgroundCall:用来管理HOLD的通话

猜你喜欢

转载自www.cnblogs.com/yz123/p/12014921.html