- 3
- 0
- 约2.74千字
- 约 3页
- 2017-07-09 发布于河南
- 举报
android电话处理基本流程
android电话应用程序概述
一.总览
1.phone应用主界面
2.拨出电话流程
3.接入电话流程
二.phone应用主界面
phone应用程序的主界面包括”phone”,”Call log“,“Contacts”,”Favorites”四个部分组成。
Phone:由12键的拨号盘组成。输入号码后单击电话图标按钮进行拨号
Call log:存放呼入和呼出的历史记录。
Contacts:存放电话联系人。
Favorites:存放常用的电话联系人。
(1)以上4个部分由“DialtactsActivity.java”作为主要入口。在onCreate()方法中通hasPhoneProviderExtras过“setupDalerTab()”,“setupCallLogTab()”,”setupContactsTab”,”setupFavoritestTab()”以上4个方法构建以“tabHost”形式显示4个部分的主界面入口。而以上4个功能界面的实现分别由“TwelveKeyDialer.java”,”RecentListActity.java”,”ContactsListActivity.java”,3个部分实现。在这里,我们重点描述“Phone”部分的实现。
三.拨出电话流程
进入由”TwelveKeyDIaler”构建的电话拨号程序,输入呼出的电话号码,单击拨号按钮。拨号的实现由placeCall()中实现。
Intent intent = new Intent(Intent.ACTION_CALL_PRIVILEGED,
Uri.fromParts(tel, number, null));
if (number == null || !TextUtils.isGraphic(number)) {
// There is no number entered.
if (phoneIsCdma() phoneIsOffhook()) {
// We only want to send this empty flash extra if were CDMA and the
// phone is offhook (dont want to send if ringing or dialing)
intent.putExtra(EXTRA_SEND_EMPTY_FLASH, true);
sendEmptyFlash = true;
} else {
playTone(ToneGenerator.TONE_PROP_NACK);
return;
}
}
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
通过查找”Intent.ACTION_CALL_PRIVILEGED”的实际字符窜,得知intent跳转的类为OutgoingCallBroadCaster.java.在此类的onCreate()方法中,对呼出的电话号码进行判断,并把号码定义分类为“紧急号码”和“非紧急号码” :如果是紧急号码,则通过intent.setClass(this,InCallScreen.class);startActivity(intent)执行;如果是非紧急号码,则通过new Intent(Intent.ACTION_NEW_OUTGOING_CALL);sendOrderedBroadcast();跳转到内部类OutgoingCallReceiver.java中执行拨号处理。
在“OutgoingCallReceiver”中“doReceiver()”对电话网络进行判断是否为cdma网络,如果是进一步判断是否基于OTA呼叫(这点不是很明白?)。此后跳
您可能关注的文档
最近下载
- 2024年潍坊护理职业学院高职单招(英语/数学/语文)笔试2018-2023历年真题摘选带答案解析.docx VIP
- 《智能管理系统创新与发展》课件.ppt VIP
- 仁爱版七年级下册英语单词默写表(中文版).pdf VIP
- 2025年潍坊护理职业学院单招笔试数学试题库含答案解析.docx VIP
- 2025郑州中考一模化学试卷.docx VIP
- 2025河北单招第七类综合素质真题 .pdf VIP
- 2025黑龙江林业职业技术学院单招《数学》经典例题含答案详解(能力提升).docx VIP
- 大病低保申请书.docx VIP
- 发热伴血小板减少综合征药物治疗指南(2025年版)解读PPT课件.pptx VIP
- 2020泰和安TG3100广播控制盘安装使用说明书.pdf VIP
原创力文档

文档评论(0)