如何在android中唤醒屏幕

时间:2013-04-19 05:59:46

标签: android

您好我正在制作报警应用程序。当闹钟时间到来时我正在向用户显示一个对话框。但问题是我想在对话框出现时获取唤醒锁定。就像短信收到屏幕时醒来一样。

我试过这个但是没有用

public class Alarm extends Activity{
    PowerManager pm;
    WakeLock wl;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        pm = (PowerManager) getSystemService(POWER_SERVICE);
        wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "FlashActivity");
wl.acquire()
        showAlarmDialog();
    }
    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        wl.release();
    }
}

我也添加了wakelock权限。帮助将是适当的: - )

3 个答案:

答案 0 :(得分:4)

我能够以这种方式转动屏幕:

wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "TAG");
wl.acquire();

希望这个帮助。它为我工作虽然:-)干杯

答案 1 :(得分:3)

您可以通过两种方法获取唤醒锁定

wl.acquire(); or wl.acquire(timeout)

在onResume()中尝试这样的事情:

PowerManager pm;
WakeLock wl;

pm = (PowerManager) getSystemService(POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "FlashActivity");
wl.acquire(); Or wl.acquire(timeout)

你在onPause()中重新定位。那很好。

答案 2 :(得分:1)

您可以在活动中添加一些标记,以便在您的活动开始时解锁并唤醒屏幕。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.my_activity);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
}