Android Marshmallow: как вручную заснуть + заблокировать ИЛИ вручную заснуть без блокировки?

Я использую Android 6 (Cyanogenmod), и я хотел бы иметь следующее простое поведение:

Аппаратная кнопка X: перейти в спящий режим и заблокировать телефон.

Аппаратная кнопка Y: перевести телефон в спящий режим БЕЗ блокировки .

Кроме того, я не хочу, чтобы происходила ЛЮБАЯ автоматическая блокировка/разблокировка.

Это кажется невозможным. Если это так, то это явно ошибка дизайна.

Пожалуйста, просветите меня своим опытом в Android.

ТЮ

Первый определенно выполним с помощью Xposed Additions .
То есть вы говорите, что это возможно только с модами?
Это может быть даже выполнимо с помощью Tasker и Secure Settings , но, скорее всего, потребуется рутирование устройства.

Ответы (1)

Я успешно протестировал следующее решение на Nexus 6 под управлением CM13 (сборка моментального снимка) с клавишами регулировки громкости в качестве клавиш X и Y HW.

Если вы не хотите использовать модуль Xposed, такой как Xposed Additions, я предлагаю вам настроить AutoInput (бесплатная пробная версия) и Tasker ( бесплатная пробная версия ; руководство пользователя ). У вас должна быть включена служба специальных возможностей AutoInput и включен root-доступ в параметрах разработчика, который уже предоставлен Tasker.

Инструкция для Таскера

  1. Создайте профиль на основе события из Плагин → Автоввод → Ключ → Конфигурация:

    • Ключи: ваш ключ X
    • Ключевое действие: клавиша вниз
  2. Настройте для него задачу со следующими действиями:

    1. Плагин → Автоввод → Режимы:

      • Конфигурация:

        • Подавление клавиш: включить
        • Ключи: ваш ключ X
      • Тайм-аут: нет
    2. Код → Запустить оболочку:

      • Команда:settings put secure lock_screen_lock_after_timeout 0; input keyevent 26
      • поставить галочку Использовать рут
    3. Плагин → Автоввод → Режимы:

      • Конфигурация:

        • Ключ Подавить: Отключить
        • Ключи: ваш ключ X
      • Тайм-аут: нет
  3. Создайте другой профиль на основе событий из Плагин → Автоввод → Ключ → Конфигурация:

    • Ключи: ваш ключ Y
    • Ключевое действие: клавиша вниз
  4. Настройте для него задачу со следующими действиями:

    1. Плагин → Автоввод → Режимы:

      • Конфигурация:

        • Подавление клавиш: включить
        • Ключи: ваш ключ Y
      • Тайм-аут: нет
    2. Код → Запустить оболочку:

      • Команда:settings put secure lock_screen_lock_after_timeout <ms>; input keyevent 26
      • отметьте Использовать корневую

        замену <ms>с миллисекундами. Это время ожидания доступно в настройках экрана блокировки, и я не тестировал его выше 1800000.
    3. Плагин → Автоввод → Режимы:

      • Конфигурация:

        • Ключ Подавить: Отключить
        • Ключи: ваш ключ Y
      • Тайм-аут: нет

Все указанные инструкции будут реализованы только тогда, когда экран блокировки будет защищен. Кроме того, во время тестирования мне пришлось временно отказаться от исходной функциональности моих аппаратных ключей.

Примечание . Отключите действие по отключению подавления клавиш, если вы обнаружите, что действия не работают должным образом.