(Difference between revisions)

Checking battery level in Java ME

From Nokia Developer Wiki
Jump to: navigation, search
Forum Nokia KB (Talk | contribs)
m (Protected "Checking battery level in Java ME" [edit=sysop:move=sysop])
Forum Nokia KB (Talk | contribs)

Revision as of 14:43, 9 December 2008

Article Metadata
Tested with
Devices(s): Nokia E70, Nokia N78
Platform(s): S60 3rd Edition, S60 3rd Edition, FP1, S60 3rd Edition, FP2
Series 40
Series 40 DP 2.0
Series 40 DP 1.1
Nokia Belle
Java Runtime 2.3 for Symbian
Keywords: java.lang.System.getProperty, com.nokia.mid.batterylevel
Created: (30 Oct 2008)
Last edited: Forum Nokia KB (09 Dec 2008)


This code snippet demonstrates how to retrieve current battery level.

Application retrieves system property com.nokia.mid.batterylevel, which contains current battery level in percentage, and displays it.

Note that in Series 40 platform, only signed MIDlets under operator domain can retrieve this information.

Source file: BatteryLevel.java

import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.StringItem;
import javax.microedition.midlet.MIDlet;
public class BatteryLevel extends MIDlet implements CommandListener{
private Display display;
private Form form;
private Command exitCommand;
private Command refreshCommand;
private StringItem level;
* Constructor. Constructs the object and initializes displayables.

public BatteryLevel() {
form = new Form("Battery level.");
exitCommand = new Command("Exit", Command.EXIT, 2);
refreshCommand = new Command("Refresh", Command.OK, 1);
level = new StringItem("", "");
display = Display.getDisplay(this);
* From MIDlet.
* Called when the MIDlet is started.

public void startApp() {
// No implementation required.
* From MIDlet.
* Called to signal the MIDlet to enter the Paused state.

public void pauseApp() {
// No implementation required.
* From MIDlet.
* Called to signal the MIDlet to terminate.
* @param unconditional whether the MIDlet has to be unconditionally
* terminated

public void destroyApp(boolean unconditional) {
// No implementation required
* From CommandListener.
* Called by the system to indicate that a command has been invoked on a
* particular displayable.
* @param cmd the command that was invoked
* @param displayable the displayable where the command was invoked

public void commandAction(Command c, Displayable d) {
if (c == refreshCommand) {
} else if (c == exitCommand) {
* Called to read current battery level.

private void checkBatteryLevel() {
String property = System.getProperty("com.nokia.mid.batterylevel");
if (property == null) {
level.setText("Unable to retrieve current battery level.\n" +
"It's only available for signed midlets " +
"under operator domain.");
} else {
level.setLabel("Current battery level:");


This code will display current battery level in percentage.

Supplementary material

You can see source file and executable application in attached zip archive. Archive is available for download at Media:Checking_battery_level_in_J2ME.zip

224 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.


Thank you!

We appreciate your feedback.