Кнопка настройки для андроид

Как переназначить любую кнопку в Android-смартфоне на желаемое действие

После недавних новостей о том, что Samsung позволит пользователям своих мобильных устройств переназначать функциональность физической клавиши для вызова ассистента Bixby, пользователь ресурса XDA Developers с ником sds100 решил создать приложение, которое позволит пользователям устройств других производителей делать то же самое, но ещё круче. Key Mapper позволяет переназначить любую клавишу на вашем смартфоне на любую действие, какое вы хотите, а также клавиши на любой беспроводной клавиатуре, подключенной к вашему устройству. Кнопки на других подключенных устройствах тоже могут быть переназначены, но гарантии того, что это будет работать корректно, разработчик не даёт.

Варианты настройки в Key Mapper практически бесконечны, и на какую-нибудь кнопку можно даже назначить даже создание скриншота. Длинные нажатия здесь тоже поддерживаются, но не смотря на всю многофункциональность приложения есть у него пара ограничений – на кнопку питания нельзя ничего назначить в целях безопасности, и поэтому ее основное предназначение будет сохранено всегда, а также нельзя задействовать такие функции, как Active Edge (чувствительные к надавливаниям грани устройства).

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

Приложение: Keyboard/Button Mapper
Разработчик: sds100
Категория: Персонализация
Цена: Бесплатно
Скачать: Google Play

Делитесь своим мнением в комментариях под этим материалом и в нашем Telegram-чате.

Источник

Назначаем альтернативные действия на физические кнопки android-смартфона: «Переназначение клавиш» и Button Mapper

Оглавление

Вступление

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

реклама

На выручку приходят специальные программы, позволяющие полностью перепрограммировать физические клавиши гаджета и назначить на них любое действие. Это особенно выручает, если сломалась кнопка питания или хочется перематывать треки как на mp3-плеере, но встроенный этого не умеет… Нужны ли для этого root-права? Не будет ли глюков? Как это вообще работает? На поставленные вопросы я сегодня и попытаюсь ответить.

Для начала представлю подопытных. Первое приложение так и называется: «Переназначение клавиш», по крайней мере в русском Google Play. Оно умеет работать как с физическими, так и сенсорными манипуляторами, но для некоторых действий требует root-прав. Вторым участником станет Button Mapper, умеющий то же самое, но не требующий вообще root-прав, что уже интересно.

В качестве тестового оборудования использовались:

  • Планшет DEXP Ursus 8EV2 3G (Android 4.4.2, процессор MT8382, 4 x Cortex-A7 1.3 ГГц, видеоядро Mali-400 MP2, 1 Гбайт ОЗУ, аккумулятор 4 000 мАч, 3G-модуль, Wi-Fi 802.11b/g/n);
  • Смартфон Homtom HT3 Pro (Android 5.1 Lollipop, процессор MT6735P, 4 x Cortex-A53 1.0 ГГц, 64-бит, видеоядро Mali-T720, 2 Гбайт ОЗУ, аккумулятор 3 000 мАч, 4G-модуль, Wi-Fi 802.11b/g/n).

Источник

Кнопка настройки для андроид

Так как подобной темы нет, а информация по данному вопросу разбросана небольшими частями по различным темам форума решил, создать данную тему с общей инструкцией.
Для всех действий необходим root.
Работать будем с файлами расположенными в system\usr\keylayout

