Yes I’m bored again, and my head was spinning with some new ideas over the weekend, on how to enhance the usability of my recent new found toy.
Sometimes, you wonder if Microsoft really knows what they are doing when they build their version of mobile phone platform. Case in point; They created the LED notification ability so that users can still be alerted on missed events such as unread SMS or missed call after a period of time (from 5 minutes to indefinitely), and yet the LED stops blinking 1 minute after the event happens.
Thinking that I could overcome this “shortcoming” easily with a little utility, I realized it is not as easy as it appears to be.
The answer is very simple, although the rationale behind can be quite mind boggling. You see the reason why the default LED stop flashing after 1 minute, is due to the ‘sophisticated’ power management found in Windows Mobile 6 devices, specifically the Professional edition (or what we used to call PocketPC Phone edition). MikeCal from MSDN blog explained it very well, and I do not want to take any credit away from him by explaining the power intricacy here. You can read this blog entry and here to seek that enlightenment. If you are lazy, then this quote summarises, from lay man perspective, the key reason behind my “LED” problem;
“Sleep is the main way that PocketPCs conserve power. So the PocketPC is always trying to fall asleep. He’s like a bored security guard on the graveyard shift staring at a TV screen with his eyes drooping, only to jolt himself back awake every few minutes. In Settings you get to tell your PocketPC how long to stay awake. Three minutes is typical. And then you’ve got to actively work to keep him up. If three minutes go by without you pressing any buttons or touching the screen, he’ll fall back to sleep. (You can put him right to sleep by pressing the power button.) Apps that want to keep him awake longer need to be proactive about it. There’s a function apps call (SystemIdleTimerReset) every 30 seconds when they want the system to stay awake. This is how Media Player keeps the music playing for longer than three minutes. This is also how Active Sync can make sure it syncs everything. And this is how PIE can download huge files without the system falling asleep in the middle of them. Etc.“
In nutshell, in order for the L.E.D to continue blinking as I desire, I need to ensure the device does not get into sleep mode (or suspend mode). And essentially this is why we have no problem with SmartPhone (or WM6 Standard Edition) because the power management is based on ‘Always On’ concept.
Nevertheless, the utility program is finally in its alpha release, and with some luck, I should be able to publish it out for beta testing by end of this week 😉