需要在底层去检测sd卡是否mount上
开机启动过程中,sd卡没有挂载上,/sdcard这个目录也是可写的,只是会把写入的数据都保存到ram里面.
注:
======> /android启动过程中,sdcard目录是先创建后mount的,
=======>比如,init进程解析init.ssd.rc文件并创建目录:mkdir /storage/sdcard0 0000 root root,但到vold进程才mount sdcard。
======>根据我测试未mount之前mkdir失败,但是statfs()读取是成功的,但返回f_type是RAMFS_MAGIC = 0x858458f6
直到sd卡mount上之后,数据才会写到sd卡里.
中间/sdcard文件系统的类型会从ramfs改变到msdos
所以我们只要调用statfs去检测/sdcard这个目录的文件系统类别就好了
只要f_type不是RAMFS_MAGIC = 0x858458f6
sd卡mount上之后得到的f_type是MS_DOS_MAGIC = 0x00004d44