Остановимся на файлах, которые необходимо редактировать (это, пожалуй, самый сложный этап):
Имя файла зависит от фирмы производителя, модели и версии прошивки, но как я заметил есть следующая тенденция: до Android 2.3.5 включительно, имя нужного нам файла формировалоcь следующим образом ***-keypad.kl (или ***- kpd.kl), где *** — заводское имя вашей модели.

    Известные мне примеры:
  • Gigabyte Gsmart G1310 — qrd-keypad.kl
  • Gigabyte Gsmart G1355 – msm7627_sku5_keypad.kl
  • LG P500 Optimus One – thunder_keypad.kl
  • LG E405 Optimus L3 Dual — surf_keypad.kl и 7x27a_kp.kl
  • LG E730 Optimus Sol – victor-keypad.kl (touch-keypad.kl)
  • LG GT450 – swift.kl (не уверен, но люди пишут)
  • HTC Hero — heroc-keypad.kl
  • HTC Desire — bravo-keypad.kl
  • HTC Explorer — pico-keypad.kl
  • HTC Desire S — saga-keypad.kl
  • HTC Desire HD — spade-keypad.kl
  • HTC Sensation — pyramid-keypad.kl
  • Samsung Galaxy S I9000 — melfas-touchkey.kl и s3c-keypad.kl
  • SE Live with Walkman — pm8058-keypad.kl и msm_pmic_pwr_key.kl (во втором файле только кнопка питания)
  • Sony Ericsson Xperia X8 – shakira-keypad.kl
  • Sony Ericsson Xperia X10 – es2009ra_keypad.kl
  • Star A2000 / A2000 GPS — MT6516-kpd.kl и QWERTY.kl
    * — планируется наполнение списка с Вашей помощью, если есть замечания указывайте.

