Wake Lock в Samsung Galaxy Tab - PullRequest
1 голос
/ 20 мая 2011

Я разрабатываю приложение, в котором мне нужно отправлять и получать пакеты в фоновом режиме. Но я обнаружил, что когда экран выключен, процессор и сеть отключены. Итак, я обнаружил на Android Developer, что я должен использовать wake lock и wifi lock, чтобы процессор работал, даже если экран выключился. Это решение работает для других устройств, таких как LG Optimus One, но не для Samsung Galaxy Tab. С этим устройством, когда экран выключен, я больше не могу принимать пакеты (UDP), и волшебным образом, когда я нажимаю кнопку питания для повторного включения экрана, я перезагружаюсь для получения пакетов. В моем коде я звоню:

powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_W AKE_LOCK, "TAG");

затем

wakeLock.acquire();

Я думаю, что это ошибка Samsung, но я не уверен в этом, и если кто-то может дать мне подсказку, я был бы очень признателен.

P.S. Мне нужна помощь в программировании ... Я уже знаю, что если я изменю некоторые ручные настройки, чтобы избежать выключения экрана, это будет работать. Но я разрабатываю приложение и мне нужен код !!

Ответы [ 2 ]

0 голосов
/ 20 мая 2011

Вы также можете проверить расширенные настройки WIFI.В разделе «Настройки» - «Настройки WIFI» вы можете нажать клавишу меню, щелкнуть значок «Дополнительно» и проверить значение для политики сна WIFI.Один из вариантов - «Когда экран выключается».

0 голосов
/ 20 мая 2011

Вы должны использовать PARTIAL_WAKE_LOCK в вашем случае.

Я не уверен, почему SCREEN_DIM_WAKE_LOCK недостаточно (не нашел ни одной документации, которая бы это оправдывала), но PARTIAL_WAKE_LOCK отлично работал для меня в аналогичном сценарии.В качестве другого варианта вы можете использовать WifiLock.Но вы должны быть осторожны, поскольку ваше сетевое подключение может быть 2G или 3G, а не только Wi-Fi.Поэтому вам не следует удерживать блокировку Wi-Fi, когда вы используете 3G / 2G / и т. Д.

...