2009-06-03 70 views

回答

3

那么,这样做的唯一标准方法是通过JSR-256。移动传感器API。
您可以从http://www.jcp.org/en/jsr/detail?id=256

的规格书中阅读不幸的是,它是非常新的,并没有在大多数零售手机中实际实施。

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

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

编辑:Here's Attilah's other JSR-256 question with some code in the answer.

2

我不确定是否有通过J2ME的通用方法。

随着Nokia and its properties,你可以(Get Battery Level in J2ME):

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

通用属性,as illustrated here,并不总是有效(可以返回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(); 
     } 
    } 
} 
+0

感谢。我还想知道是否可以使用诺基亚套件检测电源中断事件。 – Attilah 2009-06-03 12:09:49

+0

AFAIK,并非所有诺基亚手机都提供此功能。如果你拿其他手机的情况下,有些甚至可能会要求你签署构建。实现中的许多差异导致了所谓的“设备碎片化”。可惜的是,手机厂商仍然在讨论这个问题,因为MIDP 1.0 – Ram 2009-06-03 18:19:02

0

我敢肯定,这取决于什么手机和操作系统您处理上用。没有做过任何J2ME开发,我希望能够提供某种“环境”或“系统”服务来提供这类信息。

0

article描述了如何在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];