android解锁界面,插上USB弹出打开USB存储设置界面,按HOME键/返回键直接回到launcher,而非滑动锁屏界面

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存储设备”。

标签