總體介紹:WindowsMobile系統,開放了控制背景燈光的API,通過該API可以實現開啟背景燈、關閉背景燈以及使螢幕閃爍等功能。
開發語言:使用C#語言,在.net compact framework架構下實現。
適用情境:1.當系統長時間運行是,為了節省硬體的電池,可以關閉背景燈,適軟體在後台進行運行。2..net compact framework架構下,如果使用WebService進行資料互動,每次調用WebService時,北京燈都會自動開啟,為了避免改現象的發生,可以在進行資料互動前關閉背景燈光,互動結束後再開啟背景燈,特別適用於通過線程輪循方式實現PUSH技術。
具體實現:
1.封裝API中的DevicePowerNotify方法,代碼如下
[DllImport("coredll.dll")]
private static extern int DevicePowerNotify( string device, PowerState deviceState, int deviceFlags );
2.封裝PowerState枚舉對象
public enum PowerState
{
PwrDeviceUnspecified = -1,
FullOn = 0, // Full on
LowOn = 1, // Low on
Standby = 2, // Standby
Sleep = 3, // Sleep
Off = 4, // Off
PwrDeviceMaximum = 5
};
3.封裝一個對外的介面
public static void SetBacklight( PowerState pwr )
{
DevicePowerNotify( "BKL1:", pwr, 1 );
}
OK,到此為止,基本上已經完成,下面寫一個方法進行測試,方法實現的效果為是基於Windowsmobile的裝置閃爍螢幕
int count = 5;//只進行5次閃爍
while ( count > 0 )
{
SetBacklight( PowerState.Off );
Thread.Sleep( 500 );
SetBacklight( PowerState.FullOn );
Thread.Sleep( 500 );
Application.DoEvents();
count--;
}
看到效果了吧?以上代碼經過測試。