Java 定时器触发后唤醒Android屏幕
我如何让计时器触发一种方法来唤醒安卓设备的屏幕 我插入以下内容:Java 定时器触发后唤醒Android屏幕,java,android,eclipse,oop,timer,Java,Android,Eclipse,Oop,Timer,我如何让计时器触发一种方法来唤醒安卓设备的屏幕 我插入以下内容: 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
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);
进入
@Override
protected void onCreate(Bundle savedInstanceState) {
方法
此外,我在用户单击按钮后制作了一个计时器,该按钮运行以下程序:
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);
我希望能够单击Android设备的电源按钮,使其在3秒钟的时间间隔内休眠,并在启动run()后将其唤醒。
我应该调用什么来触发屏幕打开?尝试添加到onCreate():
要释放屏幕锁定,请执行以下操作:
KeyguardManager keyguardManager = (KeyguardManager) getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE);
KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("TAG");
keyguardLock.disableKeyguard();
添加到清单中:
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
此方法还会立即打开屏幕:
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();
谢谢,在实现了这一点之后,我试着运行一个计时器并释放屏幕锁,结果成功了!但是我应该采取什么步骤来唤醒屏幕呢?(我在计时器启动前关闭屏幕)
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();