Android 10.0 mtp模式下PC上显示两个内部存储的问题解决办法

1. 前言

 在10.0的系统产品开发中,在mtp模式下,有些时候会在pc端显示两个手机内部存储空间,所以这时候显得特别不友好,出于对产品
的完善,所以要求解决这个问题,接下来分析下这个问题

2.mtp模式下PC上显示两个内部存储的问题解决办法的核心类

frameworks\base\media\java\android\mtp\MtpDatabase.java
frameworks\av\media\mtp\MtpServer.cpp

3.mtp模式下PC上显示两个内部存储的问题解决办法的核心功能分析和实现

MTP,全称是Media Transfer Protocol(媒体传输协议)。它是微软的一个为计算机和便携式设备之间传输图像、音乐等所定制的协议。
Android从3.0开始支持MTP。MTP的应用分两种角色,一个是作为Initiator,另一个作为Responder。
在Kernel层,USB驱动负责数据交换,而MTP驱动负责和上层进行通信,同时也和USB驱动进行通信。
在JNI层,MtpServer会不断地监听Kernel的消息"MTP请求",并对相应的消息进行相关处理。同时,MTP的Event事件也是通过MtpServer发送给MTP驱动的。 MtpStorage对应一个"存储单元";例如,SD卡就对应一个MtpStorage。 MtpPacket和MtpEventPacket负 责对MTP消息进行打包。
android_mtp_MtpServer是一个JNI类,它是"JNI层的MtpServer 和 Java层的MtpServer"沟通的桥梁。android_mtp_MtpDatabase也是一个JNI类࿰

你可能感兴趣的:(android,10.0,Rom定制化高级进阶,android,mtp,framework,显示两个内部存储,mtp显示两个内部存储问题解决)