Android通话处理:从Java端发送AT命令流程
需积分: 10 164 浏览量
更新于2024-07-25
收藏 43KB DOCX 举报
"Android_通话处理流程"
在Android操作系统中,拨打电话的过程涉及到多个组件和步骤。以下是详细的Android通话处理流程:
1. 启动应用程序:
- `contacts` 应用程序的 `AndroidManifest.xml` 文件中,`android:process="android.process.acore"` 指定了该应用在 `acore` 进程中运行。这意味着联系人相关的服务和活动会在这个进程中执行。
- `DialtactsActivity` 是用户界面的入口点,它的 `intent-filter` 中 `action` 设置为 `main` 和 `category` 为 `launcher`,使得这个Activity出现在主菜单上,并作为用户首次打开应用时看到的界面。
- `DialtactsActivity` 包含四个选项卡:`TwelveKeyDialer`,`RecentCallsListActivity`,以及两个 `activity-alias` 分别代表联系人和收藏,但实际上显示联系人列表和收藏的是 `ContactsListActivity`。
2. 拨号操作:
- 当用户在 `TwelveKeyDialer` 中选择或输入电话号码后,点击拨打按钮,按钮的 `id` 为 `R.id.digits`,这将触发 `onClick` 方法。
- 在 `onClick` 方法中,调用 `placecall()` 函数。这里创建了一个新的 `Intent` 对象,使用 `ACTION_CALL_PRIVILEGED` 行动,这个字符串对应于 `android.intent.action.CALL_PRIVILEGED`。`Uri.fromParts("tel", number, null)` 用于构建一个指向电话号码的URI,`number` 是用户输入的电话号码。
- 接着,`Intent` 的 `setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)` 设置标记,表示这是一个新任务,`startActivity(intent)` 启动这个意图,开始拨打电话的操作。
3. 权限验证与呼叫处理:
- `ACTION_CALL_PRIVILEGED` 的意图会被 `packages/phone` 目录下的 `AndroidManifest.xml` 中的 `PrivilegedOutgoingCallBroadcaster` 这个 `activity-alias` 捕获。`targetActivity` 为 `OutgoingCallBroadcaster`。
- 在 `OutgoingCallBroadcaster` 的 `onCreate()` 方法中,系统会进行权限检查和呼叫处理。如果拨号号码是紧急号码,系统会直接启动 `InCallScreen` Activity,展示通话屏幕。
4. 系统服务介入:
- Android 系统的电话服务(如 PhoneService 或 Telecom)接收到这个意图后,会继续处理拨号请求,包括建立到电话硬件(RIL - Radio Interface Layer)的连接,发送AT命令来拨打电话。
- AT命令是控制调制解调器的标准命令,例如 `ATD<number>` 用于发起呼叫。
5. 通话建立:
- RIL 接收到 `ATD<number>` 命令后,会通过无线网络接口发送该请求,进而建立与对方的通话连接。
6. 通话状态更新:
- 在通话过程中,系统会不断更新状态,例如呼叫建立、通话中、挂断等,这些状态的变化会反馈到用户界面上,例如 `InCallScreen`。
7. 结束通话:
- 用户可以通过界面上的挂断按钮结束通话,此时系统会发送相应的AT命令挂断连接,通话结束。
以上就是Android拨打电话的基本处理流程,从用户界面到底层通信,涉及了多个组件和服务的交互。每个环节都确保了安全性和用户体验。
2011-11-13 上传
2023-05-05 上传
2023-09-03 上传
2023-05-14 上传
2023-07-28 上传
2023-09-07 上传
2024-04-25 上传
zfenghui
- 粉丝: 1
- 资源: 12
最新资源
- 新型智能电加热器:触摸感应与自动温控技术
- 社区物流信息管理系统的毕业设计实现
- VB门诊管理系统设计与实现(附论文与源代码)
- 剪叉式高空作业平台稳定性研究与创新设计
- DAMA CDGA考试必备:真题模拟及章节重点解析
- TaskExplorer:全新升级的系统监控与任务管理工具
- 新型碎纸机进纸间隙调整技术解析
- 有腿移动机器人动作教学与技术存储介质的研究
- 基于遗传算法优化的RBF神经网络分析工具
- Visual Basic入门教程完整版PDF下载
- 海洋岸滩保洁与垃圾清运服务招标文件公示
- 触摸屏测量仪器与粘度测定方法
- PSO多目标优化问题求解代码详解
- 有机硅组合物及差异剥离纸或膜技术分析
- Win10快速关机技巧:去除关机阻止功能
- 创新打印机设计:速释打印头与压纸辊安装拆卸便捷性