phone中重要的类

发布时间:2016-12-10 22:47:07 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"phone中重要的类",主要涉及到phone中重要的类方面的内容,对于phone中重要的类感兴趣的同学可以参考一下。

参考: http://www.apkbus.com/forum.php?mod=viewthread&tid=57806 (一)android打电话流程: 1、打电话的入口是在OutgoingCallBroadcaster这个类中,此类是继承的Activity,在其oncreate方法里面用intent去接收需要拨打的电话,然后判断此号码是否为紧急号码 (1)如果为紧急号码:立即启动InCallScreen类,并发送广播 (2)如果不是为紧急号码:只发送“Intent.ACTION_NEW_OUTGOING_CALL”广播,并不立即启动InCallScreen类 2、OutgoingCallReceiver,此类是OutgoingCallBroadcaster里的一个内部类,顾名思义,主要用于接收OutgoingCallBroadcaster发送的广播,判断是否已经启动InCallScreen,若没有启动则进行一些初始化操作,比如判断若phonetype为CDMA,则初始化OTA。并从intent中取出电话号码并启动incallscreen类(号码已由intent带给了incallscreen类) 名词解释:CDMA(一种通讯技术,可以减少手机之间的干扰,通话品质也比GSM好) OTA(一种空中下载技术,是通过GSM或CDMA的空中接口对SIM卡数据及应用进行远程管理的技术) 3、InCallScreen 此类为通话核心类,这个类中东西很复杂,负责整个通话界面(包括单方和多方通话),并且在首次oncreate后,就算通话结束也只会调用其onstop方法,此类一直不会被finish()掉。当onstop后若重新打电话则会调用onnewintent()方法,不会再经过oncreate IncallScreen布局及各个功能 (1)包含CallCard类:CallCard负责通话主要界面(callcard里面又包含call_card_person_info),如显示保持恢复按钮,电话头像,通话时间,通话号码或人名以及通话人头像 (2)包含dtmf_twelve_key_dialer配置文件:主要负责通话中拨号键盘的布局 (3)包含InCallTouchUi这个重要的类:主要负责来电时的锁屏界面(往左滑是拒绝来电,往右滑是接听来电),该类继承SlidingTab来实现滑屏效果,后面会说到运用SlidingTab能实现自己的来电锁屏界面 (4)包含incallmenu类,主要负责MENU菜单的一些操作(如挂断电话,免提,合并通话等),虽然incallmenu负责MENU的绘画及布局,但是实际onclick后的操作是由incallscreen类来操控的) 打电话时InCallScreen的具体流程 前面说到OutgoingCallReceiver解析号码并启动incallscreen类,第一次启动时首先进入了其oncreate方法 (1)初始化PhoneApp类 (2)增加FLAG参数:FLAG_DISMISS_KEYGUARD(这个参数的作用主要在于解除锁屏,比如锁屏时来电,这时候就需要先解除锁屏再显示画面,这样用户就能在锁屏时接收到来电了~) (3)setPhone (4)调用初始化各种组件(callcard,menuview等) 初始化组件等一系列操作后,进入onresume方法: (1)调用PhoneApp的disablestatusbar,用来更新状态栏(添加拨打电话的图标) (2)判断是否需要蓝牙连接 (3)判断如果是CDMA通话,则初始化ota状态,并设置通话模型 (4)mPhone.clearDisconnected(); 断开所有网络连接 3、PhoneUtils: 顾名思义为工具类,主要用于phone的生成,另外之前所说menu菜单的onclick后的操作是由incallscreen类来操控,实际上呢是phoneutils在做具体的工作(如挂断电话,开启扬声器等),incallscreen只是去调用phoneutils里面的方法而已。 4、PhoneApp: 一个普通的类,当拨打电话及接听电话时,负责跳转至incallscreen中,利用这个类我们可以自己去创建非锁屏状态下的来电(原生中不管锁屏还是非锁屏都是一样的来电界面),另外此类还提供display和dismiss方法,以达到显示及关闭incallscreen的目的 5、CallNotifier: 监听phone状态的改变,假如监听到为挂断电话时,调用phoneapp中的dismiss方法使incallscreen关闭掉

上一篇:字母权值分配问题
下一篇:这篇文章为什么能发表在Science上?

相关文章

相关评论