Я не знаю о KIOSK MODE.
Но я напишу об аппаратном переопределении ключа. Прежде всего, вы можете найти информацию об аппаратном ключе в ссылке https://developer.tizen.org/development/ui-practices/native-application/efl/hardware-input-handling/grabbing-hardware-key-events
Вы можете найти имя аппаратного ключа, как показано ниже. и все названия оборудования указаны ниже.
https://developer.tizen.org/development/ui-practices/native-application/efl/hardware-input-handling/grabbing-hardware-key-events#keystring
#incldue <Ecore.h>
#include <efl_extention.h>
static void
create_base_gui(appdata_s *ad)
{
:
// evas_object_smart_callback_add(ad->win, "delete,request", win_delete_request_cb, NULL);
// eext_object_event_callback_add(ad->win, EEXT_CALLBACK_BACK, win_back_cb, ad);
eext_win_keygrab_set(ad->win, "XF86Home");
:
}
static Eina_Bool
_key_down_cb (void *data, int type, void *ev)
{
Ecore_Event_Key *event = ev;
dlog_print(DLOG_ERROR, LOG_TAG, "key is %s", event->key);
// Let the event continue to other callbacks which have not been called yet
return ECORE_CALLBACK_DONE;
}
static bool
app_create(void *data)
{
appdata_s *ad = data;
create_base_gui(ad);
:
ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _key_down_cb, NULL);
}
Этот пример кода на основе BasicUi онлайн пример кода в SDK.
Используя ecore_event_handler_add(), мы можем получить обратный вызов, но мы не можем переопределить событие. если мы нажмем кнопку «домой», мы получим обратный вызов, но мы не сможем остановить приложение от закрытия – uday
Я проверил образец проекта под названием BasicUi. вставить код 'eext_win_keygrab_set (ad-> win, "XF86Home");' в приложении create. и удалите smart_callback и event_callback. и вы можете захватить главный ключ без завершения приложения. Я добавил еще ответ в предыдущем. –
eext_win_keygrab_set (ad-> win, «XF86Home»); метод в недоступном для носки. IDE показывает ошибку, подобную этой «неявной декларации функции», eext_win_keygrab_set »недействительна в C99 [-Werror, -Wimplicit-function-declaration]» – uday