Начиная с 4.0.3 всё изменилось, могу отметить, что для HTC вторая часть файла стала touchscreen.
Известные мне примеры:

  • Sony LT22i Xperia P – so34-buttons.kl (3 нижние кнопки), ux500-ske-keypad.kl (боковые кнопки)
  • HTC ONE V — atmel-touchscreen.kl (3 нижние кнопки), primou-keypad.kl (боковые кнопки)
  • HTC Desire S — atmel-touchscreen.kl (4 нижние кнопки), saga-keypad.kl (боковые кнопки)
  • HTC Sensation – cy8c-touchscreen.kl (4 нижние кнопки), pyramid-keypad.kl (боковые кнопки)
  • Samsung i9250 Galaxy Nexus (android 4.2.1), вероятней всего sii9234_rcp.kl
    * — планируется наполнение списка с Вашей помощью, если есть замечания указывайте.

    Файлы кнопок проводной гарнитуры обычно имеют вид:

  • 7k_headset.kl
  • h2w_headset.kl
    • POWER – блокировка/разблокировка
    • HOME – возврат на основной экран
    • MENU – вызов меню
    • BACK — возврат к предыдущему действию
    • SEARCH – вызов поиска
    • VOLUME_DOWN – понижение уровня громкости
    • VOLUME_UP – повышение уровня громкости
    • CALL – вызов Phone.apk (позволяет отвечать на вызов)
    • ENDCALL – завершение звонка
    • CAMERA – вызов Camera.apk
    • FOCUS – автофокус
    • DPAD_CENTER – курсор (касание) по центру
    • DPAD_UP – курсор (касание) вверх*
    • DPAD_DOWN – курсор (касание) вниз*
      * — установка этих значений на кнопки 115 и 114 соответственно позволяет добиться пролистывания текстов или страницы браузера кнопками громкости.
    • DPAD_LEFT – курсор (касание) влево
    • DPAD_RIGHT – курсор (касание) вправо
    • MUTE – выключение звука музыки без остановки трека
    • MEDIA_NEXT – следующий трек
    • MEDIA_PLAY_PAUSE – проигрывать/пауза
    • MEDIA_STOP – остановить трек
    • MEDIA_PREVIOUS – предыдущий трек
    • MEDIA_REWIND — перемотка
    • MEDIA_FAST_FORWARD – ускорить воспроизведение
    • HEADSETHOOK – кнопка гарнитуры – позволяет отвечать на вызовы, класть трубку и управлять плеером
    • GRAVE — ?
    • APP_SWITCH (RECENT_APP) – вызов панели «Недавние» с возможностью переключаться между приложениями (либо вызов диспетчера приложений в зависимости от прошивки.

    Также следует обратить внимание на такие дополнительные параметры как:

  • WAKE
  • WAKE_DROPPED
    Если стоит WAKE то после нажатия в спящем режиме смарт «проснётся» и выполнит действие, а при WAKE_DROPPED просто «проснётся», без передачи кода кнопки на выполнение.
    • Если у вас кастомный recovey (а вероятней всего он у вас такой), то во вкладке advanced можно воспользоваться функцией key test.
    • Программа KeynrTracker. KeynrTracker.apk ( 8.32 КБ )

    Программа Keycode CheckerKeycodeChecker.apk ( 10.3 КБ )

    • Самый простой способ. Заключается в редактировании нужных файлов прямо в папке keylayout, для этого используем ES Проводник (RootExplorer, Total Commander, ну или что-то на свой вкус (я пользуюсь ES Проводником и вам советую)): открываем – меняем требуемые значения – закрываем с сохранением изменений – перезагружаем девайс. При этом в папке keylayout будет создан фаил ****.kl.bak в котором сохранятся первоначальные значение изменённого вами файла. Также можно редактировать копию файла на SD карте или ПК, а затем вставлять с заменой в keylayout.(Проверено)

    Программа Easy Android Tools (EAT). Программа позволяет подключать телефон как через USB кабель так и по WiFi. После подключения и распознания телефона программой в правом окне Вы увидите содержимое внутренней памяти телефона. Переходим в Необходимо system/usr/keylayout, находим нужный фай, редактируем его в EAT Editor (F4), сохраняем изменения, перегружаем смарт и готово. (Программа подразумевает наличие на вашем ПК USB драйверов для вашего устройства (их можно найти на оф сайте программы), и HTC Syns для HTC)
    EAT_1.3.1.RUS.Setup.exe ( 1.78 МБ )

    Для этого метода нам потребуется Android SDK tools, знание точного названия файл который нам надо менять (можно посмотреть через ES Проводник и тд. и. тп.)
    В командной строке переходим в папку с Android SDK tools (у меня это C:\Android), далее выполняем следующее. (Необходимо наличие на вашем ПК USB драйверов для вашего устройства)

    Перегружаем аппарат и готово. Android.zip ( 572.31 КБ )
    (Проверено)

  • Заключается в редактировании файла на ПК, и создание zip архива для прошивки через recovey, пример такого архива для HTC Desire S прилагаю, но тут надо навыки по написанию файла updater-script. Recent_Apps_on_Search_for_Desire_S.zip ( 252.14 КБ )
    (Проверено)
  • ButtonRemapper – позволяет переназначать кнопки, но работает некорректно на многих устройствах особенно с android 4.0.3 и выше. Более разработчиком не поддерживается, Следует отметить, что в теме по этому приложению достаточно много информации по ручному переназначению кнопок.

    ButtonRemapper Galaxy Tab Tab_ButtonRemapper_v1.1.apk ( 67.09 КБ )

    ButtonRemapper Galaxy S ButtonRemapper_Galaxy_S.apk ( 72.76 КБ )

    Headset Button Controller – управление музыкальным проигрывателем и другими функциями телефона с проводной гарнитуры.

    DreamKeys – программа для переназначения кнопок телефона, идея заключается в перехвате команд нажатий и присвоение им других действий, root не нужен (возможна настройка на долгое нажатие).

  • Button Shortcut — Назначение программ на кнопки «Камера» или «Поиск»
  • Сообщение отредактировал dеym — 26.07.19, 16:29

    Источник

    Тайны кнопок в Android. Часть 3: Кнопки в главном меню

    Главное меню — один из основных инструментов для взаимодействия пользователя с приложением. В Android 2.3.x и раньше оно было «спрятано» на аппаратной кнопке Menu, и разработчики рисовали меню кто как умел. Но начиная с Android 3.0 недоработка была исправлена, меню стало стандартным компонентом на Action Bar, и получило ряд новых возможностей. При этом процесс разработки меню практически не претерпел изменений. Меню в Android — это не просто набор кнопок, на которые можно вешать OnClickListener . В Android с меню можно сделать куда больше, чем кажется на первый взгляд.

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

    Вот так по-разному может выглядеть меню одного и того же приложения.

    Наша первая кнопка в меню

    Меню в Android описываются в файлах ресурсов или формируются программным кодом. Рекомендуется первый вариант по целому ряду причин: скорость разработки, наглядность, простота сопровождения. Ресурсы меню располагаются в подкаталоге menu каталога ресурсов приложения res . Создаем каталог menu , затем создаем новый Android XML File :

    Выбираем тип ресурса Menu , вводим имя файла. Так как в разных activity меню, скорее всего, будет разным, рекомендую привязывать имена файлов ресурсов меню к именам activity.

    В открывшемся редакторе введем код первой кнопки нашего меню:

    Давайте рассмотрим использованные атрибуты:

    • android:id указываем, чтобы потом в коде отличать одни кнопки от других.
    • android:orderInCategory указывает порядок нашей кнопки относительно других. Указывайте порядок с шагом в 10 или 100, это позволит в будущем добавлять новые элементы в любое место, не перестраивая порядок остальных.
    • android:showAsAction — самый интересный параметр, поскольку именно он управляет поведением элементов меню в разных ситуациях. Он может принимать целый ряд значений:
      • ifRoom — Показывать элемент в action bar, только если для него достаточно места. Если места недостаточно, элемент будет автоматически скрыт в дополнительное меню (то, которое показано тремя точками друг над другом). Это лучший способ кастомизации меню в зависимости от размера экрана устройства. На больших экранах планшетов action bar будет заполнен кнопками, а на небольших телефонах будут показаны самые важные кнопки, в то время как до остальных тоже можно добраться, но только через дополнительное меню. Имейте в виду, что дополнительное меню отображается в action bar только на тех смартфонах, на которых нет аппаратной кнопки меню.
      • withText — Рядом с иконкой кнопки будет показан текст, заданный свойством android:title . Этот параметр можно указывать в комбинации с другими, разделяя параметры знаком |
      • never — Кнопка никогда не будет видна на action bar, даже если для нее есть место. К такой кнопке всегда придется добираться через дополнительное меню.
      • always — Всегда показывать кнопку в action bar. Данным параметром нельзя злоупотреблять, так как на маленьких телефонах кнопки могут начать заползать на другие элементы action bar, например на заголовок приложения. Определите для каждой activity максимум одну самую важную кнопку, без которой никак нельзя, и отметьте always только у нее. Остальные (а по возможности все) должны быть ifRoom .
      • collapseActionView — позволяет сделать кнопку, открывающую или скрывающую дополнительный элемент View в action bar. Например, можно задать такой параметр иконке поиска, по ее клику показывать прямо в action bar поле для ввода поискового запроса.
    • android:title — определяет заголовок кнопки меню. Он может отображаться рядом с иконкой в action bar или же как название элемента в дополнительном меню.
    • android:icon — иконка кнопки.

    Иконки для меню

    Если вы разрабатываете приложение в стиле Holo, вы можете использовать готовый набор иконок от Google, который доступен всем для загрузки с официального сайта совершенно бесплатно.

    Набор иконок представлен отдельно для темной и отдельно для светлой темы Holo, а также для разных размеров экранов. Если вы не можете позволить себе дизайнера в команде, этот набор просто незаменим.

    Подключение меню к Activity

    Загрузить меню из ресурса очень быстро. Открываем код Activity и перекрываем метод onCreateOptionsMenu :

    Теперь меню отображается, но при нажатии на кнопку ничего не происходит. Повесить обработчик на кнопку можно кодом или прямо в XML-ресурсе, задав в свойстве android:onClick имя метода-обработчика. Чтобы сделать то же самое кодом, нужно в Activity перекрыть метод onOptionsItemSelected :

    Создаем подменю

    Подменю полезно, когда мы хотим уточнить способ выполнения действия, представленного в action bar. К примеру, у нас есть список покупок и кнопка «Сортировка». По нажатию кнопки нужно выяснить, по какому параметру пользователь хочет отсортировать элементы списка: по категории товара, по названию или по порядку добавления в список. Посмотрим код подменю для такого случая:

    Здесь мы объявили еще один тег внутри тега . Подменю представляет собой группу все тех же тегов , что позволяет при необходимости сделать подменю в подменю и так далее.

    Radio button’ы в меню

    Мы только что сделали меню для выбора порядка сортировки покупок. Было бы здорово показывать, какой способ сортировки используется в текущий момент. Список может быть отсортирован только одним из трех возможных способов, что отлично соответствует идее radio button. Чтобы сделать из нашего подменю набор radio button, достаточно тегу указать свойство android:checkableBehavior=»single» . Возможные значения android:checkableBehavior :

    • single — выбор только одного из доступных элементов, наш случай
    • all — выбор любого количества доступных элементов, аналог check box
    • none — элементы группы являются обычными элементами меню, это значение по умолчанию

    Полученный код меню:

    Если запустить приложение и попробовать выбрать один из способов сортировки, ничего не произойдет. В меню не показано, что какой-то элемент выбран. Это придется сделать вручную вызовом item.setChecked(true);

    Скрываем или показываем элементы меню

    Скрывать элементы меню полезно, если телефон временно или в принципе не может выполнить какой-либо функционал. Например, у нас есть кнопки для отправки списка покупок через соц. сети, но если интернет сейчас не подключен, то отправить список не получится. Чтобы не расстраивать пользователя сообщениями об ошибке, можно скрыть неработающие в данный момент кнопки. Давайте добавим кнопку «Поделиться»:

    Теперь во время создания меню в методе onCreateOptionsMenu проверим доступность сети, найдем нашу кнопку и установим ей видимость:

    Так мы подстраиваем меню в момент создания activity. Этого достаточно для тех функций, которые требуют наличия определенного аппаратного обеспечения в телефоне (камера и т.п.). Но интернет может включиться в любое время, даже после старта activity. Также иногда возникает желание перестроить меню после каких-то действий пользователя в приложении. Перестроить меню предельно просто. Вызываем метод invalidateOptionsMenu() нашей activity. Это приведет к повторному вызову метода onCreateOptionsMenu перед следующей отрисовкой меню. Обратите внимание, что метод invalidateOptionsMenu был добавлен в API 11, поэтому для совместимости с Android 2.x нужно использовать такой вызов:

    Класс android.support.v4.app.ActivityCompat можно найти в Support Package.

    Другие способы кастомизации меню

    Как вы знаете, в Android можно задавать разные ресурсы для различных размеров/ориентации/плотности экрана и в зависимости от других особенностей устройств. Это касается любых типов ресурсов, в том числе и меню. По умолчанию ресурсы меню загружаются из каталога /res/menu. Но вы можете создать каталог, например, /res/menu-sw600dp, и таким образом задать особую компоновку меню для устройств с минимальным размером экрана 600 dp по горизонтали или вертикали (это как правило соответствует 7-ми дюймовым планшетам). На практике для меню обычно достаточно указания свойства android:showAsAction=»ifRoom» для элементов, так как в результате мы получаем максимально точную «подгонку» меню к тому устройству, на котором будет работать приложение. К тому же это позволяет сильно уменьшить объем кода ресурсов, ведь их в этом случае не нужно дублировать.

    Если у вас остались вопросы по работе с главным меню, буду рад ответить в комментариях.

    Источник

    Читайте также:  Японские кроссворды катана для андроида
    Оцените статью