Показать сообщение отдельно
Старый 25.03.2012, 01:19   #702
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
По умолчанию

Цитата:
Сообщение от 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


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

Последний раз редактировалось AngelOfGrief; 25.03.2012 в 23:14.
AngelOfGrief вне форума