android 6.0 phone通话流程,Android打电话流程.pdf

Android打电话流程

Android 打电话流程

1 OutgoingCallBroadcaster.java

点击拨号盘拨打按钮后,进入通话的Phone 包。此时首先进入的函数是

OutgoingCallBroadcaster.java,该类是一个Activity。

activity 的生命周期可知,第一次进入时应调用onCreate()函数。(在该类中也只实现了这个函

数。)解析一下这个函数:

1.1) 首先获取Intent 对象,获取拨出的号码。

1.2) 接着判断号码是否为紧急号码,如果是紧急号码,将 callNow 变量赋值为true ,启动

InCallScreen,并发送广播。而在receiver 里面判断 callNow 为ture 就直接finish ,而不再

重复启动InCallScreen ;如果不是紧急号码,将callNow 变量赋值为false ,发送广播

“Intent.ACTION_NEW_OUTGOING_CALL”。

2 OutgoingCallReceiver.java

广播发送后OutgoingCallReceiver 将会收到该息。该类是一个内部类,在类

OutgoingCallBroadcaster 里面,作用是接收OutgoingCallBroadcaster 发送的广播,判

断是否已经启动 InCallScreen。没有启动的话就进行一些初始化,如:对OTA 进行初始化。接收

到广播之后,从Intent 里面取出电话号码及其URi。然后,设置 Intent 为ACTION_CALL ,并

带上号码和uri。启动InCallScreen。关闭该Activity。

OTA:Over-the-Air Technology 空中下载技术,是通过移动通信(GSM 或CDMA)的空中接口

对SIM 卡数据及应用进行远程管理的技术。空中接口可以采用WAP、 GPR 、CDMA1X 及短消

息技术。OTA 技术的应用,使得移动通信不仅可以提供语音和数据服务,而且还能提供新业务下载。

GSM :Global System for Mobile Communications ,中文为全球移动通讯系统,俗称"全

球通"。

CDMA :Code Division Multiple Access,又称码分多址,是在无线通讯上使用的技术,

CDMA 允许所有的使用者同时使用全部频带(1.2288Mhz),并且把其他使用者发出的讯号视为杂讯 ,

完全不必考虑到讯号碰撞 (collision) 的问题。CDMA 的优点包括:CDMA 中所提供的语音编码技

术,其通话品质比目前的GSM 好,而且可以把用户对话时周围环境的噪音降低,使通话更为清晰。

3 InCallScreen.java

该类extends 了Acitivity ,并且implements 了 OnClickListener,OnTouchListener

和OnQueryCompleteListener。该类主要是负责通话的那一个界面,并且还负责菜单项各种按

键事件和触摸时间的处理。同时本类还复写的finish()方法,所以一般不会被finish 掉,调用这个方

法时它又把自己放回栈中。 InCallScreen 可以接收这个Intent 并启动。

3.1) onCreate(第一次)

3.1.1) callScreenOnCreate 获得通话界面被创建的时间。

3.1.2) PhoneApp 唤醒后台的服务程序。

3.1.3) 判断当前的通话状态( IDLE =没有通话行为,RINGING =正在通话或呼叫等待,

OFFHOOK = The phone is off hook. At least one call exists that is dialing,

active or holding and no calls are ringing or waiting. ),如果正在通话,不会出现键盘

锁。接着设置mPhone and mForegroundCall/mBackgroundCall/mRingingCall。

3.1.4) getBluetoothHandsfree 设置蓝牙耳机,如果存在蓝牙耳机,则安装该设备。

3.1.5) initInCallScreen 加载各种view 组建。

3.1.6) 对通话的各种状态进行

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值