Connection.java

Connection.java 是一个 abstract class, 位于 frameworks/base/telephony/java/com/android/internal/telephony 目录下, 是 Android 代码中电话部分的一个基本类,描述的是一个通路。

一开始,程序枚举了断线的原因,如下:

public enum DisconnectCause {

NOT_DISCONNECTED, INCOMING_MISSED, NORMAL, LOCAL, BUSY, CONGESTION, MMI, INVALID_NUMBER, LOST_SIGNAL, LIMIT_EXCEEDED, INCOMING_REGECTED, POWER_OFF, OUT_OF_SERVICE, ICC_ERROR, CALL_BARRED, FDN_BLOCKED, CS_RESTRICTED, CS_RESTRICTED_NORMAL, CS_RESTRICTED_EMERGENCY, UNOBTAINABLE_NUMBER, CDMA_LOCKED_UNTIL_POWER_CYCLE, CDMA_DROP, CDMA_INTERCEPT, CDMA_REORDER, CDMA_SO_REJECT, CDMA_RETRY_ORDER, CDMA_ACCESS_FAILURE, CDMA_PREEMPTED, CDMA_NOT_EMERGENCY, CDMA_ACCESS_BLOCKED, ERROR_UNSPECIFIED }

其中枚举了通话断掉的原因,其中有很多原因目前还没有理解。

下面定义了一些抽象方法:

1. public abstract String getAddress();  //获取地址值,例如电话号码

2. public abstract String getCnapName();  //Gets CDMA CNAP name associated with the connection

3. public String getOrigDialString();  //取得原始的号码串

4. public abstract Call getCall();  //取得拥有该Connection的Call

5. public abstract long getCreateTime();  //计算通路建立的时间,ms

6. public abstract long getConnectTime();  //计算通话建立连接的时间,ms

7. public abstract long getDisconnectTime();  //计算断开连接的时间,ms

8. public abstract long getDurationMillis();  //计算通话持续的时间

9. public abstract long getHoldDurationMillis();  //计算通话保持的时间,ms

10. public abstract boolean isIncoming();   //是否是来电

11. public Call.State getState();  //取得Connection的状态,通常与Call的状态一致

12. public boolean isAlive(); / public boolean isRinging();   //都是判断目前电话状态的函数

13. public abstract void hangup() throws CallStateException;  //挂断电话的方法

14. public abstract void separate() throws CallStateException;   //分离某个Connection的方法

以下是一些处理加长号码(例如含有分机号的号码)的方法。

posted @ 2011-02-25 23:34  hunterDing  阅读(321)  评论(0编辑  收藏  举报