編輯:關於Android編程
framework層的相關代碼主要在GSMPhone、CallManager、GSMCallTracker、TelePhonyManager中。
GSMPhone:
與GSMPhone關聯的主要是Phone.java、PhoneBase.java、GSMPhone.java。Phone作為基類,定義了25對Handler消息注冊和注銷的接口,而PhoneBase繼承Phone實現了24對,還有一對在GSMPhone中實現,而GSMPhone繼承了PhoneBase。
如何管理Phone對象的呢?在應用層的PhoneApp中調用PhoneFactory的靜態方法makeDefaultPhones創建Phone對象,而framework中采用的是代理模式和工廠模式實現,在makedefaultPhone中,創建了PhoneProxy,參數為GSMPhone或者CDMAPhone對象,通過PhoneProxy間接的訪問GSMPhone,增加了安全性。
GSMPhone繼承了PhoneBase,而PhoneBase中繼承了Handler。使用了RegistrantList的消息處理機制,注冊和注銷Handler消息,並且發送notifyXXX方法發出多個注冊的通知。在應用層中獲取當前Phone的狀態,getForegroundCall、getBackgroundCall、getRingingCall,實際獲取的是GSMPhone中的mCT即CallTracker的屬性。
CallTracker 通話管理
主要功能在GSMCallTracker中實現,GSMCallTracker繼承CallTracker,CallTracker繼承Handler,因此GSMCallTracker的handleMessage接收CallTracker的消息。GSMCallTracker類主要提供兩大處理能力:
1、通話控制能力,如撥號、接聽來電、拒接、多方通話(conference)和交換通話(switchWaitingOrHoldingAndActive),最終都會調用operationComplete方法,完成了通話管理和控制操作,該方法中也會查詢Call List通話列表,在接收到EVENT_CALL_STATE_CHANGE方法後(即通話狀態變化後),調用pollCallsWhenSafe方法,查詢當前CallList的通話列表。
2、Handler消息處理邏輯。接收的來自RIL對象cm的消息,包括通話狀態的變化、無線通信模塊Modem或者Radio開啟、無線通信模塊關閉或不可用狀態,以及接收CallTracker的消息。
流程如下:
CallManager可以被上層調用,它運行於framework層,接著調用GSMPhone的mCT對象調用dial、acceptCall等控制通話,Calltracker中會調用cm的控制方法,cm為RIL層的對象,RIL層處理完畢後,發起EVEMT_OPERATION_COMPLETE消息,在GSMCallTracker中處理,調用operationComplete,調用RIL的cm對象查詢Call List列表,RIL層查詢完畢後,發起EVENT_POLL_CALLS_RESULT消息,GSMCallTracker處理消息,調用handlePollCalls處理,更新通話狀態並且發出相關的消息通知。
GSMCall的通話管理模型:
GSMCall中包含state狀態和connections通話連接列表。GSMConnection保存了通話連接的基本信息,多個GSMConnection對象組成一路通話,而GSMCall管理state和connections,一路通話中有多個通話連接,即多方通話。
handlePollCalls方法:
通過接收到的Message消息,獲取Call List,對象,強制轉化為List對象,這時保存的實際上是DriverCall,RIL層的對象。匹配connections和DriverCall List中對應的DriverCall對象。dc.index== i++;conn表示老的通話連接,而dc表示新的通話連接。
說到黑白,我就想起小時候家裡的黑白電視機,顯示效果比起現在的液晶顯示器不知道差到哪裡去了,但是一放假就看電視依然成為周末必做的是。那麼,在Android中要怎麼實現黑白濾
前言:在進入今天正題前,還是老樣子先談談感想吧,最近感覺整個都失去了方向感,好迷茫!找工作又失敗了,難道Android真的飽和了?這兩天我一直沒出門,除了下樓哪外賣就是宅
Android中的動畫主要分為三類1.Drawable Animation2.View Animation3.Property Animation這裡介紹其中的兩類,Dr
傳統界面的布局方式總是行列分明、坐落有序的,這種布局已是司空見慣,在不知不覺中大家都已經對它產生了審美疲勞。這個時候瀑布流布局的出現,就給人帶來了耳目一新的感覺,這種布局