1.前言
在10.0的系统rom定制化开发中,在进行插拔usb设备的时候,会在下拉状态栏中弹出usb插拔通知的时候,发现如果手动清除usb插拔通知,再次插拔usb的时候,发现不会弹出usb通知的问题,接下来分析下相关问题,然后解决问题
2.下拉状态栏清除usb插拔通知后,重新插拔usb通知不显示的问题的核心类
frameworks/base/packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java
frameworks/base/services/core/java/com/android/server/StorageManagerService.java
3.下拉状态栏清除usb插拔通知后,重新插拔usb通知不显示的问题的核心功能分析和实现
SystemServer 进程启动其他系统服务(startOtherServices)。在这个过程中,SystemServer类定义的常量被用于加载各个服务,同时也会启动StorageManagerService.java外部存储设备服务,接下来看下挂载流程 1、外部存储插入的时候,Linux Kernel会发出uevent事件给Vold 2、Vold守护进程通过Socket机制从Linux Kernel获取相应的uevent,并解析成不同的状态; 3、然后在由MountService来获取这些由Vold解析出的相应状态决定发出什么样的广播、给Vold作出什么样的反应。 4、进而Vold依据MountService的反应稍加处理交由Kernel处理。 最终会在StorageManagerService中的 StorageNotification继承于SystemUI,主要处理Storage事件,比如Storage插拔等。 在StorageNotfica