对于Android手机来说,通信是一大块功能。APP层包括联系人、短信、拨号、InCallUI。framework层包括Telephony、Telecom、PhoneGlobal、RIL等,底层又涉及到通信模块,AT命令等,几大功能互相独立却又缠绕在一起,想要了解透彻非常复杂。

希望再接下来半年时间内能把这一块吃透

当然要吧整体的流程和架构了解清楚,但是想要做这一领域的专家,光这些还不够,关注一些具体的功能点,可以更加方便的理解和解决实际的问题,也能更好的理解流程和架构的设计思路,而且方便进行分析

最近解一个将手机联系人导入到SD卡失败的问题,特将分析思路整理如下

一、涉及主要文件

PeopleActivity.java

ContactsPreferenceActivity.java   DisplayOptionsPreferenceFragment.java

ContactImportExportActivity.java

ContactListMultiChoiceActivity.java    MultiDuplicationPickerFragment.java

ExportVCardActivity.java

VCardService.java

ExportProcessor.java

NotificationImportExportListener.java

导入到内置存储是正常的,导入到外置SD卡失败,所以这里保存的路径很重要,沿着这个思路,分析文件跳转流程,即可以找到路径的获取与流转再到最后的使用

setShowingStep

ContactImportExportActivity:  onclick->onNextAction()->doImportExport()->handleImportExportAction()

联系人数据都在这个文件中获取,并使用LoaderCallbacks进行加载,这里要了解LoaderCallbacks的用法

ContactListMultiChoiceActivity:onOptionAction

->MultiDuplicationPickerFragment:  onOptionAction->doExportVCardToSDCard()

->ExportVCardActivity: onServiceConnected

->VCardService:handleRequestAvailableExportDestination->handleExportRequest

->NotificationImportExportListener:onExportProcessed

ExportProcessor: run->runInternal()

最终这里报了错outputStream = mResolver.openOutputStream(uri);

08-16 15:00:56.925  1085  3930 W ContactsApp/ExportProcessor: FileNotFoundException thrown
08-16 15:00:56.925  1085  3930 W ContactsApp/ExportProcessor: java.io.FileNotFoundException: open failed: EACCES (Permission denied)

AndroidP对系统应用读取SD卡有限制,该问题在另一篇文章中分析

写得有点乱,暂时先这样,后续等我学了画流程图的工具再优化

Android通信相关-联系人-导入导出联系人相关推荐

  1. Android 联系人导入导出(VCard格式)

    之前在Android Contact 导入导出 vcf格式(不依赖第三方库)记录了一下依赖Android sdk中的功能导入导出联系人(第一次做java项目内容,有些地方的记录是否正确,暂时我也不知道 ...

  2. android手机导出联系人,OPPO Reno如何批量导入/导出联系人?

    准备换新手机,怎么将联系人号码全部存到新机里呢?现在的手机都有导入/导出联系人的功能,很方便哦! OPPO Reno如何批量导入/导出联系人? 1.依次进入手机[设置]-[系统应用]-[电话本]-[导 ...

  3. 向Android模拟器中批量导入通讯录联系人

    使用adb命令向Android模拟器中批量导入通讯录联系人的方法: 使用adb提供的命令, 可以非常方便地从PC中将通讯录批量导入android模拟器中. 首先要先准备好固定格式的vcf文件, 该文件 ...

  4. vivos9导入导出联系人教程分享

    当我们更换了新手机后.需要将旧手机中的联系人导入到新手机中.那vivos9手机该怎样导入导出联系人你知道吗?换换来为大家详细介绍一下吧.希望对你有所帮助! vivos9导入导出联系人教程分享 1.在桌 ...

  5. 如何将联系人导入Windows联系人文件夹和从中导出联系人

    In Windows 7 and 8, there is a Contacts folder in your user directory. This folder can be useful if ...

  6. outlook2010批量导入导出联系人

    持续关注工作效率提高,需要相关Office学习资料请留下邮箱地址. 导出 文件->选项->高级->导出->导出到文件->Microsoft Excel 97-2003-& ...

  7. Android SQLite 文件的导入导出

    首先,说一下,在导入文件之前需做好的准备工作以避免乱码现象的出现 将test.csv文件以记事本的方式打开,将第一行数据删除,在另存为的下方选择编码方式UTF-8,按照下述步骤即可完成文件的导入问题. ...

  8. odis工程师一键导入导出匹配数据信息功能_怎么批量导出联系人通讯录,华为手机通讯录转移如何操作?...

    能把旧手机里的数据复制到新手机的方法,有人想知道吗,像怎么批量导出联系人通讯录是我换手机进行数据转移时比较关心的问题,因为我的是华为手机,所以今天就和大家讨论下华为手机通讯录转移的方法. 换手机不丢数 ...

  9. 华为手机备份的通讯录是什么文件_怎么批量导出联系人通讯录,华为手机通讯录转移如何操作?...

    能把旧手机里的数据复制到新手机的方法,有人想知道吗,像怎么批量导出联系人通讯录是我换手机进行数据转移时比较关心的问题,因为我的是华为手机,所以今天就和大家讨论下华为手机通讯录转移的方法. 换手机不丢数 ...

最新文章

  1. Linux 虚拟化网络技术 — 虚拟网线(Veth-pair)
  2. sql数组转换为字符串
  3. Codeforces 1338E JYPnation (图论)
  4. centos6系统优化脚本
  5. 【JZOJ3598】【CQOI2014】数三角形
  6. 【DP】Table(CF232B)
  7. while语句的使用
  8. Wave Arts Tube Saturator for Mac(电子管模拟效果器插件)
  9. Android应用APP: 基于MobileNet和EfficientNet的图像分类模型_调试运行以及打包Tensorflow官方提供的Image classification demo
  10. mysql时间10位数字_mysql—MySQL数据库中10位时间戳转换为标准时间后,如何对标准时间进行加减X天处理...
  11. matlab电场线公式,matlab画电场线
  12. setlocale 与 mbstowcs 的问题
  13. RRU、BBU、AAU
  14. 【概率论】范畴分布 Categorical / Multinoulli Distribution
  15. springboot毕设项目基于的医院就医平台m11a1(java+VUE+Mybatis+Maven+Mysql)
  16. 集成/信息系统项目管理师学习笔记共享 (1)
  17. 基于OpenCV的火焰检测(二)——RGB颜色判据
  18. js中onsubmit用法
  19. 如果你打算将游戏业务外包 那么这篇文章你就不得不看!
  20. 单独使用elementui_Vue在单独引入js文件中使用ElementUI的组件

热门文章

  1. 平年、闰年的判断(python简单地表达)
  2. 湖北省技能高考计算机类推荐教材,湖北省技能高考计算机类高考考点
  3. linux系统如何进入pe,acer笔记本开机是linux系统,怎样进入pe
  4. java JSON转String
  5. 01-Redis缓存入门
  6. makefile中的patsubst、notdir、wildcard介绍以及用法
  7. Vue3+ElementPlus el-menu子菜单设置父菜单选中技巧
  8. 湖南工业职院:大学生有了成长“蓝本”
  9. 课堂小作业(python)天天向上的力量 B
  10. 以太坊5岁有什么庆祝呢