Пробуждение спящего Android устройства на пинг

Здесь проблема. Я работаю на устройстве Android с Ice Cream Sandwich и хочу разбудить устройство, когда я пингую его с компьютера по Wi-Fi.

Я "пытаюсь" использовать следующий фрагмент кода, чтобы разбудить устройство, но оно, похоже, не работает.

WakeLock lock = ((PowerManager) getSystemService(POWER_SERVICE)).newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK
            | PowerManager.ACQUIRE_CAUSES_WAKEUP, "TAG");
lock.acquire();

KeyguardManager km = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
  requestWindowFeature(Window.FEATURE_NO_TITLE);

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN |
            WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
            WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
            WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON,
            WindowManager.LayoutParams.FLAG_FULLSCREEN |
            WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
            WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
            WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
lock.release();

Я использую сервис, чтобы разбудить устройство, но, похоже, оно не работает.

1 ответ

Решение

Вы можете использовать событие трансляции android.net.wifi.STATE_CHANGE. Для этого вам необходимо зарегистрировать трансляцию в файле манифеста.

Это может помочь вам. http://www.grokkingandroid.com/android-tutorial-broadcastreceiver/

Другие вопросы по тегам