这今天项目中有一个将设备的数据文件复制到U盘的功能,复制完成之后,在设备看U盘的文件都是好的,数据也正常,当拔出U盘后放到电脑上,有时就会出现文件为0B的情况,后来才发现,是U盘没有安全卸载的原因。
初期的设想是控制程序跳转到android的设置的存储界面,让用户进行点击U盘的安全卸载选项,代码如下:
Intent intent = new Intent(Settings.ACTION_MEMORY_CARD_SETTINGS);
startActivity(intent);
很简单粗暴,直接跳转界面。
But,问题来了,系统的界面和当前设备的UI风格不统一。这就是个很让人挠头的问题了,只能自己实现U盘卸载的功能了。
网上查了好多的资料,感觉没有自己想要的功能,无奈之下,给硬件组要了一份当前系统的Setting的源码,请教了一圈,最后确定了存储功能的源码位置:
在这个文件夹下的Memory.java这个文件中,下面来看看U盘卸载功能是如何实现的,直接上源码:
private void doUnmount() {
// Present a toast here
Toast.makeText(getActivity(), unmoutU