20.04.2013, 13:53 | #1 |
Гуру
Регистрация: 28.12.2009
Возраст: 40
Регион: Украина
Сообщений: 1,084
|
Клавиатура как дополнительные кнопки
Итак, один из самых простых способов добавить дополнительные кнопки в ваш карпк - это подключить к нему клавиатуру.
Способ очень простой и удобный. Его плюсы: 1) клавы стоят не дорого, их несложно найти. 2) клавы имеют разный функционал, бывают с трекболами, тачпадами, мультимедийными кнопками, скриптами и т.д. 3) клавы бывают беспроводными. Очень хороший вариант чтобы спрятать кнопки в руле. И в отличии от ик передатчиков нет нужды организовывать прямую видимость. да и просто меньше проводов - это удобно 4) клавы бывают блютус, а это значит что в вашем планшете даже нет нужды активировать юсб хост. Просто покупайте планшет с блютусом. 5) поддержка клав изначально встроена в андроид и Вам нет нужды че-то ковырять внутри. Правда, у внешних клавиатур был один недостаток. При подключении внешней клавиатуры в андроиде сворачивается экранная. А это не удобно. Благодаря нашим однофорумчанам эту проблему удалось решить. На данный момент решения два: 1) изменение файлов андроида. Большое спасибо Касар. 2) установка альтернативной клавы Smart keyboard Pro. (в ее настройках есть галка "не прятать экранную") Итак, Вы купили/нашли клаву, которая подходит Вашим морально-этническим соображениям. С чего начать? - разберите клавиатуру как правило клавиатура состоит из платы с кучей (порядка 20) контактов и самого блока кнопок - выкидываем или морально прощаемся с блоком кнопок. Он нам не понадобится - подключаем клаву к ПК - вооружаемся проводочком и начинаем прозванивать матрицу клавиатуры для простоты прозвона можно установить программу keyboard tester в моем случае я искал кнопки перемотки треков, поэтому для поиска я использовал запущенный аудио плеер - прозвон проводим методом поочередного замыкания двух контактов матрицы. Причем Вы можете найти на матрице такие кнопки, которые даже не были выведены на Вашей клавиатуре. - припаиваем проводочки к нужным контактам Добавлю пару фоток и распиновку моей клавиатуры. Я использовал какую-то старую блютусную KB-6113, которая валялась на балконе. а вот лекарство, при помощи которого можно запускать приложения сочетанием двух кнопок
__________________
Проект Peugeot 207 - Nexus 7 Последний раз редактировалось wave_is; 11.06.2013 в 10:30. |
20.04.2013, 14:59 | #2 |
Новый Пользователь
Регистрация: 25.03.2013
Возраст: 48
Регион: другой - для добавления сообщить ab
Сообщений: 26
|
есть только одна проблема. все контроллеры встроенные в клавы беспроводные, достаточно большие (физические размеры плат). реально тяжело воткнуть в пульт на руль. особенно в такой. Уже разобрал синезубую китайскую миниклаву и беспроводную нормального размера. Размеры несоизмеримы с блаупунктом.
|
20.04.2013, 15:09 | #3 | |
Гуру
Регистрация: 28.12.2009
Возраст: 40
Регион: Украина
Сообщений: 1,084
|
Цитата:
Но если прикинуть, то в любом руле места должно быть предостаточно. там же целую подушку, пиропатрон умудряются размещать. можно кнопки вывести маленькими проводами, а сам контроллер спрятать где-то поглубже. По крайней мере в теории это должно быть возможно. Тут каждый руль другому рулю рознь.
__________________
Проект Peugeot 207 - Nexus 7 |
|
20.04.2013, 15:25 | #4 |
Новый Пользователь
Регистрация: 25.03.2013
Возраст: 48
Регион: другой - для добавления сообщить ab
Сообщений: 26
|
ну если кнопки на руле уже есть, то это, наоборот, облегчает задачу. а вот если нету и хочется... мне кажется, если я сделаю проводками, то первый немецкий полицай (заметивший, конечно) вгонит меня в долги (мнение неподтвержденное законами и останавливали меня за 13 лет всего один раз)
|
20.04.2013, 19:15 | #5 |
Гуру
Регистрация: 28.12.2009
Возраст: 40
Регион: Украина
Сообщений: 1,084
|
мне кажется самый правильный способ, если кнопок на руле нет, это использовать подрулевые джойстики.
Их реальней всего красиво встроить в дизайн
__________________
Проект Peugeot 207 - Nexus 7 |
22.05.2013, 09:08 | #6 |
Старший Пользователь
Регистрация: 05.04.2013
Возраст: 50
Город: Казань
Регион: 16, 116
Машина: X-Trail T30
Сообщений: 181
|
запилил маленький клавиатурный модуль от клавиатуры A4tech GK770D. 5 медиа кнопок (play/pause, next, previous, mute, stop) на картинке он посередине верхнего ряда поставил его на подлокотник левой двери. долго боролся с keylayout файлами. хотел добиться переключения окон. Итог:
1. APP_SWITCH, RECENT_APP, KEY_CYCLEWINDOWS такие коды не работают!!! 2. эта инструкция реально рабочая. 3. если прописать в файле .kl такую строку, то это будет переключать окна, ну почти : key <код клавиши> TAB ALT
__________________
Ровной дороги! мой проект: X-Trail T30 + Nexus7 |
23.05.2013, 09:24 | #7 |
Новый Пользователь
Регистрация: 10.06.2009
Возраст: 47
Город: Екатеринбург
Регион: 66, 96
Машина: 99,Хонда
Сообщений: 13
|
Как же все таки настроить запуск приложения по нажатию клавиши на клавиатуре?
|
23.05.2013, 12:03 | #8 | |
Старший Пользователь
Регистрация: 17.01.2009
Возраст: 49
Город: Москва
Регион: 77, 97, 99, 177
Машина: Audi A5 3.2FSI Q, Porsche 996 Turbo
Сообщений: 669
|
Цитата:
камеры подсовывать 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.in tent.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 запускает приложение из командной строки. Данный скрипт успешно работает, но если в девайсе мало памяти, ядро со временем его убьёт. В Андроиде чтобы процесс не убивался, его нужно поместить в область уведомлений (строка сверху), но я не разобрался как это сделать. |
|
24.05.2013, 02:05 | #9 |
Гуру
Регистрация: 20.07.2009
Город: Минск
Регион: Беларусь
Сообщений: 1,543
|
есть еще один способ - в медиаплеерах с Андроидом есть встроенное приложение или сервис, который мониторит клаву или пульт, эмулирующий клаву и запускает одно из 4 настроенных приложений.
Вот только как его выцепить - я лично не нашел. Это приложение решило бы кчу проблем. Я сейчас пошел другим путем - слабал аналог резистивных кнопок (у меня в магнитоле матрица 4x4), завел их в Ардуину через аналоговый вход (АЦП), написал скетч для обработки - а дальше дело техники - хочешь отправляй коды клавиш через эмулятор USB -клавы (стандартная фича современных ардуин), хочешь запускай куски кода в самой ардуине...
__________________
Мой проект: Citroen Xsara Android CarPC |
24.05.2013, 02:22 | #10 | |
Старший Пользователь
Регистрация: 17.01.2009
Возраст: 49
Город: Москва
Регион: 77, 97, 99, 177
Машина: Audi A5 3.2FSI Q, Porsche 996 Turbo
Сообщений: 669
|
Цитата:
Хотя андроид по нажатию кнопки может вызывать: камеру, почту, область уведомлений, поиск, завершение работы, видеоплеер, аудиоплеер (причём только "родной"), галерею. Это те коды, которые работают в *.kl файле у меня: CAMERA, EMAIL, NOTIFICATION, SEARCH, POWER, VIDEO, MUSIC, PICTURE. Можно попробовать покопать в сторону замены этих APK другими. Но тупое переименование вызывает ошибку. |
|
Здесь присутствуют: 2 (пользователей: 0 , гостей: 2) | |
|
|