1.前言
在9.0的系统定制化开发中,在系统中mtp模式连接pc端拷贝文件等功能也是常见的功能,但是在使用过程中发现,在mtp模式下pc端
盘符显示的容量,和手机真实的容量显示不同,可能是存储容量的计算方式不同导致显示的手机容量不符,接下来分析下
相关流程,实现这个功能
2.修改mtp模式下手机容量显示不正确的功能实现的核心类
frameworks\av\media\mtp\MtpStorage.cpp
frameworks\av\media\mtp\MtpStorage.h
3.修改mtp模式下手机容量显示不正确的功能实现的核心功能分析和实现
Framework层:MtpServer、MtpDatabase、MtpStorage
MtpServer通过JNI调用底层接口,向上层提供MTP操作接口。
MtpDatabase对数据操作提供了接口,最终是通过MediaProvider对数据库操作(ContentProvider数据共享)。
MtpStorage表示一个存储单元,比如:插入SD卡,就会new一个MtpStorage添加到MTP。
通过上述的分析得知,关于Mtp的相关存储具体是在MtpStorage.cpp中负责管理的,接下来就分析下相关的功能实现
MTP的全称是Media Transfer Protocol(媒体传输协议),它是微软公司提出的一套媒体文件传输协议。
根据MTP协议,MTP的使用者包括两个部分,分别是Initiator和Responder
MTP服务启动是从MtpReceiver开始的,当Android手机和PC建立MTP连接后,USB驱动将产生U