【问题标题】:Screen turn on without reason无故亮屏
【发布时间】:2015-01-13 15:30:01
【问题描述】:

我正在尝试建立类似待机的活动,并且我已接近目标,但我发现的唯一问题是有时在我关闭屏幕后 Android 会立即打开它,但我不明白为什么.

我有一个连接到专有板的终端,当我启动特定活动时,我可以让板向我的设备发送消息以关闭屏幕。结果是屏幕关闭,但只是片刻,因为 Android 立即打开屏幕。

这是我的应用程序的日志

         I/ProprietaryStandbyActivity(31326): onCreate
         I/ProprietaryStandbyActivity(31326): terminalDisplayOff 192.168.0.123

         Sending UDP message to turn Off the screen
         D/WindowManager( 2147): mBootFastRuning = false shutdhownPending = false
         D/InputManager-JNI( 2147): handleInterceptActions: Not passing key to user.
         D/OpenGLRenderer(31326): Enabling debug mode 0
         I/ActivityManager( 2147): Displayed ProprietaryStandbyActivity: +208ms
         D/WindowManager( 2147): mBootFastRuning = false shutdhownPending = false
         D/InputManager-JNI( 2147): handleInterceptActions: Going to sleep.
         D/InputManager-JNI( 2147): handleInterceptActions: Not passing key to user.
         I/PowerManagerService( 2147): Going to sleep by user request...
         I/LQ      ( 2147):  ##########   Thread(StopWifi).start(    !!!!
         D/SurfaceFlinger( 1302): Screen released, type=0 flinger=0xb84ed450
         E/IMGSRV  ( 1302): :0: ####hwc_device_blank: disp:0 blank:1
         V/ProprietaryStandbyActivity(31326): Called onPause
         I/ProprietaryStandbyActivity(31326): onStop 
         D/PowerManagerService-JNI( 2147): Excessive delay in autosuspend_enable()  

         while turning screen off: 380ms

         D/UdpExecutor(30580): ###UDP  socket listening...

         D/WindowManager( 2147): mBootFastRuning = false shutdhownPending = false
         D/InputManager-JNI( 2147): handleInterceptActions: Waking up.
         D/SensorManager( 2147): >>>>>>> set discard sensrtime =3
         E/&&&&&&  ( 2147): /data/user/gsensor_data ----> not exists.
         D/InputManager-JNI( 2147): handleInterceptActions: Not passing key to user.
         D/SurfaceFlinger( 1302): Screen acquired, type=0 flinger=0xb84ed450
         E/IMGSRV  ( 1302): :0: ####hwc_device_blank: disp:0 blank:0
         I/PowerManagerService( 2147): Waking up from sleep...
         V/KeyguardServiceDelegate( 2147): onScreenTurnedOn(showListener = 

         com.android.internal.policy.impl.PhoneWindowManager$18@41da4ae0)
         V/KeyguardServiceDelegate( 2147): **** SHOWN CALLED ****
         I/WindowManager( 2147): No lock screen! windowToken=null

看不懂的奇怪日志就是这一行

         D/InputManager-JNI( 2147): handleInterceptActions: Waking up.

似乎 InputManager 类以某种方式接收到唤醒屏幕的输入,即使我没有输入。 有人知道为什么会这样吗?

【问题讨论】:

  • 你必须调试你的代码才能知道真正的原因。也许您正在使用一个在休眠期后唤醒的线程。
  • 显然我调试了我的代码,但我没有打开屏幕的指令。您是否建议某些服务仅仅因为在后台运行而可以打开屏幕?这将是一种非常奇怪的行为。
  • 也许您的某个服务或线程正在使用 WindowManagerWakeLock 类做一些事情。这可能会导致您的屏幕打开。这只是一个猜测!

标签: android screen standby powermanager


【解决方案1】:

D/InputManager-JNI(2147):handleInterceptActions:唤醒。

这意味着带有策略标志“wake”的键或其他事件即将到来。

【讨论】:

    猜你喜欢
    • 2021-12-23
    • 2017-05-28
    • 2014-04-22
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    • 2018-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多