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();、画面がウェイクアップしないことです。ここで何が問題なのかわかりません...そして私はandroid2.3を使用しています。

4

1 に答える 1

0

PowerManager.SCREEN_DIM_WAKE_LOCK|PowerManager.ACQUIRE_CAUSES_WAKEUPの代わりに使用PowerManager.SCREEN_DIM_WAKE_LOCKして、それが役立つかどうかを確認してください。

于 2012-07-31T19:31:05.053 に答える