目录
前言
通过前面两章,Vold框架存储设备挂载事件已经梳理了Native和Framework层的程序执行流程,接下来就开始梳理存储设备挂载事件在App层的程序执行流程。
一:处理Volumes
1、接收StorageVolume
上一章Framework层通过aidl接口调用了ExternalStorageServiceImpl方法onVolumeStateChanged根据接收到的StorageVolume状态做处理,本次状态值为MEDIA_MOUNTED
packages/providers/MediaProvider/src/com/android/providers/media/fuse/ExternalStorageServiceImpl.java
@Override
public void onVolumeStateChanged(@NonNull StorageVolume vol) throws IOException {
Objects.requireNonNull(vol);
MediaProvider mediaProvider = getMediaProvider();
switch(vol.getState()) {
case Environment.MEDIA_MOUNTED:
MediaVolume volume = MediaVolume.fromStorageVolume(vol);