触摸屏锁屏(Touch Lock)功能实现 收藏
触摸屏锁屏(Touch Lock)功能实现
--作者:赖玉平(Auly)aulyp@163.com
1 、关闭 TOUCH
对应应用程序中的锁屏功能,提供该接口,具体实现是在 PDD 中完成,当接收到应用程序关闭触摸屏的请求后,将设备 上的触摸屏中断关闭,这样触摸屏将不起作用;一直等到请求解锁命令后才重新将中断打开,恢复触摸屏功能。
应用程序通知底层驱动的流程为 :在 MDD 中有个线程,在等待锁屏 / 解锁的请求(事件),应用程序通过 IOCTRL 接口,向平台管理驱动(为了管理平台,写一个专门的驱动程序,用来进行各驱动的通信与管理,主要是为了方便与SHELL接口) 发送锁屏 / 解锁请求, 平台管理驱动 接收到后将通过 SetEvent ,通知 MDD 要进行锁屏 / 解锁请求, MDD 接收到后,通过设置全局变量 g_bMmiLockTouchScreenFlag 以及调用 PDD 接口函数 TouchPanelPowerHandler() 来实现该功能。
实现:
在public - à tchmain à tchmain.c
dwWaitEvent++;
haWaitEvent[0] = ghMonitorEvent;
// create lock touch screen events_
hLockTouchScreenEvent =CreateEvent(NULL,FALSE,FALSE,LOCKTOUCHSCREEN_EVENT_NAME);
if(NULL == s_hLockTouchScreenEvent)
{
RETAILMSG(TRUE, (TEXT("[T]can't create lock touch screen event!/r/n")));
}
Else
{
dwWaitEvent++;
haWaitEvent[1] = s_hLockTouchScreenEvent;
}
// create unlock touch screen event
s_hUnlockTouchScreenEvent =
CreateEvent(NULL, FALSE, FALSE, UNLOCKTOUCHSCREEN_EVENT_NAME);
if(NULL == s_hUnlockTouchScreenEvent)
{
RETAILMSG(TRUE, (TEXT("[T]can't create unlock touch screen event!/r/n")));
}else{
dwWaitEvent++;
haWaitEvent[2] = s_hUnlockTouchScreenEvent;
}