安卓挂电话解析

2024-09-04 01:32
文章标签 解析 电话 安卓挂

本文主要是介绍安卓挂电话解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在app/phone里的PhoneUtils.java里还有一个hangup函数

static boolean hangup(CallManager cm) {boolean hungup = false;Call ringing = cm.getFirstActiveRingingCall();Call fg = cm.getActiveFgCall();Call bg = cm.getFirstActiveBgCall();if (!ringing.isIdle()) {log("hangup(): hanging up ringing call");hungup = hangupRingingCall(ringing);} else if (!fg.isIdle()) {log("hangup(): hanging up foreground call");hungup = hangup(fg);} else if (!bg.isIdle()) {log("hangup(): hanging up background call");hungup = hangup(bg);} else {// No call to hang up!  This is unlikely in normal usage,// since the UI shouldn't be providing an "End call" button in// the first place.  (But it *can* happen, rarely, if an// active call happens to disconnect on its own right when the// user is trying to hang up..)log("hangup(): no active call to hang up");}if (DBG) log("==> hungup = " + hungup);return hungup;}

这里的hungup = hangup(fg);

在同文件里定义

static boolean hangup(Call call) {try {CallManager cm = getCallManager();if (call.getState() == Call.State.ACTIVE && cm.hasActiveBgCall()) {// handle foreground call hangup while there is background calllog("- hangup(Call): hangupForegroundResumeBackground...");cm.hangupForegroundResumeBackground(cm.getFirstActiveBgCall());} else {log("- hangup(Call): regular hangup()...");call.hangup();}return true;} catch (CallStateException ex) {Log.e(LOG_TAG, "Call hangup: caught " + ex, ex);}return false;}

这里的 cm.hangupForegroundResumeBackground(cm.getFirstActiveBgCall());

<span style="font-size:18px;">public void hangupForegroundResumeBackground(Call heldCall) throws CallStateException {Phone foregroundPhone = null;Phone backgroundPhone = null;if (VDBG) {Rlog.d(LOG_TAG, "hangupForegroundResumeBackground(" +heldCall + ")");Rlog.d(LOG_TAG, toString());}if (hasActiveFgCall()) {foregroundPhone = getFgPhone();if (heldCall != null) {backgroundPhone = heldCall.getPhone();if (foregroundPhone == backgroundPhone) {getActiveFgCall().hangup();} else {// the call to be hangup and resumed belongs to different phonesgetActiveFgCall().hangup();switchHoldingAndActive(heldCall);}}}if (VDBG) {Rlog.d(LOG_TAG, "End hangupForegroundResumeBackground(" +heldCall + ")");Rlog.d(LOG_TAG, toString());}}</span>

这里的getActiveFgCall().hangup();在两种情况下都被使用了



这篇关于安卓挂电话解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1134618

相关文章

Python中配置文件的全面解析与使用

《Python中配置文件的全面解析与使用》在Python开发中,配置文件扮演着举足轻重的角色,它们允许开发者在不修改代码的情况下调整应用程序的行为,下面我们就来看看常见Python配置文件格式的使用吧... 目录一、INI配置文件二、YAML配置文件三、jsON配置文件四、TOML配置文件五、XML配置文件

Spring中@Lazy注解的使用技巧与实例解析

《Spring中@Lazy注解的使用技巧与实例解析》@Lazy注解在Spring框架中用于延迟Bean的初始化,优化应用启动性能,它不仅适用于@Bean和@Component,还可以用于注入点,通过将... 目录一、@Lazy注解的作用(一)延迟Bean的初始化(二)与@Autowired结合使用二、实例解

C语言中自动与强制转换全解析

《C语言中自动与强制转换全解析》在编写C程序时,类型转换是确保数据正确性和一致性的关键环节,无论是隐式转换还是显式转换,都各有特点和应用场景,本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在... 目录类型转换的重要性自动类型转换(隐式转换)强制类型转换(显式转换)常见错误与注意事项总结与建议类型

MySQL 缓存机制与架构解析(最新推荐)

《MySQL缓存机制与架构解析(最新推荐)》本文详细介绍了MySQL的缓存机制和整体架构,包括一级缓存(InnoDBBufferPool)和二级缓存(QueryCache),文章还探讨了SQL... 目录一、mysql缓存机制概述二、MySQL整体架构三、SQL查询执行全流程四、MySQL 8.0为何移除查

在Rust中要用Struct和Enum组织数据的原因解析

《在Rust中要用Struct和Enum组织数据的原因解析》在Rust中,Struct和Enum是组织数据的核心工具,Struct用于将相关字段封装为单一实体,便于管理和扩展,Enum用于明确定义所有... 目录为什么在Rust中要用Struct和Enum组织数据?一、使用struct组织数据:将相关字段绑

使用Java实现一个解析CURL脚本小工具

《使用Java实现一个解析CURL脚本小工具》文章介绍了如何使用Java实现一个解析CURL脚本的工具,该工具可以将CURL脚本中的Header解析为KVMap结构,获取URL路径、请求类型,解析UR... 目录使用示例实现原理具体实现CurlParserUtilCurlEntityICurlHandler

深入解析Spring TransactionTemplate 高级用法(示例代码)

《深入解析SpringTransactionTemplate高级用法(示例代码)》TransactionTemplate是Spring框架中一个强大的工具,它允许开发者以编程方式控制事务,通过... 目录1. TransactionTemplate 的核心概念2. 核心接口和类3. TransactionT

数据库使用之union、union all、各种join的用法区别解析

《数据库使用之union、unionall、各种join的用法区别解析》:本文主要介绍SQL中的Union和UnionAll的区别,包括去重与否以及使用时的注意事项,还详细解释了Join关键字,... 目录一、Union 和Union All1、区别:2、注意点:3、具体举例二、Join关键字的区别&php

Spring IOC控制反转的实现解析

《SpringIOC控制反转的实现解析》:本文主要介绍SpringIOC控制反转的实现,IOC是Spring的核心思想之一,它通过将对象的创建、依赖注入和生命周期管理交给容器来实现解耦,使开发者... 目录1. IOC的基本概念1.1 什么是IOC1.2 IOC与DI的关系2. IOC的设计目标3. IOC

java中的HashSet与 == 和 equals的区别示例解析

《java中的HashSet与==和equals的区别示例解析》HashSet是Java中基于哈希表实现的集合类,特点包括:元素唯一、无序和可包含null,本文给大家介绍java中的HashSe... 目录什么是HashSetHashSet 的主要特点是HashSet 的常用方法hasSet存储为啥是无序的