2013-11-29 1 views
0

Создал сервисное приложение для имитации ключей. Переопределите класс Thread для класса MyThread для имитации ключей.E_PRIVILEGE_DENIED результат для GenerateKeyEvent() в потоке

Код сниппета:

Object* 
MyThread::Run(void) 
{ 
    AppLog("MyThread :: Object* Run(void)"); 

    Tizen::Ui::KeyCode keyToSimulate = Tizen::Ui::KEY_A; 

    result r = Tizen::Ui::SystemUtil::GenerateKeyEvent(Tizen::Ui::KEY_EVENT_TYPE_PRESSED, keyToSimulate); 
    AppLog("KEY_EVENT_TYPE_PRESSED [%d] and result :: %s", keyToSimulate, GetErrorMessage(r)); 

    r = Tizen::Ui::SystemUtil::GenerateKeyEvent(Tizen::Ui::KEY_EVENT_TYPE_RELEASED, keyToSimulate); 
    AppLog("KEY_EVENT_TYPE_RELEASED [%d] and result :: %s", keyToSimulate, GetErrorMessage(r)); 

    return null; 
} 

В OnAppInitialized() создается экземпляр Thread и начал, как показано ниже:

mpMyThread = new MyThread; 

mpMyThread->Construct(); 

mpMyThread->Start(); 

результат GenerateKeyEvent показывает E_PRIVILEGE_DENIED. Мой вопрос здесь: у класса MyThread есть такие же привилегии, как у родителя? Если нет, то как я могу отправлять события в класс MyThread?

Спасибо,

Анил

+0

Вы пытались отправить это событие в OnUserReceivedN() –

ответ

0

Tizen :: Ui :: SystemUtil :: GenerateKeyEvent() является привилегированным API. Вы должны иметь «http://tizen.org/privilege/inputmanager» в манифесте вашего приложения. И уровень привилегий API - это «платформа». У вас также должна быть привилегированная подпись на уровне платформы, чтобы подписать ваше приложение.

+0

Хотя я добавил эти привилегии, я столкнулся с этой проблемой. – rakar