触摸屏锁屏(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;
}