Answers:
可能是因为用于将文件传输到手机(MTP而不是USB大容量存储器)的方法将数据和文件系统完整性的责任放在接收数据的设备上,在移动电话的情况下也被假定为智能和自我 - 动力或备用电池。
USB大容量存储设备通常是哑记忆棒或硬盘驱动器,诸如电话,相机等的MTP设备通常是相当智能的设备,其个人处理它们的存储。因此,文件传输可以发生在对等的意识形态中,而不是智能主机 - 哑客户端。一旦将数据“发送”到手机,就可以通过手机操作系统和文件系统方法来确保正确存储文件。
如果文件传输被中断并因此部分传输,则电话可以决定是否释放任何分配的空间或者根据具体情况显示传输的内容。我怀疑大多数中断的传输只会丢弃不完整的数据并释放任何已分配的块。手机主动管理文件系统完整性。
因为这样的转移要么发生要么不做,并且不需要进行软件弹出,唯一的原因是使用计算机的人可以得到“我已经完成”温暖的发光感觉。从硬件的角度来看,USB当然不需要它,并且对热插拔设备非常满意。
从MTP维基百科页面:
使用MTP而不是USB大容量存储设备类(MSC)的主要原因是后者以大容量存储设备块(通常在实践中,FAT块)的粒度运行,而不是在逻辑文件级别。换句话说,USB海量存储类旨在为主机提供对大容量存储的无差别访问,例如紧凑型闪存,而不是文件系统,可以安全地与目标设备共享(主机可能正在修改/访问的特定文件除外)。因此,实际上,当USB主机安装了MSC分区时,它假定存储的绝对控制,然后设备可能无法安全地修改该存储,而没有数据损坏的风险,直到主机断开连接为止。此外,由于主计算机可以完全控制连接的存储设备,因此存在主计算机可能损坏文件系统,将其重新格式化为USB设备不支持的文件系统或以其他方式修改它的风险。 USB设备无法完全理解它。
这最终取决于设备是使用MSC还是MTP / PTP。通常,闪存驱动器和外部硬盘驱动器等专用存储设备使用MSC,而智能手机和其他需要在连接到计算机时保持对数据的访问或需要控制传输数据的设备将使用MTP。许多相机使用PTP,MTP的子集。
如果设备使用MSC,则需要先将其从计算机中弹出,然后才能将其删除。如果它使用MTP或PTP,则不需要弹出。
大容量存储类(MSC)允许计算机与驱动器通信的方式与内部硬盘驱动器或SSD的方式非常相似,使其比其他传输数据的协议更快。这就是USB闪存驱动器和外部硬盘驱动器等专用存储设备的用途。但是,它需要块级访问底层存储介质,这意味着对设备的独占访问。因此,MSC不适用于智能设备,因为他们需要能够在计算机使用时访问文件系统的内容。智能手机实际上需要关闭其操作系统才能授予对计算机的块级访问权限 - 这是一个繁琐的过程,并且会阻止您在连接时运行应用程序或以其他方式使用设备。计算机有责任确保数据已完全传输,因此您需要通过弹出它来告诉计算机您已完成数据。
媒体传输协议(MTP)是大多数智能设备使用的,涉及文件级别访问,而设备,而不是主机,负责管理数据。智能手机使用MTP,因为他们需要能够在设备连接到计算机时访问数据。MTP还允许设备控制或限制可以传输的数据; 一些(主要是较旧的)数字媒体/ MP3播放器使用MTP对传输的文件强制执行复制保护(DRM),或确保传输的媒体文件与设备兼容。由于MTP只是呈现分层文件/文件夹结构,因此计算机无需担心文件系统或设备如何存储数据。在任何情况下,使用MTP,都不需要显式弹出命令; 一旦设备告诉系统传输完成(进度对话框已关闭),您可以在不明确弹出设备的情况下移除设备。
MTP是图片传输协议(PTP)的超集,它最初是为与计算机通信的摄像机而设计的。许多相机仍然使用PTP,但有些支持MSC,有些允许在MSC和PTP之间进行选择。此外,一些相机支持通过称为PictBridge的协议进行直接打印,这需要PTP。与MTP一样,PTP不需要弹出命令。摄像机是否可以使用MSC,PTP或两者都取决于摄像机在连接到计算机时如何处理其存储。
请注意,如果从相机中取出存储卡并将其插入计算机上的SD卡插槽或其他媒体读取器,它将是MSC设备,您需要在传输完图片后将其弹出。
如果两个设备都有自己的能源,例如计算机和智能手机,则有足够的空间来实现传输中断或任何其他故障的正确处理。设计依赖于持续可用的功率,这是一个稳定的因素,可以使另一个因素(通信)容错。如果没有它,在特殊情况下,例如,如果电池突然从智能手机上移除或者PC被强行关闭,这些设备及其系统实际上不比哑巴USB驱动器更耐错误。(chkdsk
任何人?)那些容错设备只是依靠足够的时间来优雅地解决预期的问题。
但是,从他们的主机供电的设备几乎没有时间对任何断开电源的反应。在这样的设备中托管文件系统不仅意味着提供用户请求,还意味着对用户未知的主机后台进程进行后台读取和写入的可用性。用户永远不知道当前是否正在进行通信。因此必须提供一种明确的方式来发信号通知断电的意图(并且是Eject命令),主机必须停止任何操作。然后等待没有风险的突然断电。所以“Eject”事件是一种简单的方式来开始正确的完成,而我们仍然可以依赖于连续操作。现在的实质与上述情况没有什么不同:授予权力在所有必要的行动中。完成后,主机发回信号(因为它是物理控制电源中断的用户),现在可以安全地突然中断设备的电源而没有风险。
因此,我们看到最重要的设计驱动因素之一是设备是否能够自主运行以便有时间处理故障。如果不是,则必须通过弹出命令请求先前的显式终结。