如何分析按power键熄屏时屏幕又被唤醒了
具体参考以下分析
从log看,唤醒源为keyguard的fingerprint wakeup :
01-01 09:03:20.564 1622 3341 D PowerManagerService: |----com.android.server.power.PowerManagerService$BinderService.acquireWakeLock(PowerManagerService.java:3558)
01-01 09:03:20.565 1622 3341 D PowerManagerService: |----android.os.IPowerManager$Stub.onTransact(IPowerManager.java:66)
01-01 09:03:20.565 1622 3341 D PowerManagerService: |----android.os.Binder.execTransact(Binder.java:451)
01-01 09:03:20.565 1622 3341 D PowerManagerService: wakeUpNoUpdateLocked: eventTime=2864456, uid=10013
01-01 09:03:20.565 1622 3341 I PowerManagerService: Waking up from sleep (uid 10013)...
uid=10013,对应的是:
01-01 09:03:20.561 1622 3341 D PowerManagerService: acquireWakeLockInternal: lock=395597759, flags=0x3000001a, tag="fingerprint wakeup", ws=null, uid=10013, pid=2928
可知pid=2928,即对应的keyguradDisplayManager:
01-01 09:03:20.534 2928 2928 V KeyguardDisplayManager: hide
所以可关闭keyguard,看测试是否复现,不复现就请keyguard的owner去检查它为什么申请fingerprint的wakeup ,看log是否跟android.intent.action.USER_PRESENT的broadcast接收处理相关。
01-01 09:03:20.553 1622 3555 V ActivityManager: Broadcast: Intent { act=android.intent.action.USER_PRESENT flg=0x24000010 } ordered=false userid=0 callerApp=ProcessRecord{204ea77c 2928:com.android.systemui/u0a13}