PDA

Просмотр полной версии : AIR, как отловить нажатие клавиши закрытия приложения на Android?


_KVA_
07.07.2013, 22:52
как отловить нажатие клавиши закрытия приложения на Android?
например в Samsung Galaxy S есть клавиша по середке, как отловить ее нажатие?
http://townden.com/forum-pictures/samsung_button.jpg
пробовал через NativeApplication.nativeApplication.addEventListener(KeyboardEvent.KEY_DOWN, handleKeys);
но событие не всплывает :( просто сворачивается приложение без никаких событий клавишных

Astraport
07.07.2013, 23:06
http://andrewrost.wordpress.com/2011/03/24/froyo-air-2-5-%E2%80%93-capture-back-and-menu-button/

_KVA_
08.07.2013, 02:26
Astraport спасибо за ссылочку но событие KeyboardEvent.KEY_DOWN не ловит нажатие этой чудо-средней клавиши :(

vivado
11.07.2013, 16:53
А ты попробуй прописать условия на все остальные варианты (BACK, MENU. SEARCH) а на Else останется твоя чудо-клавиша. Наверное как то так

function backToMenu(e:KeyboardEvent):void
{
e.preventDefault();

if(e.keyCode == Keyboard.BACK)
{

}
else if(e.keyCode == Keyboard.MENU)
{

}
else if(e.keyCode == Keyboard.SEARCH)
{

}
else {
//НАЖАТА ЧУДО-КНОПКА
}
}

_KVA_
11.07.2013, 17:02
как вариант ... но не факт что у кого-то будет больше клавиш дополнительных, кроме "чудо-клавиши" :)

vivado
11.07.2013, 17:06
как вариант ... но не факт что у кого-то будет больше клавиш дополнительных, кроме "чудо-клавиши" :)

Ну ХЗ, может оно будет отлавливать еще и кнопки "ВКЛ/ВЫКЛ" и "Громкость"
Нужно чтобы ктото проверил мою теорию )))

Котяра
11.07.2013, 17:10
private function initAppHandlers():void {
NativeApplication.nativeApplication.addEventListener(KeyboardEvent.KEY_DOWN, nativeKeyboard_keyDownHandler);
NativeApplication.nativeApplication.addEventListener(Event.DEACTIVATE, deactivateHandler)
}
private function nativeKeyboard_keyDownHandler(event:KeyboardEvent):void {
switch (event.keyCode) {
case Keyboard.BACK:
event.preventDefault();
NativeApplication.nativeApplication.exit();
break;
case Keyboard.MENU:
trace("Menu key is pressed.");
break;
case Keyboard.SEARCH:
trace("Search key is pressed.");
break;
}
}

private function deactivateHandler(event:Event):void {
// закрываем в андроиде, а не в эмуляторе
if (Capabilities.playerType.search("Linux") != -1)
NativeApplication.nativeApplication.exit();
}