Как отключить экран при получении определенных ключевых входов с помощью Java на Android?JAVA

Программисты JAVA общаются здесь
Anonymous
Как отключить экран при получении определенных ключевых входов с помощью Java на Android?

Сообщение Anonymous »

Я все еще изучаю разработку Android/Java, поэтому я все еще изучаю API и что можно сделать. До сих пор все работает, за исключением того, что каждый раз, когда он получает ввод ключа, он разбудит устройство Android - что хорошо для чего -то вроде открытия приложения, поскольку пользователь захочет увидеть экран в этом случае. Устройство Android пользователя, вероятно, будет в их кармане, большинство раз эти клавиши используются, поэтому пробуждение не идеально. Носимый Bluetooth в настоящее время отправляет фактические коды для игры/пауза, пропуск треков и т. Д. - однако я также попытался изменить эти ключи на что -то еще, например, F2, и попытаться запустить его программно в рамках службы. Иногда это имеет странные эффекты, хотя, как и клавиши громкости, больше не работают, если я использую что-то вроде Audiomanager.adjustvolume (audiomanager.adjust_raise, 0); , потому что тогда API ожидает, что я обращаюсь All Treach-Triggers, и игра/Plight Spot-Device и Play-Device и т. Д. И. Проблема.

Код: Выделить всё

performGlobalAction(GLOBAL_ACTION_LOCK_SCREEN);
Это дает задержку, однако, поэтому, вероятно, не лучший вариант и чувствует себя довольно неуклюжим.

На мой взгляд - Powermanager, используя Wakelock, но обычно это для поддержания экрана , . Мне удалось заставить экран отключить, если датчик близости активируется, когда нажата на носитель с помощью следующего: < /p>
powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, "myApp:WakeLock");
wakeLock.acquire(2*1000L /*2 seconds*/);
< /code>
Однако я все еще пытаюсь выяснить, как это работает. Экран обычно просыпается после того, как через 2 секунды истечет срок срока действия Wakelock, что имеет смысл, но я не уверен, как правильно во время/после ключи-я не уверен в том, что просто поместить таймер Wakelock в более высокую стоимость, особенно если он будет работать с батареей вниз, если Wakelock является активным в течение более длительных периодов. Я также проверил флаг powermanager.partial_wake_lock < /code>, но это просто разбудит экран. /> < /li>
< /ul>
Любой вход будет оценен, особенно если бы я мог каким -то образом получить опцию датчика близости - таким образом, на экране на экране будет гипотетически, если пользователь активно использует устройство, но автоматически останется в их кармане.>

Подробнее здесь: https://stackoverflow.com/questions/795 ... on-android

Вернуться в «JAVA»