Учебное пособие о том, как добавить пользовательскую кнопку на панель навигации на Samsung Galaxy S8 или Samsung Galaxy S8+. Не требует root-доступа.
Galaxy S8 и Galaxy S8+ от Samsung — два самых популярных смартфона на рынке, во многом благодаря огромным успехам, достигнутым Samsung в технологии отображения. Поскольку Samsung стремилась максимально уменьшить лицевую панель в своих новых флагманских устройствах, компания наконец-то избавилась от емкостных клавиш, которые когда-то были основной частью аппаратного обеспечения Samsung. На их месте находятся программные клавиши навигации, которые можно в некоторой степени изменить в пользовательском интерфейсе Samsung Experience.
Однако, как обычно, стандартной реализации тюнера панели навигации совершенно не хватает настраиваемости. Большая часть настроек сосредоточена вокруг кнопки «Домой» — вы можете изменить чувствительность и указать, разблокирует ли она телефон напрямую. Хотя существует возможность изменить расположение кнопок, единственный вариант, на который вы можете переключиться, — это перевернутый макет, при котором клавиши «Назад» и «Последние» перевернуты.
Мы в XDA-Developers всегда ищем не только то, что предлагает производитель, чтобы найти больше способов персонализации вашего телефона. Вот почему сегодня мы представляем метод добавить дополнительные кнопки на панель навигации на Samsung Galaxy S8 и S8+.
Если вы следили за порталом XDA (как и должно быть), возможно, вы видели мой пост в прошлом месяце о том, как настройку панели навигации можно выполнить в Android 7.X устройства без необходимости модификаций системного пользовательского интерфейса, пользовательских ПЗУ или какого-либо root-доступа. Этот метод включает в себя непосредственное изменение параметров, отвечающих за настройку панели навигации, даже если графический интерфейс для изменения панели навигации скрыт от пользователя. Это связано с тем, что код, составляющий скрытый тюнер навигационной панели, находился в репозиториях Android Open Source Project (AOSP) со времен Android Nougat, но это не так. до Android O что Google раскрыл эту активность в System UI Tuner. Однако до тех пор, пока программное обеспечение, поставляемое на ваше устройство под управлением Android Nougat, не полностью удалит код тюнера панели навигации, эту функцию можно использовать без ожидания.
Изменение панели навигации включает отправку команд оболочки либо через ADB, либо через приложение, которому предоставлено разрешение WRITE_SECURE_SETTINGS. В связи с тем, что многие люди не знакомы с АБР, старший член XDA пафонб разработал приложение под названием Пользовательская панель навигации чтобы вам было все проще.
Когда тысячи людей начали тестировать его приложение, многие пользователи Galaxy S8 и Galaxy S8+ начали сталкиваться с частыми сбоями пользовательского интерфейса системы при попытке использовать приложение. Таким образом, мы предполагалось что изменить панель навигации за пределами реализации Samsung было невозможно, но с тех пор это предположение было признано ошибочным. Вот как это сделать.
Добавление пользовательских кнопок на панель навигации на Galaxy S8 или S8+
После некоторого первоначального тестирования мы обнаружили, что те же команды оболочки, которые мы использовали, присылаю свой оригинальный урок также работает на Galaxy S8 и S8+, но с одной существенной оговоркой. Исходные клавиши переключения «Назад», «Домой», «Недавние» и IME. ОБЯЗАТЕЛЬНО присутствовать независимо от того, какой макет вы используете. Если какой-либо из этих ключей отсутствует, системный пользовательский интерфейс начнет постоянно давать сбой. Кроме того, любая клавиша, которую вы добавляете на панель навигации, будет выглядеть немного странно, когда панель навигации Samsung автоматически меняет цвет на белый фон, но я ищу способы обойти эту мелочь неудобство.
В любом случае, давайте углубимся в команды, которые вам необходимо изучить, чтобы изменить панель навигации на вашем устройстве Samsung Galaxy. Первое, что вам нужно сделать, это настроить ADB на вашем компьютере.
Настройка АБР
Первый, загрузите двоичный файл ADB прямо из Google для вашей конкретной ОС и извлеките его в отдельный каталог на вашем компьютере. Следующий, установите правильный драйвер для вашего телефона Samsung. Затем включите «Отладку по USB» в «Настройки» -> «Параметры разработчика». Если вы не видите «Параметры разработчика», вам нужно будет включить их, перейдя в «Настройки» -> «О телефоне», а затем нажав «Номер сборки» 7 раз. Наконец, убедитесь, что ADB работает, запустив командную строку в том же каталоге, что и двоичный файл ADB (удерживайте Shift + щелкните правой кнопкой мыши -> «открыть командную строку здесь») и выполните следующую команду:
adb devices
Если вы видите серийный номер вашего устройства (и на нем нет надписи «Неавторизованный»), вы молодец. Если вы видите всплывающее окно на своем телефоне с просьбой предоставить вашему компьютеру доступ к ADB, скажите «да». Если вы не видите ни того, ни другого, попробуйте перезагрузить компьютер/телефон и снова подключить его к компьютеру. В противном случае попробуйте переустановить драйвер.
Изменение панели навигации — метод ADB
Синтаксис для изменения панели навигации следующий:
settings put secure sysui_nav_bar "key(KEYCODE_CONSTANT: file:///path/to/icon.png),back; home; recent, menu_ime"
где KEYCODE_CONSTANT относится к константе Ключевое событие а путь к значку — это URI файла, который позволяет вам указать собственный значок для добавления на панель навигации. Я обнаружил, что значки размером 64x64 вполне подходят для наших целей. Вы можете скачать множество бесплатных иконок с сайта ИконкиБД Веб-сайт.
Например, команда, которую я отправил, чтобы добавить клавишу панели навигации, запускающую приложение Gmail, выглядит следующим образом:
settings put secure sysui_nav_bar "key(65:file:///storage/emulated/0/NavIcons/gmail.png),back; home; recent, menu_ime"
Поскольку где-то в команде обязательно должны быть значения «Назад», «Домой», «Недавние» и «menu_ime», это означает, что мы, к сожалению, не можем заменить эти стандартные клавиши, чтобы мы могли использовать наши собственные значки на панели навигации. Но, по крайней мере, мы можем поиграть с расстоянием, чтобы иметь возможность разместить больше пользовательских клавиш или просто получить желаемую раскладку. Например:
settingsputsecuresysui_nav_bar "space[#],back[#];home[#];recent[#],menu_ime[#]"
Значение в скобках — это множитель относительного размера, позволяющий уменьшить или увеличить ширину кнопки. Обратите внимание, что типичные значения множителя относительного размера должны оставаться в пределах 0,85–1,15, иначе кнопки начнут занимать слишком малую или слишком большую ширину, чтобы их можно было использовать. Не пытайтесь указать «0» для относительного размера, пытаясь скрыть клавишу панели навигации — вы просто приведете к сбою системного пользовательского интерфейса.
Если вы что-то напутали и в результате произошел сбой системного пользовательского интерфейса, вы можете вернуться к макету панели навигации по умолчанию, введя любую из следующих двух команд:
settings put secure sysui_nav_bar "space, back; home; recent, menu_ime"
settings delete secure sysui_nav_bar
В качестве напоминания о некоторых сумасшедших вещах, которые можно сделать с помощью скрытого тюнера навигационной панели Android Nougat, вот скриншот макета навигационной панели, который один из наших читателей сделал ради смеха.
Изменение панели навигации — метод приложения
Я уверен, что это та часть, которая действительно интересует большинство из вас. Старший член XDA пафонб's Пользовательская панель навигации приложение сделало бы все это проще. Недавно разработчик выяснил, как перехватывать определенные события KeyEvent, вызывающие определенные приложения. Всего он придумал, как перехватить до 5 событий KeyEvent. Точное объяснение того, как он добился этого, здесь не требуется, поэтому мы не будем вдаваться в подробности. Учитывая это, разработчик смог обновить приложение (начиная с версии 0.5.0), чтобы вы могли по сути, совершайте любые действия, какие захотите.
Например, недавно разработчик добавил возможность добавлять действие, которое опускает строку состояния, напрямую запустите приложение по вашему выборуи, самое главное, вызвать Событие Таскера. Функция событий Tasker, в частности, является самой удивительной частью, потому что с помощью Tasker количество действий, которые вы можете выполнять, безгранично. Если вы хотите, чтобы кнопка на панели навигации что-то делала, она может это сделать. Соедините это с уже существующей интеграцией профиля Tasker, и вы сможете контекстно изменить панель навигации на своем устройстве, чтобы добавлять определенные клавиши только при выбранных вами условиях.
Чтобы использовать эти специальные функции приложения, вам придется потратить 1,99 доллара США на обновление до профессиональной версии приложения. В настоящее время, чтобы использовать приложение на Samsung Galaxy S8/S8+, вам необходима последняя бета-версия (0.7.0). Приложение автоматически определит, используете ли вы Galaxy S8/S8+, и отключит некоторые функции, которые могут привести к сбою вашего устройства.
Разработчик сообщил мне, что он все еще работает над подготовкой приложения к стабильной версии для пользователей этих телефонов Samsung. Прямо сейчас я бы подождите несколько дней, пока разработчик обновит свое приложение так что у вас будет простой способ изменить панель навигации без использования команд ADB. Разработчик быстро обновляет свое приложение: поскольку приложение было выпущено менее месяца назад, в него уже было добавлено множество функций.
Заключение
Однако если вы достаточно предприимчивы, вы можете поиграть со скрытым настройщиком навигационной панели, используя синтаксис, который я показал ранее. Большинство людей, скорее всего, будут ждать обновления приложения Custom Navigation Bar — я просто хотел опубликовать эту новость, чтобы все наши друзья Galaxy S8/S8+ знали, чего ожидать. Я продолжу публиковать учебные пособия, связанные с настройкой панели навигации, а в следующем уроке я сосредоточусь на том, как добавить двойные щелчки или щелчки по кнопкам панели навигации.
Пожалуйста, поддержите разработчиков XDA любым возможным способом! Недавно мы обнаружили, что в нескольких блогах были вырезаны, скопированы и вставлены наши оригинальные руководства и другой контент, которым наши пользователи делились на форумах. Эти блоги пытаются приписать себе огромные усилия, которые мы прилагаем для составления этих руководств, а не предоставлять качественный контент самостоятельно. Вы не найдете таких руководств, как те, которые мы написали в нашем категория обучающих программ или руководства с наших форумов где-либо еще.
Подпишитесь на нас в Твиттер, Гугл+, Фейсбук, или YouTube. Ознакомьтесь с нашим XDA Лаборатория приложение для быстрого просмотра наших форумов (и рассмотрите возможность получения XDA без рекламы тоже!) на вашем мобильном устройстве! Спасибо и следите за обновлениями для нашего следующего урока!