PCCar.ru - Ваш автомобильный компьютер

Вернуться   PCCar.ru - Ваш автомобильный компьютер > MP3Car ТехИнфа > AndroidCar > Дополнительные устройства

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2013, 13:53   #1
wave_is
Гуру
 
Регистрация: 28.12.2009
Возраст: 40
Регион: Украина
Сообщений: 1,084
wave_is will become famous soon enough
По умолчанию Клавиатура как дополнительные кнопки

Итак, один из самых простых способов добавить дополнительные кнопки в ваш карпк - это подключить к нему клавиатуру.
Способ очень простой и удобный.
Его плюсы:
1) клавы стоят не дорого, их несложно найти.
2) клавы имеют разный функционал, бывают с трекболами, тачпадами, мультимедийными кнопками, скриптами и т.д.
3) клавы бывают беспроводными. Очень хороший вариант чтобы спрятать кнопки в руле. И в отличии от ик передатчиков нет нужды организовывать прямую видимость.
да и просто меньше проводов - это удобно
4) клавы бывают блютус, а это значит что в вашем планшете даже нет нужды активировать юсб хост. Просто покупайте планшет с блютусом.
5) поддержка клав изначально встроена в андроид и Вам нет нужды че-то ковырять внутри.

Правда, у внешних клавиатур был один недостаток. При подключении внешней клавиатуры в андроиде сворачивается экранная. А это не удобно.
Благодаря нашим однофорумчанам эту проблему удалось решить.
На данный момент решения два:
1) изменение файлов андроида. Большое спасибо Касар.
2) установка альтернативной клавы Smart keyboard Pro. (в ее настройках есть галка "не прятать экранную")

Итак, Вы купили/нашли клаву, которая подходит Вашим морально-этническим соображениям. С чего начать?
- разберите клавиатуру
как правило клавиатура состоит из платы с кучей (порядка 20) контактов и самого блока кнопок
- выкидываем или морально прощаемся с блоком кнопок. Он нам не понадобится
- подключаем клаву к ПК
- вооружаемся проводочком и начинаем прозванивать матрицу клавиатуры
для простоты прозвона можно установить программу keyboard tester
в моем случае я искал кнопки перемотки треков, поэтому для поиска я использовал запущенный аудио плеер
- прозвон проводим методом поочередного замыкания двух контактов матрицы. Причем Вы можете найти на матрице такие кнопки, которые даже не были выведены на Вашей клавиатуре.
- припаиваем проводочки к нужным контактам

Добавлю пару фоток и распиновку моей клавиатуры. Я использовал какую-то старую блютусную KB-6113, которая валялась на балконе.

а вот лекарство, при помощи которого можно запускать приложения сочетанием двух кнопок

Последний раз редактировалось wave_is; 11.06.2013 в 10:30.
wave_is вне форума   Ответить с цитированием
Старый 20.04.2013, 14:59   #2
Kamik
Новый Пользователь
 
Регистрация: 25.03.2013
Возраст: 48
Регион: другой - для добавления сообщить ab
Сообщений: 26
Kamik is on a distinguished road
По умолчанию

есть только одна проблема. все контроллеры встроенные в клавы беспроводные, достаточно большие (физические размеры плат). реально тяжело воткнуть в пульт на руль. особенно в такой. Уже разобрал синезубую китайскую миниклаву и беспроводную нормального размера. Размеры несоизмеримы с блаупунктом.
Kamik вне форума   Ответить с цитированием
Старый 20.04.2013, 15:09   #3
wave_is
Гуру
 
Регистрация: 28.12.2009
Возраст: 40
Регион: Украина
Сообщений: 1,084
wave_is will become famous soon enough
По умолчанию

Цитата:
Сообщение от Kamik Посмотреть сообщение
есть только одна проблема. все контроллеры встроенные в клавы беспроводные, достаточно большие (физические размеры плат). реально тяжело воткнуть в пульт на руль. особенно в такой. Уже разобрал синезубую китайскую миниклаву и беспроводную нормального размера. Размеры несоизмеримы с блаупунктом.
у меня кнопок на руле нет. мне проще.
Но если прикинуть, то в любом руле места должно быть предостаточно. там же целую подушку, пиропатрон умудряются размещать.
можно кнопки вывести маленькими проводами, а сам контроллер спрятать где-то поглубже.
По крайней мере в теории это должно быть возможно.

Тут каждый руль другому рулю рознь.
wave_is вне форума   Ответить с цитированием
Старый 20.04.2013, 15:25   #4
Kamik
Новый Пользователь
 
Регистрация: 25.03.2013
Возраст: 48
Регион: другой - для добавления сообщить ab
Сообщений: 26
Kamik is on a distinguished road
По умолчанию

ну если кнопки на руле уже есть, то это, наоборот, облегчает задачу. а вот если нету и хочется... мне кажется, если я сделаю проводками, то первый немецкий полицай (заметивший, конечно) вгонит меня в долги (мнение неподтвержденное законами и останавливали меня за 13 лет всего один раз)
Kamik вне форума   Ответить с цитированием
Старый 20.04.2013, 19:15   #5
wave_is
Гуру
 
Регистрация: 28.12.2009
Возраст: 40
Регион: Украина
Сообщений: 1,084
wave_is will become famous soon enough
По умолчанию

мне кажется самый правильный способ, если кнопок на руле нет, это использовать подрулевые джойстики.
Их реальней всего красиво встроить в дизайн
wave_is вне форума   Ответить с цитированием
Старый 22.05.2013, 09:08   #6
timtman
Старший Пользователь
 
Аватар для timtman
 
Регистрация: 05.04.2013
Возраст: 50
Город: Казань
Регион: 16, 116
Машина: X-Trail T30
Сообщений: 181
timtman has a spectacular aura abouttimtman has a spectacular aura about
По умолчанию

запилил маленький клавиатурный модуль от клавиатуры 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
timtman вне форума   Ответить с цитированием
Старый 23.05.2013, 09:24   #7
segamitich
Новый Пользователь
 
Регистрация: 10.06.2009
Возраст: 47
Город: Екатеринбург
Регион: 66, 96
Машина: 99,Хонда
Сообщений: 13
segamitich has a spectacular aura aboutsegamitich has a spectacular aura aboutsegamitich has a spectacular aura about
По умолчанию

Как же все таки настроить запуск приложения по нажатию клавиши на клавиатуре?
segamitich вне форума   Ответить с цитированием
Старый 23.05.2013, 12:03   #8
AngelOfGrief
Старший Пользователь
 
Регистрация: 17.01.2009
Возраст: 49
Город: Москва
Регион: 77, 97, 99, 177
Машина: Audi A5 3.2FSI Q, Porsche 996 Turbo
Сообщений: 669
AngelOfGrief is a jewel in the roughAngelOfGrief is a jewel in the roughAngelOfGrief is a jewel in the rough
По умолчанию

Цитата:
Сообщение от segamitich Посмотреть сообщение
Как же все таки настроить запуск приложения по нажатию клавиши на клавиатуре?
Насколько показывают мои копания, нельзя. Я даже пробовал переименовывать предустановленные приложения (например, вместо APK
камеры подсовывать 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 запускает приложение из командной строки.

Данный скрипт успешно работает, но если в девайсе мало памяти, ядро со временем его убьёт. В Андроиде чтобы процесс не убивался, его нужно поместить в область уведомлений (строка сверху), но я не разобрался как это сделать.
AngelOfGrief вне форума   Ответить с цитированием
Старый 24.05.2013, 02:05   #9
s.m.
Гуру
 
Регистрация: 20.07.2009
Город: Минск
Регион: Беларусь
Сообщений: 1,543
s.m. is a splendid one to beholds.m. is a splendid one to beholds.m. is a splendid one to beholds.m. is a splendid one to beholds.m. is a splendid one to beholds.m. is a splendid one to beholds.m. is a splendid one to behold
По умолчанию

есть еще один способ - в медиаплеерах с Андроидом есть встроенное приложение или сервис, который мониторит клаву или пульт, эмулирующий клаву и запускает одно из 4 настроенных приложений.
Вот только как его выцепить - я лично не нашел. Это приложение решило бы кчу проблем.
Я сейчас пошел другим путем - слабал аналог резистивных кнопок (у меня в магнитоле матрица 4x4), завел их в Ардуину через аналоговый вход (АЦП), написал скетч для обработки - а дальше дело техники - хочешь отправляй коды клавиш через эмулятор USB -клавы (стандартная фича современных ардуин), хочешь запускай куски кода в самой ардуине...
__________________
Мой проект: Citroen Xsara Android CarPC
s.m. вне форума   Ответить с цитированием
Старый 24.05.2013, 02:22   #10
AngelOfGrief
Старший Пользователь
 
Регистрация: 17.01.2009
Возраст: 49
Город: Москва
Регион: 77, 97, 99, 177
Машина: Audi A5 3.2FSI Q, Porsche 996 Turbo
Сообщений: 669
AngelOfGrief is a jewel in the roughAngelOfGrief is a jewel in the roughAngelOfGrief is a jewel in the rough
По умолчанию

Цитата:
Сообщение от s.m. Посмотреть сообщение
есть еще один способ - в медиаплеерах с Андроидом есть встроенное приложение или сервис, который мониторит клаву или пульт, эмулирующий клаву и запускает одно из 4 настроенных приложений.
А как оно это делает? Сколько я читал про андроид в зарубежных форумах, везде пишут, что в андроиде клаву может мониторить только текущий activity.

Хотя андроид по нажатию кнопки может вызывать: камеру, почту, область уведомлений, поиск, завершение работы, видеоплеер, аудиоплеер (причём только "родной"), галерею. Это те коды, которые работают в *.kl файле у меня: CAMERA, EMAIL, NOTIFICATION, SEARCH, POWER, VIDEO, MUSIC, PICTURE.

Можно попробовать покопать в сторону замены этих APK другими. Но тупое переименование вызывает ошибку.
AngelOfGrief вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 2 (пользователей: 0 , гостей: 2)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 03:42.


Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot