1

我制作了一个应用程序,当它收到短信时会唤醒屏幕。我想出了以下代码来唤醒屏幕。

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);

        boolean isScreenOn = pm.isScreenOn();

    if(!isScreenOn ){

final PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My tag");
        wl.acquire();

        Toast.makeText(getBaseContext(), "This is WAKEUP SCREEN", Toast.LENGTH_SHORT).show();
        Thread timer = new Thread(){
            public void run(){
                try {
                    sleep(5000);
                } catch (InterruptedException e) {
                    // TODO: handle exception
                }finally{
                    wl.release();
                }
            }
        };
        timer.start();
    }

现在的问题是,如果我注释掉或删除该语句,Toast.makeText(getBaseContext(), "This is WAKEUP SCREEN", Toast.LENGTH_SHORT).show();我的屏幕将不会唤醒。我不确定这里有什么问题......而且我使用的是android 2.3。

4

1 回答 1

0

使用PowerManager.SCREEN_DIM_WAKE_LOCK|PowerManager.ACQUIRE_CAUSES_WAKEUP而不是 just PowerManager.SCREEN_DIM_WAKE_LOCK,看看是否有帮助。

于 2012-07-31T19:31:05.053 回答