Как обрабатывать аппаратную кнопку "Назад" на платформе Tizen с помощью библиотеки EFL
Я использую библиотеку EFL для разработки приложений для платформы Tizen. Мне нужно реализовать обработчик событий для аппаратной кнопки "Назад".
В нативном API Tizen это делается довольно просто. Но я понятия не имею, как я могу сделать это в библиотеке EFL.
Я попытался сделать это следующим образом:
evas_object_event_callback_add( obj, EVAS_CALLBACK_KEY_DOWN, on_key_down, NULL );
Но это не работает.
Кто-нибудь может мне помочь?
4 ответа
Вместо EVAS_CALLBACK_KEY_DOWNand
evas_object_event_callback_add () `,
- использование
ea_object_event_callback_add
- использование
EA_CALLBACK_BACK
для кнопки назад - а также
EA_CALLBACK_MORE
для кнопки меню, но вам нужно включить один заголовочный файл, к сожалению, я забыл имя файла заголовка что-то вроде efl-util.h или что-то, вы можете сделать поиск в файлах заголовка
Пытаться
Ecore_Event_Handler *handler;
handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, hardware_key_down_cb, NULL);
В функции обратного вызова hardware_key_down_cb() проверьте имя ключа 'XF86Stop' Ecore_Event_Key для обработки события возврата ключа.
AFAIK дело в том, что EFL использует очереди для обработки событий. Это означает, что обратные вызовы вызываются один за другим: первый должен возвращать PASS_ON (или что-то еще) для следующего обратного вызова для того же события, которое будет запущено.
Таким образом, может быть другой обратный вызов, который не разрешает отправку события.
Используйте eext_object_event_callback_add(Evas_Object * obj,eext_callback_type type,callback_fun,NULL) и в функции обратного вызова вы можете написать свое требование