![]() |
Клавиатура как дополнительные кнопки
Итак, один из самых простых способов добавить дополнительные кнопки в ваш карпк - это подключить к нему клавиатуру.
Способ очень простой и удобный. Его плюсы: 1) клавы стоят не дорого, их несложно найти. 2) клавы имеют разный функционал, бывают с трекболами, тачпадами, мультимедийными кнопками, скриптами и т.д. 3) клавы бывают беспроводными. Очень хороший вариант чтобы спрятать кнопки в руле. И в отличии от ик передатчиков нет нужды организовывать прямую видимость. да и просто меньше проводов - это удобно 4) клавы бывают блютус, а это значит что в вашем планшете даже нет нужды активировать юсб хост. Просто покупайте планшет с блютусом. 5) поддержка клав изначально встроена в андроид и Вам нет нужды че-то ковырять внутри. Правда, у внешних клавиатур был один недостаток. При подключении внешней клавиатуры в андроиде сворачивается экранная. А это не удобно. Благодаря нашим однофорумчанам эту проблему удалось решить. На данный момент решения два: 1) изменение файлов андроида. Большое спасибо Касар. 2) установка альтернативной клавы Smart keyboard Pro. (в ее настройках есть галка "не прятать экранную") Итак, Вы купили/нашли клаву, которая подходит Вашим морально-этническим соображениям. С чего начать? - разберите клавиатуру как правило клавиатура состоит из платы с кучей (порядка 20) контактов и самого блока кнопок - выкидываем или морально прощаемся с блоком кнопок. Он нам не понадобится - подключаем клаву к ПК - вооружаемся проводочком и начинаем прозванивать матрицу клавиатуры для простоты прозвона можно установить программу keyboard tester в моем случае я искал кнопки перемотки треков, поэтому для поиска я использовал запущенный аудио плеер - прозвон проводим методом поочередного замыкания двух контактов матрицы. Причем Вы можете найти на матрице такие кнопки, которые даже не были выведены на Вашей клавиатуре. - припаиваем проводочки к нужным контактам Добавлю пару фоток и распиновку моей клавиатуры. Я использовал какую-то старую блютусную KB-6113, которая валялась на балконе. а вот лекарство, при помощи которого можно запускать приложения сочетанием двух кнопок |
есть только одна проблема. все контроллеры встроенные в клавы беспроводные, достаточно большие (физические размеры плат). реально тяжело воткнуть в пульт на руль. особенно в такой. Уже разобрал синезубую китайскую миниклаву и беспроводную нормального размера. Размеры несоизмеримы с блаупунктом.
|
Цитата:
Но если прикинуть, то в любом руле места должно быть предостаточно. там же целую подушку, пиропатрон умудряются размещать. можно кнопки вывести маленькими проводами, а сам контроллер спрятать где-то поглубже. По крайней мере в теории это должно быть возможно. Тут каждый руль другому рулю рознь. |
ну если кнопки на руле уже есть, то это, наоборот, облегчает задачу. а вот если нету и хочется... мне кажется, если я сделаю проводками, то первый немецкий полицай (заметивший, конечно) вгонит меня в долги :) (мнение неподтвержденное законами и останавливали меня за 13 лет всего один раз)
|
мне кажется самый правильный способ, если кнопок на руле нет, это использовать подрулевые джойстики.
Их реальней всего красиво встроить в дизайн |
запилил маленький клавиатурный модуль от клавиатуры A4tech GK770D. 5 медиа кнопок (play/pause, next, previous, mute, stop) на картинке он посередине верхнего ряда http://www.nix.ru/autocatalog/keyboa...5_-2_draft.jpg поставил его на подлокотник левой двери. долго боролся с keylayout файлами. хотел добиться переключения окон. Итог:
1. APP_SWITCH, RECENT_APP, KEY_CYCLEWINDOWS такие коды не работают!!! 2. эта инструкция реально рабочая. 3. если прописать в файле .kl такую строку, то это будет переключать окна, ну почти : key <код клавиши> TAB ALT |
Как же все таки настроить запуск приложения по нажатию клавиши на клавиатуре?
|
Цитата:
камеры подсовывать APK Яндекс.Карты -- не работает!). Но я уже эту тему прорабатывал неоднократно. 1. Для запуска плеера можно назначить нужную вам клавишу вот так (в файле *.kl): key 200 HEADSETHOOK Это на самом деле СТАРТ/СТОП плеера, но если он не запущен, при первом нажатии кнопки система его запустит. 2. Можно написать простенькую прогу, которая переназначит кнопку камеры. Для этого нужно прописать соответствующий интент (что прога собирается делать фотки), а из неё уже запускать то, что нужно. Я бы хотел по нажатию кнопки запускать навигацию. Сам собираюсь написать, руки пока не дошли. 3. И действующее решение. Если девайс достаточно быстрый и у вас есть root, возьмите написанный мною скрипт (сейчас там прописаны USB коды функ. клавиш): while true # бесконечный цикл do s=$(getevent -v0 -c1) # считываем одно событие из всех устройств ввода, -v0 чтобы он не сыпал кучей ненужного мусора s=$(echo $s | awk '{print $4}') #выделяем код клавиши case $s in # выполняем нужную команду 0007003f) am start -a android.intent.action.MAIN -c android.intent.category.HOME -n com.maxmpz.audioplayer/.StartupActivity # запускаем PowerAMP sleep 1 ;; 00070040) am start -n ru.yandex.yandexmaps/.MapActivity # Запускаем Яндекс.Карты sleep 1 ;; 0007003d) am start -a android.intent.action.MAIN -c android.intent.category.HOME # переход на главный экран (если кнопка HOME не работает) sleep 1 ;; 00070045) am start -a android.intent.action.MAIN -n com.speedsoftware.rootexplorer/.RootExplorer # (Root explorer) sleep 1 ;; 0007003b) am startservice -a "org.broeuschmeul.android.gps.usb.provider.nmea.int ent.action.START_GPS_PROVIDER" # запускаем USB GPS и Mapcam Droid sleep 5 am broadcast -a info.mapcam.droid.SERVICE_START # am start -n info.mapcam.droid/.SpeedometrActivity # другой экран Mapcam Droid, если нужно sleep 1 ;; esac done Рут нужен потому, что в Андроиде нельзя как в Windows просто читать коды клавы если окно данной программы не активно. Сделано это разработчиками для предотвращения кейлоггеров. Единственный способ -- под рутом читать входящий поток и фильтровать оттуда то что нужно. Нужные вам коды клавиш можете найти просматривая вывод команды getevent из командной строки. Команды запуска нужных приложений можно накопать разбирая файл ресурса внутри APK либо просто узнать у разработчика. Команда am start запускает приложение из командной строки. Данный скрипт успешно работает, но если в девайсе мало памяти, ядро со временем его убьёт. В Андроиде чтобы процесс не убивался, его нужно поместить в область уведомлений (строка сверху), но я не разобрался как это сделать. |
есть еще один способ - в медиаплеерах с Андроидом есть встроенное приложение или сервис, который мониторит клаву или пульт, эмулирующий клаву и запускает одно из 4 настроенных приложений.
Вот только как его выцепить - я лично не нашел. Это приложение решило бы кчу проблем. Я сейчас пошел другим путем - слабал аналог резистивных кнопок (у меня в магнитоле матрица 4x4), завел их в Ардуину через аналоговый вход (АЦП), написал скетч для обработки - а дальше дело техники - хочешь отправляй коды клавиш через эмулятор USB -клавы (стандартная фича современных ардуин), хочешь запускай куски кода в самой ардуине... |
Цитата:
Хотя андроид по нажатию кнопки может вызывать: камеру, почту, область уведомлений, поиск, завершение работы, видеоплеер, аудиоплеер (причём только "родной"), галерею. Это те коды, которые работают в *.kl файле у меня: CAMERA, EMAIL, NOTIFICATION, SEARCH, POWER, VIDEO, MUSIC, PICTURE. Можно попробовать покопать в сторону замены этих APK другими. Но тупое переименование вызывает ошибку. |
Цитата:
Я сам столкнулся - если активити - делай что хочешь. Если сервис - то в пролете. А так как мое приложение - это сервис, то если сворачиваешь окна - кнопки уже не работают. |
Хочу напомнить про существование такого вот изделия
Функционал подключения к BMW не обязательно использовать, в этом случае вообще ничего дорабатывать не надо. У вас будет небольшая платка, к которой можно подключить до 15 кнопок, каждую из которых можно запрограммировать на любой сканкод, в т.ч. и из мультимедийной части клавиатуры. |
AngelOfGrief
Скрипт действительно работает!! Но вот беда. Скрипт берет данные из файла event только если ему в ручную выставить разрешение на чтение и запись rw rw rw . По умолчанию у этого файла разрешение rw rw - . При чем этот файл появляется и исчезает при подключении клавиатуры, и естествено разрешение всегда сбрасывается на rw rw - , в результате скрипт не работает при таких условиях. Что можно сделать? Рут есть. |
Наверное, в цикле прописать chmod при условии существования файла?
|
Кто пробовал ардуину прицепить к контроллеру клавиатуры? Хотел на ардуине сделать ик-приемник для пульта что бы она кнопки нажимала какие нужно.
|
Есть готовые USB ИК приёмники с пультом в комплекте, выдающие коды multimedia клавиш.
Что значит прицепить ардуину к контроллеру клавиатуры? Ардуино Нано может эмулировать клаву и мышь по USB. |
Цитата:
У меня ардуино уно, его тоже можно сделать HID клавиатурой, но надо перешивать МК который в ардуине выполняет роль UART->USB интерфейса, тоесть в таком варианте мне надо будет использовать целую ардуину а это жирновато. А так я смогу взять атмегу, прошить в нее скетч и собрать отдельно работающий приемник. |
Я покупал здесь в своё время:
http://www.nix.ru/autocatalog/mmedia...ver_52903.html У меня дома два таких комплекта валяется без дела. Работает без дров, видится как HID устр-во. |
Цитата:
|
Я этим вопросом занимался, была софтина со своим драйвером, которая этот девайс по-другому устанавливала и он мог читать коды чужих пультов и им обучаться. Под Windows. Название не помню. :)
|
|
У меня система на андроиде, была бы винда то было бы проще. Вобщем сам отвечу на свой вопрос, вдруг кому пригодится, удалось нажимать кнопки на контроллере с юсб клавы ардуиной при помощи 561КТ3. Осталось найти нужные контакты для нужных кнопок и можно собирать приемник.
|
Цитата:
Есть решение и на PIC, я делал на PIC18f2550, на форум выкладывал. Правда, с ним сложнее, там надо бутлоадер прошивать. Кстати, в Андроид есть нативное решение для чтения ИК сигналов, у меня в Iconbit есть ИК порт. Даже встречал в инете темку как принимать коды неродных пультов при условии, что они поддерживают один из самых распространённых стандартов (4-байтный код). |
Цитата:
|
ВОбщем научился запускать любые приложения но комбинацией двух кнопок, это я про андроид. Для этого установил Быстрый Запуск и там настроил кнопки. В целом все работает, запускаются любые приложения, мультимедиа работает (в PowerAmp) .
Кстати , AngelOfGrief , скрипт у меня получилось повесить в панель задач с помощью SL4A . Но его, как уже писал надо доработать, и с ег опомощью можно будет запукскать приложения одной кнопкой. |
Цитата:
|
вот прога быстрый запуск
https://play.google.com/store/apps/d...ortcutsettings это для смартфонов с хард клавой, в ней можно настроить сочетания клавишь на запуск приложений - кнопка search + "любая буква и цифра" . Но говорят что может не работать на некоторых устройствах, у меня заработало Wexler 7t . вот еще ссылки по этой теме: http://forum.xda-developers.com/show....php?t=2189304 http://www.dummies.com/how-to/conten...hone-apps.html |
спасибо. добавил в шапку
|
Цитата:
А так, все нормально. Буду пользовать!:yes4: |
Цитата:
|
Цитата:
а замыкать одним нажатие две кнопки вроде тоже не проблема так что, классное нажатие |
Цитата:
вот у меня спрашивает юзать гугл поиск или яндекс поиск, а так спросило бы третью программу заглушку. выбрал ее и ничего не происходит |
Отменить функционал кнопки очень просто: удалите её из файла раскладок клавиатуры /system/usr/keylayout/*.kl
Там есть что-то вроде: key 421 SEARCH Надо удалить или закомментировать эту строчку. |
Вопрос по Smart keyboard Pro
Планшет у меня как у всех установлен в горизонтальном положении когда открывается окно клавиатуры, то Smart keyboard Pro занимает 100% экрана 70% занимает окно ввода и 30% 3 или 4 строки с кнопками как это исправить? обычно в нормальных клавиатурах строка ввода занимает одну строчку, а не большую часть экрана. Может у меня где-то не там галка стоит? у всех такая проблема, или у кого-то иначе? |
UP
что, никто клавиатурой на планшете не пользуется? |
Цитата:
|
Цитата:
пройдусь еще раз |
Цитата:
|
Вложений: 2
Интересная клава...
через комп настраиваются кейкоды. на 6-ть кнопок на 4 кнопки Вложение 32870 Вложение 32869 Видео как работает |
Часовой пояс GMT +4, время: 14:11. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot