通过拨号盘设置-》blocked number-》add a number

Blocked calls and text from:找到在Add_blocked_number_dialog.xml中,add_blocked_number.根据此资源找到BlockedNumbersActivity中的showAddBlockNumberDialog,的addBlockedNumber函数,进入BlocekNumberTaskFragment.blockIfNotAlreadyBlocked(),进入BlockNumberTask。

BlockNumberTask.doInbackgroung()函数,会通过contendResolver.Insert将block的号码加入BlockedNumberContract.BlockedNumbers.Content_URI (字段值为com.android.blockednumber)的provider提供者中。

在pakages/providers/blockedNumberProvider/下的AndroidManifest.xml中,节点Provider 的authorities属性为ccom.android.blockednumber。则此模块为对应的provider。其BlokedNmuberProvider.java文件中insert函数。这里向真正的数据库写入。

在短信模块,和通话模块中都对应的通过BlockChecker.java的isBlocked函数,通过contentReslover访问provider实现对短信和电话的屏蔽。

一个是INboundSmsHandler.java的processMessagePart()。

经过分析通话log,屏蔽的电话号码的log如下:

04-02 13:40:35.082  1497  2384 I Telecom : Event: RecordEntry TC@2: BLOCK_CHECK_INITIATED, null: (...->CS.crCo->H.CS.crCo->H.CS.crCo.pICR)->CSW.hCCC->ABCF.dIB@E-E-CJY
04-02 13:40:35.096  1497  1497 I Telecom : Event: RecordEntry TC@2: BLOCK_CHECK_FINISHED, [Reject]: (...->CS.crCo->H.CS.crCo->H.CS.crCo.pICR)->CSW.hCCC->ABCF.oPE@E-E-CJY
04-02 13:40:35.099  1497  1497 I Telecom : Event: RecordEntry TC@2: SET_RINGING, blocking call: (...->CS.crCo->H.CS.crCo->H.CS.crCo.pICR)->CSW.hCCC->CILH.sL->CILH.oQC->ICF.oCFC@E-E-CJY

04-02 13:40:35.100  1497  1497 I Telecom : CallsManager: onCallFilteringCompleted: blocked call, rejecting.: (...->CS.crCo->H.CS.crCo->H.CS.crCo.pICR)->CSW.hCCC->CILH.sL->CILH.oQC->ICF.oCFC@E-E-CJY

在callsManager.java的onSuccessfulIncomingCall()函数中,通过AsyncBlockerFilter加入Filters,INcomingCallFilter.performFiltering()触发AsyncBlockerFilter.startFilterLokkup.

