NoticationMgr对于未接来电的处理

NoticationMgr对于未接来电的处理

ID:40493290

大小:992.69 KB

页数:13页

时间:2019-08-03

NoticationMgr对于未接来电的处理_第1页
NoticationMgr对于未接来电的处理_第2页
NoticationMgr对于未接来电的处理_第3页
NoticationMgr对于未接来电的处理_第4页
NoticationMgr对于未接来电的处理_第5页
资源描述:

《NoticationMgr对于未接来电的处理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、NoticationMgr对于未接来电的处理通过本文档将要学习AndroidKK和AndroidL两大版本对于未接来电逻辑处理上的差异,这个差异主要体现在架构设计。主要是通过以下三个方面:q取消未接来电的通知;q有未接来电时的通知;q开机显示未接来电的能知;AndroidKK版本对未接来电(Missedcall)的处理取消未接来电的通知当有未接来电时显示未接来电的通知当有未接来电时显示未接来电的通知是由CallNotifier的onDisconnect方法调用NotificationMgr的notifyMissedCall方法,第8行调用PhoneGl

2、obals.createCallLogIntent方法获得拉起通话记录的intent,第16行的mNumberMissedCalls++未接来电计数器自增1,第20至第27行是设置显示的信息只有一个未接来电时,会显示“未接来电/XX”,XX是联系人的姓名或号码,有多个未接来电时,会显示“未接来电/n个未接来电”,当只有一个未接来电时,且号码有效时,增加两个action,即“回拨”、“发信息”,当参数phoneIcon或photo不为null时,还可以设置在托盘中显示的大图标。最后调用NotificationManager的notify方法在托盘中显示未

3、接来电通知开机后显示未接来电通知当Phone应用启动的时候在PhoneGlobals的onCreate方法中调用NotificationMgr的init方法进行初始化,接着调用updateNotificationAtStartup方法在NotificationMgr的updateNotificationAtStartup方法中实例化QueryHandler,主要用于查询通话记录、联系人等信息,第10至12行是设置查询的条件,第16行调用QueryHandler的startQuery方法执行查询,注意在调用startQuery方法的第一个参数CALL_L

4、OG_TOKEN,此查询是异步执行的。整体介绍一个QueryHandler的结构,QueryHandler是异常查询处理器,主要完成查询通话记录,根据通话记录查询联系人,加载联系人的头像NotificationInfo用于存储查询出来的未接来电的基本信息通话记录完成后回调onQueryComplete方法,在调用startQuery时传入的第一个参数是CALL_LOG_TOKEN,所以此时caseCALL_LOG_TOKEN满足,调用getNotificationInfo方法,将cursor中的信息构造一个NotificationInfo的实例,再次调

5、用QueryHandler的startQuery方法查询通话记录是否存在对应的联系人信息,传入的第一个参数是CONTACT_TOKEN,调用getNotificationInfo方法,将cursor中的信息构造一个NotificationInfo的实例联系人信息查询完成后回调onQueryComplete方法,token是CONTACT_TOKEN,对于是一个默生的号码(通讯录人不存在对应的联系人信息)时直接调用notifyMissedCall方法在托盘显示未接来电通知,如果存在对应的联系人信息通过调ContactAsyncHelper的startOb

6、tainPhotoAsync方法获取对应联系人的头像,QueryHandler已实现了ContactAsyncHelper的OnImageLoadCompleteListener接口,所以联系人头像加载完成后回调QueryHandler的onImageLoadComplete方法,当联系人的头像加载完成后,回调onImageLoadComplete方法,最终调用notifyMissedCall方法在托盘中显示未接来电通知。AndroidL未接来电的处理未接来电的处理逻辑由AndroidKK版本的TeleService转移到AndroidL版本的Tele

7、com中处理,但是在TeleService中仍然保留了KK版本的NotificationMgr类的代码,但如AndroidKK版本对外的接口已经不存在了。取消未接来电的通知第三方的应用可以通过调用TelecomManager类的cancelMissedCallsNotification方法取消未接来电的消息通知,看到cancelMissedCallsNotification的方法的命名应该感到很nice吧,这个就是将AndroidKK中TelephonyManager中移植过来的。publicclassTelecomManager{......publ

8、icvoidcancelMissedCallsNotification(){ITelecomS

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。