Android 10.0 修改mtp模式下手机容量显示不正确的功能实现

1.前言

在10.0的系统定制化开发中,在系统中mtp模式连接pc端拷贝文件等功能也是常见的功能,但是在使用过程中发现,在mtp模式下pc端
盘符显示的容量,和手机真实的容量显示不同,可能是存储容量的计算方式不同导致显示的手机容量不符,接下来分析下
相关流程,实现这个功能

2.修改mtp模式下手机容量显示不正确的功能实现的核心类

frameworks\av\media\mtp\MtpStorage.cpp
frameworks\av\media\mtp\MtpStorage.h

3.修改mtp模式下手机容量显示不正确的功能实现的核心功能分析和实现

MTP的全称是Media Transfer Protocol(媒体传输协议),它是微软公司提出的一套媒体文件传输协议。
根据MTP协议,MTP的使用者包括两个部分,分别是Initiator和Responder
MTP服务启动是从MtpReceiver开始的,当Android手机和PC建立MTP连接后,USB驱动将产生USB连接消息,
并最终通知UsbManager发出广播。MtpReceiver接收到广播后,启动MtpService,同时通知MediaProvider。
MediaProvider会与MtpService绑定,若Android设备中的文件结构有变化,MediaProvider则会通知MtpService。
MtpService启动后会创建MtpDatabase;之后,还会创建MtpServer,MtpServer会和MtpDatabase关联。然后,
MtpService会遍历本地的存储设备,并建立相应的MtpStorage&#

猜你喜欢

转载自blog.csdn.net/baidu_41666295/article/details/134937034