Android 4.4 定制需求:插入U盘时不进入Es文件浏览器

直接上结论。只用在packageMatchesLocked() 方法中进行判断即可

frameworks/base/services/java/com/android/server/usb/UsbSettingsManager.java 中的 packageMatchesLocked() 方法

Android 4.4 定制需求:插入U盘时不进入Es文件浏览器

下面简单看下流程。

1、有设备挂载后,就会调用

frameworks/base/services/java/com/android/server/usb/UsbSettingsManager.java 中的deviceAttached()方法

此方法内主要就是打算启动对应的应用。需要启动的应用应该就是通过这个 getDeviceMatchesLocked() 方法。

Android 4.4 定制需求:插入U盘时不进入Es文件浏览器

2、然后主要是通过packageMatchesLocked() 判断这个应用是否符合这个设备。然后看看这个方法是怎么进行过滤的

Android 4.4 定制需求:插入U盘时不进入Es文件浏览器

3、通过loadXmlMetaData() 来查找有没有符合的metaData , 如果有"usb-device" 或者"usb-accessory"就认为是符合需要启动的应用

Android 4.4 定制需求:插入U盘时不进入Es文件浏览器