简体   繁体   English

计时器触发后唤醒Android屏幕

[英]Wake the Android Screen after a timer fires

How can I have a timer fire a method to wake up the screen of an Android device? 如何让计时器触发唤醒Android设备屏幕的方法?

I inserted this: 我插入了这个:

final Window win = getWindow();
win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
          | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); 
win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
          | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);

into the 进入

@Override
protected void onCreate(Bundle savedInstanceState) {

method. 方法。

Additionally, I made a timer after a user clicks a button which runs the following program: 此外,我在用户单击运行以下程序的按钮后设置了计时器:

final int interval = 3000; // 3 Seconds
Handler handler = new Handler();
Runnable runnable = new Runnable(){
      public void run() {
           Toast.makeText(getApplicationContext(), "Here", Toast.LENGTH_SHORT).show();


                }
            };
handler.postAtTime(runnable, System.currentTimeMillis()+interval);
handler.postDelayed(runnable, interval);

I want to be able to click the power button of my Android device to sleep it within the 3 second interval and have it wake up after the run() gets fired. 我希望能够单击我的Android设备的电源按钮使其在3秒的间隔内进入睡眠状态,并在run()触发后将其唤醒。 What do I call to trigger the screen to turn on? 我叫什么来触发屏幕打开?

try to add to onCreate() : 尝试添加到onCreate():

        PowerManager pm = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE);
        WakeLock wakeLock = pm.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK |    PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "TAG");
        wakeLock.acquire();

To release the screen lock: 释放屏幕锁定:

        KeyguardManager keyguardManager = (KeyguardManager) getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE); 
        KeyguardLock keyguardLock =  keyguardManager.newKeyguardLock("TAG");
        keyguardLock.disableKeyguard();

Add to the manifest: 添加到清单:

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />

This method also instantly turns on the screen: 此方法也会立即打开屏幕:

PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock TempWakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK|PowerManager.ACQUIRE_CAUSES_WAKEUP, "TempWakeLock");
TempWakeLock.acquire();
TempWakeLock.release();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM