Если вы когда-нибудь ранее устанавливали кастомные прошивки (ROM) на свой смартфон, то, скорее всего, видели функцию, позволяющую назначить на длительное нажатие кнопки громкости управление воспроизведением мультимедиа. Если эта опция включена, вы можете зажать кнопку увеличения громкости, чтобы перейти к следующему треку, или таким же образом зажать кнопку уменьшения громкости, чтобы вернуться к предыдущей композиции. Возможность переключать песни нажатием на кнопки громкости настолько популярна среди пользовательских кастомных прошивок, что мы удивлены тому, что она до сих пор не попала в лаунчер какого-нибудь крупного производителя смартфонов.
Приложениям в Android нельзя задействовать длительное нажатие клавиш
По правде говоря, назначить управление воспроизведением музыки на кнопки регулировки громкости можно при помощи популярных приложений Tasker или Button Mapper, ведь они как раз и созданы для того, чтобы переназначать в Android функциональность различных физических клавиш. Однако ни одно из этих приложений не умеет повторить в точности то, что могут предложить кастомные прошивки. Если вы используете Tasker или Button Mapper, у вас есть возможность переназначить на кнопки увеличения и уменьшения громкости только одинарное или множественное нажатие. Приложения, подобные этим, обычно используют для перехвата нажатий клавиш громкости службу Специальные возможности, но ни одно из них не может перехватить длительное нажатие клавиш громкости, когда экран смартфона выключен.
Вскоре после выпуска исходного кода Android 8.0 Oreo разработчики с ресурса XDA Developers обнаружили в Android новую функцию, которая позволяет сторонним приложениям видеть, когда система реагирует на длительное нажатие клавиш регулировки громкости. Разработчики предположили, что этот новый API в будущем позволит приложениям контролировать длительное нажатие на кнопку регулировки громкости, даже когда экран смартфона выключен, что, в конечном итоге, позволит в сторонних приложениях воспроизвести популярную функцию из кастомных прошивок без необходимости рута.
Именно это и сделал пользователь с форума XDA, создав приложение Next Track. Это приложение с открытым исходным кодом, использующее вышеупомянутый API, позволяет переключать композиции длительным нажатием любой кнопки громкости даже при выключенном экране. Оно работает на любом устройстве под управлением Android 8.0 Oreo, Android 8.1 Oreo, Android 9 Pie или Android Q.
Читайте также: Как получить утилиты ADB и Fastboot без установки Android SDK
Чтобы настроить Next Track, все, что вам нужно сделать, это установить само приложение из Google Play и запустить следующую ADB-команду:
./adb shell pm grant com.flar2.volumeskip android.permission.SET_VOLUME_KEY_LONG_PRESS_LISTENER
С более подробной инструкцией для MacOS и для Windows от разработчика можно ознакомиться здесь.
Этот же разработчик работает над обновлением своего приложения Button Mapper, чтобы оно использовало новый API. Для реализации в Button Mapper переключения композиций длительным нажатием кнопок громкости разработчику пришлось использовать в каком-то роде хакерской метод, а поэтому вся функциональность сбрасывалась при каждой перезагрузке устройства, чего не должно происходить при использовании нового API.
Поскольку это скрытый API, нет гарантии, что Google не убьет доступ к нему в будущем обновлении Android. Начиная с Android Pie, Google работает над ограничением недокументированных/скрытых API, поэтому этот способ может перестать работать в финальной версии Android Q или Android R.
Приложение: Next Track
Разработчик: flar2
Категория: Музыка и аудио
Цена: Бесплатно
Скачать: Google Play