如何才能检查键盘锁事件?
- 开发伙伴平台:
S60 3rd Edition
- 详细描述
我们通过window server请求一个单独的事件,即可监控键盘锁的开启与关闭。
为了获得这些事件,首先我们需要调用RWsSession::EventReady(),EventReady()是一个异步方法,所以自然是被活动对象所调用(即从CActive派生的对象):
iCoeEnv->WsSession().EventReady( &iStatus ); SetActive();
当请求完成后,CActive::RunL()即被调用,此时可通过RWsSession::GetEvent()读取到事件。
相关的事件类型如下(在eikon.hrh中有所定义):
EEikKeyLockEnabled = 1110 EEikKeyLockDisabled = 1111
下面是RunL()中一段示例代码:
void CMyEventListener::RunL() { if(iStatus == KErrNone) { // get the event TWsEvent wsEvent; iCoeEnv->WsSession().GetEvent(wsEvent); switch( wsEvent.Type() ) { case EEikKeyLockEnabled: { // keylock was enabled break; } case EEikKeyLockDisabled: { // keylock was disabled break; } case EEventNull: default: break; } // request next event iCoeEnv->WsSession().EventReady( &iStatus ); SetActive(); } }