触发AsyncBlockCheckFilter.doInBackground()此函数在通过Log.addEvent添加BLOCK_CHECK_INITIATED打印。具体的操作就是通过BlockCheckAdapter.isBlocked->BlockerChecker.isBlocked()->BlockedNumberContract.SystemContract.shouldSystemBlockedNumber()->BlockNumberContract.shouldSystemBlockedNumber->ContentReslover.Call(content://com.android.blockednumber,METHOD_SHOULD_SYSTEM_BLOCK_NUMBER)

对应的走到BlockedNumberProvider.call()->BlockedNumberProvider.shouldSystemBlockedNumber->BlockedNumberProvider.isBlocked()到这里就进入真正的数据库查询了。

AsyncBlockCheckFilter执行完doInBackground()调用onPostExecute().

INcomingCallFilter的第二个入参CallFilterResultCallBack为listenner,传入的就是callManager本身,callManager确实也实现了onCallFilterComplete函数。

AsyncBlockCheckFilter.onPostExecute调用了其onCallFilterComplete().此函数判断reslut.rejecting为true,则调用incomingcall.reject,拒绝通话。

android 拨号盘屏蔽号码功能流程相关推荐

  1. Android智能手机屏蔽电话与屏蔽安装软件功能

    近期做一些项目.须要对手机进行屏蔽自己的固有的功能.在此记录. Android屏蔽电话功能主要是卸载掉Phone.apk. 屏蔽安装软件功能主要是卸载掉PackageInstall.apk 以下以三星 ...

  2. android禁用电话功能,Android智能手机屏蔽电话与屏蔽安装软件功能

    最近做一些项目,需要对手机进行屏蔽自己的固有的功能.在此记录. Android屏蔽电话功能主要是卸载掉Phone.apk.屏蔽安装软件功能主要是卸载掉PackageInstall.apk 下面以三星n ...

  3. 屏蔽Android系统的WIFI功能 关闭Android系统的实体按键

    屏蔽Android系统的WIFI功能: 1.要root手机  2.安装re管理器 3.进入手机内存/system/bin/wpa_supplicant(文件无后缀). 4.re管理器改成读写模式后, ...

  4. android 7.0 新功能介绍(Nougat)

    多窗口支持 在 Android 7.0 中,我们为该平台引入了一个新的而且非常需要的多任务处理功能 - 多窗口支持. 现在,用户可以一次在屏幕上打开两个应用. 在运行 Android 7.0 的手机和 ...

  5. Android拨号盘特殊字符串处理

    Android拨号盘特殊字符串(例如*#06#显示IMEI或者MEID)处理的类是: packages/apps/Dialer/src/com/android/dialer/SpecialCharSe ...

  6. Android中实现Launcher功能之四---滑屏初探 scrollTo 以及 scrollBy方法使用说明

     本文原创 ,转载必须注明出处 :http://blog.csdn.net/qinjuning 今天给大家介绍下Android中滑屏功能的一个基本实现过程以及原理初探,最后给大家重点讲解View视图中 ...

  7. android 上线apk,码云 Android apk 在线构建功能上线啦!

    原标题:码云 Android apk 在线构建功能上线啦! #点击上图,立即参与OSC珠海源创会# duang duang duang -- 各位看官,开源中国码云 Android 项目构建新功能上线 ...

  8. Android内存泄漏的检测流程、捕捉以及分析

    https://blog.csdn.net/qq_20280683/article/details/77964208 Android内存泄漏的检测流程.捕捉以及分析 简述: 一个APP的性能,重度关乎 ...

  9. android camera(6)---camera2 拍照流程

    android camera2 拍照流程 正文 camera2 API 的加入是从AndroidV5.0(21)开始的,因此我们使用Camera2应该是在Android 5.0(含5.0)之后.同时, ...

最新文章

  1. 新的mysql如何使用_如何使用新的MySQL更新日志
  2. 软件调试修炼之道之——反思
  3. URI,URL和URN有什么区别?
  4. Linux之Apache与Nginx的对比比较:并发性能 消耗机器资源 处理静态资源 模块 稳定性
  5. oracle导入del数据文件,pl/sql,Oracle数据库中,不小心delete数据并递交后如何恢复被删数据...
  6. qregexp限制数字范围_数字系统实现电压电流控制的必经之路数模转换器
  7. 光端机的作用是什么? 简述光端机的作用
  8. 杀掉php所有进程,杀死某个用户的所有进程
  9. 影响机器视觉检测系统不稳定性因素分析
  10. MVC数据验证Model Validation
  11. Python 破解验证码
  12. 现代数字信号处理总结 下
  13. vue实现画出页面二维码的3种办法
  14. 多图片上传插件webuploader
  15. 设计模式学习之访问者模式
  16. css保持图片原始比例
  17. 多元线性回归分析spss结果解读_SPSS经典线性回归分析之一——线性回归分析
  18. C语言实现五子棋小游戏,草履虫都直呼不过如此
  19. CodeForces - 1213A Chips Moving (思维 数学)
  20. win7计算机cmd查看设备编码,查看windows操作系统的默认编码(字符集)

热门文章

  1. SCO UNIX 一些经验(转)
  2. Java基础练习——读心术(扑克牌魔术——21张扑克牌)–代码简化版
  3. Linux全能终端,Windows全能终端神器MobaXterm
  4. java测试类要画UML图吗,如何从Java代码生成UML图(尤其是序列图)?
  5. 《惢客创业日记》2018.11.28(周三)北京导师行•风筝和风
  6. stunnel加密通道使用实践
  7. Java动态生成pdf文件(用于实时生成电子证书)
  8. 停车场管理系统(数据库)
  9. 点击文字或者按钮在本页面中弹出悬浮小窗口
  10. 湖南省郴州市谷歌高清卫星地图下载