2013-04-19 6 views
7

こんにちは私はアラームアプリケーションを作っています。アラーム時間が来るとき私はユーザーにダイアログを表示しています。しかし、問題は、私は、ダイアログが現れたときにウェイクロックを取得したいということです。 SMSが画面を受信したときのようにちょうど目覚める。アンドロイドで目覚めさせる方法

私はこの1つを試してきたが、私はあまりにもwakelock権限を追加した

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(); 
    } 
} 

が機能していません。ヘルプはあなたが)onResume(このようないくつかのことを試してみて二つの方法

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

によってウェイクロックを取得することができます

答えて

3

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

は、このヘルプを願っています。それは私にとってはうまくいった:-)乾杯。

3

:-)にappriciated次のようになります。

PowerManager pm; 
WakeLock wl; 

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

そして、あなたは(onPauseでrealeasingされています)。それはいいです。

私はこのように画面をオンにすることができました
+1

ありがとうございました!私はこのようにすることができました。このwl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK \t \t \t \t | PowerManager.ACQUIRE_CAUSES_WAKEUP、 "TAG"); wl.acquire(); ':-) –

+0

あなたは答えを受け入れることができます。それは他の人にも役立つかもしれません:) – Abhi

+0

あなたのansは賢明ですが、それは私のために働いていない。私は 'showAlarmDialog()'メソッドでウェイクロックを取得していました。私が書いた次のコードはうまくいきます。 –

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); 
} 
関連する問題