[英]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.