Controlling screen saver in MIDlets on Symbian
Article Metadata
Compatibility
Article
Overview
Controlling screen saver in MIDlets on S60 devices
Description
It is now possible to prevent screen saver appearance in MIDlets by using the DeviceControl class of Nokia UI API.
This functionality is available starting from S60 3rd Edition, Feature Pack 1 devices, although some early S60 3rd Edition, FP1 releases do not support this. Also the AT&T/Cingular-branded S60 3rd Edition devices support this functionality.
Solution
Calling the setLights() function once will delay screen saver appearance but does not disable it permanently. Thus, it is needed to call the setLights() function repeatedly, for example, in a separate thread. The delay between two calls should be smaller than the timeout of the screen saver (usually something like 15 seconds or more).
Note that calling setLights() only once will still keep the set light level until the MIDlet is closed or the function is called again with a different level. The looping is only needed if the screen saver should be disabled.
Here is a piece of code that calls the setLights() function in a loop and thus prevents the screen saver from appearing:
import com.nokia.mid.ui.DeviceControl;
// ...
// run() function in a Thread/Runnable
public void run()
{
// ...
while( true )
{
DeviceControl.setLights( 0, 100 );
Thread.sleep( 2000 ); // 2 seconds
}
// ...
}


(no comments yet)