1)如果將setting--》開發者選項--》USB調試 disable掉,表示當前是用戶模式,鎖屏界面下插上USB,AMS就會叫起UsbStorageActivity"打開USB存儲設備"這個界面。
2)UsbStorageActivity界面在onCreate()中設置了如下屬性:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
if (Environment.isExternalStorageRemovable()) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
}
第一個屬性:當前如果是non secure鎖屏,UsbStorageActivity會dismiss keyguard.即解鎖。
第二個屬性:鎖屏時,UsbStorageActivity可以顯示在鎖屏界面之上。
具體解釋請參見WindowManager.java (base\core\java\android\view)
這兩個屬性結合起來就會是:
non secure 鎖屏方式下,插上USB可以調出UsbStorageActivity界面,並且會dimiss keyguard,如滑動鎖屏;因此按HOME鍵直接回到Laucher,而非keyguard界面。
secure鎖屏方式下(除滑動解鎖之外的其他鎖屏),插上USB AMS會叫起UsbStorageActivity界面,但是不會dismiss keyguard,因此用戶需要手動先解鎖,解鎖之後就會看到UsbStorageActivity.
3)如果enable USB調試 選項,則是調試模式,不會調出"打開USB存儲設備"。