pretty code

2020年5月13日 星期三

Android Screen Off App 原理

查了一下,目前 Android 9 大概有以下幾種作法:

1. PowerManager.goToSleep()
這個 API 需要 android.permission.DEVICE_POWER 權限,這個需要系統級別 App 才行。

2. DevicePolicyManager.lockNow()
這個需要給它裝置管理員權限,且無法再使用指紋辨識解鎖,只能使用你設定的解鎖方式解鎖。另外如果是滑動解鎖或是無解鎖的選項,此 API 無法使用。

3. 改變 Settings.System.SCREEN_OFF_TIMEOUT
這個需要 android.permission.WRITE_SETTINGS 權限,並要透過 Settings.ACTION_MANAGE_WRITE_SETTINGS 此方式取得,或是直接去應用程式資訊,給予 App 修改系統設定權限。另外,實測最少還是要 15 秒,即使你傳 1000 毫秒進去,一樣需要 15 秒才能進入睡眠,但指紋辨識是可以解鎖的。

結論要快速用 2,要方便用 3,不怕漏洞的用 1。

2020/05/16 更新

方法 2 看起來跟 OS 版本有關,回過頭使用 Android 6.0,使用指紋也可以順利解鎖。

沒有留言: