Цитата:
Сообщение от tsynik
Работает, да, но это больше для программирования нужно, запускать приложения или настройки проще тем же Tasker-ом, или Autostarts, они извлекают все активные в системе Activities, и их можно выбирать.
|
Да, но мне нужно по событиям клавиатуры запускать заданные приложения, а насколько я знаю (и это подтверждается доками Таскера), что он умеет читать только кнопки мультимедиа, т.к. чтение клавиатуры возможно только текущим окном, а обычно недоступно (для безопасности - против кейлоггеров).
Я реализовал это .sh скриптом, вот он:
#!/system/bin/sh
while true # бесконечный цикл
do
s=$(getevent -v0 -c1) # считываем одно событие из всех устройств ввода
# -v0 чтобы он не сыпал кучей ненужного мусора
s=$(echo $s | awk '{print $4}') #выделяем код клавиши
case $s in # выполняем нужную команду
00070043) am start -n com.maxmpz.audioplayer/.PlayListActivity # кл. F10
;;
0007003b) am start -n ru.yandex.yandexmaps/.MapActivity # кл. F2
;;
0007003d) am start -a android.intent.action.MAIN -c android.intent.category.HOME # переход на домашний экран
;;
esac
sleep 1 # задержка для исключения двойного срабатывания
done
Работает четко.

Если приложение уже запущено, оно просто выводится на передний план, а не запускается заново.