从J2ME获取电池状态

如何通过J2ME获取电池状态?

嗯,唯一的标准方法是通过JSR-256。 移动传感器API。
您可以从http://www.jcp.org/en/jsr/detail?id=256阅读规范

不幸的是,这是最近的,并没有在大多数零售手机中实际实施。

当它发货时,索尼爱立信Satio(或Idou)将拥有它。

编辑:诺基亚N97有JSR-256,它可以安装在诺基亚N85和诺基亚5800上。

编辑: 这是Attilah的另一个JSR-256问题,答案中有一些代码。

我不确定单独通过J2ME是否存在通用方法。

使用诺基亚及其属性 ,您可以( 在J2ME中获取电池电量 ):

System.getProperty("com.nokia.mid.batterylevel"); 

如此处所示 ,generics属性并不总是有效(可以返回null)

某些系统属性可能会返回null,因为早期设备可能不支持这些属性,而某些系统属性要求MIDlet可信,否则返回null …

 import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import javax.microedition.location.*; public class HelloMidp extends MIDlet implements CommandListener { private Command exitCommand; Display display; Form mainForm; public HelloMidp () { exitCommand = new Command("Exit", Command.EXIT, 1); mainForm = new Form ("HelloMidp"); String batt = System.getProperty("batterylevel"); mainForm.append (batt); } protected void startApp() { mainForm.addCommand(exitCommand); mainForm.setCommandListener(this); Display.getDisplay(this).setCurrent(mainForm); } protected void pauseApp() {} protected void destroyApp(boolean bool) {} public void commandAction(Command cmd, Displayable disp) { if (cmd == exitCommand) { destroyApp(false); notifyDestroyed(); } } } 

我确定这取决于你正在处理的手机和操作系统。 没有做任何J2ME开发,我希望有某种“环境”或“系统”服务可以提供这种信息。

本文介绍如何在Sony Ericson手机上使用JSR 256来读取电池电量,网络覆盖范围和一些其他有趣的传感器数据。 这是JP8.3及以后的支持。

实现这一诀窍的代码:

 SensorInfo[] batteryInfo = SensorManager.findSensors("battery_charge", null); SensorConnection sensor = (SensorConnection)Connector.open(batteryInfo[0].getUrl()); Data data[] = sensor.getData(1); String batteryLevel = "Current charge level: "+data[0].getIntValues()[0];