1

Android ベースの SMS サーバーを構築しています。

新しい SMS が送信されるように (x 秒ごとに) サーバーに要求します (無限ループで)。Android デバイスは、常に USB 経由でサーバーに接続されます。

新しいメッセージのフェッチはサービスとして実行されており、24 時間年中無休で実行する必要があります。ここではバッテリーの消耗は問題にならないので、WakeLock をどのように使用すればよいですか?

部分ロックに関するいくつかの記事を読むと、それで十分なようです。

しかし、いつ wakeLock.acquire(); を呼び出す必要があるかについての手がかりは見つかりませんでした。そしてwakeLock.release();

私はそれがそのように機能するとは思わない:

while(true){
    wakeLock.acquire();
    //Do stuff
    wakeLock.release();
    Thread.sleep(10000);
}

アイデアを考えると... 入力は非常に高く評価されます。たとえば、電話が動かなくなるのを防ぐために、電話を毎日再起動するようにスケジュールすることは理にかなっていますか? 等...

4

2 に答える 2

0

次の方法を使用して、デバイスをウェイクアップします

private void wakeUpTheDevice()
{

    pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
    wL = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK|PowerManager.ACQUIRE_CAUSES_WAKEUP, "wakeupdevice");   
    if ((wL != null) &&         // we have a WakeLock
            (wL.isHeld() == false) ){  // but we don't hold it 
        wL.acquire();
        }
  }
于 2013-07-01T11:24:27.060 に答える