Cdma通话中CdmaLineControlInfo的二次计时重置机制

需积分: 9 1 下载量 125 浏览量 更新于2024-09-13 收藏 4KB TXT 举报
在Android系统中,"android 通话 二次计时" 主要针对CDMA(Code Division Multiple Access)网络技术进行操作,特别是在处理电话通话过程中特定的线控(Line Control)事件。CDMA网络的特点是通过分组数据传输来实现语音通话,其中线控信息用于控制通话过程中的某些功能,如暂停或恢复计费时间。 在Android的Telephony框架内,主要涉及到`PhoneProxy.java`文件,该类位于`frameworks\base\telephony\java\com\android\internal\telephony`目录下。`PhoneProxy`是一个关键组件,它代表了设备上的电话功能,并负责与底层硬件通信。`registerForLineControlInfo`方法是一个注册回调函数,当接收到线控信息时,会调用传入的`Handler`(消息处理器)和相关对象,进行相应的处理逻辑。当CDMA网络接收到Line Control Info时,如需要重置通话计时,这个方法会被调用。 `resetLineControlInfo`方法是具体执行线控计时重置的操作。这个方法接收一个`AsyncResult`类型的参数,从中解析出`CdmaLineControlInfoRec`结构体,该结构包含有关线控记录的信息,如线控极性(polarityIncluded)。如果线控信息中极性为1,意味着通话计时需要被重置。这可能是由于通话暂停或服务提供商的特殊要求导致的。 在`PhoneIncallScreen.java`中,有一个专门针对CDMA的`elapsedTimerReset`功能,通过`mCM.getPhoneInCall().registerForLineControlInfo`调用上述方法。当接收到PHONE_LINE_CONTROL_INFO事件时,会调用`resetLineControlInfo`来处理并可能更新通话计时。这对于确保CDMA网络通话计费的准确性至关重要,因为线控信息能够指示通话是否应该计入计费周期。 总结来说,Android中关于CDMA通话的二次计时功能主要围绕处理线控事件,通过监听并响应这些事件来调整通话计时,确保用户的通话费用计算正确。这个过程涉及到`PhoneProxy`类的通信管理和`resetLineControlInfo`方法的具体实现。在CDMA网络环境下,这种计时管理机制对于提供准确的计费服务至关重要。