2009-06-03 15 views

答えて

3

これを行うための唯一の標準的な方法は、JSR-256です。モバイルSensor API。
仕様を読むことができますhttp://www.jcp.org/en/jsr/detail?id=256

残念ながら、それは非常に最近のものであり、ほとんどの小売電話ではまだ実装されていません。

出荷時にSony Ericsson Satio(またはIdou)が持っています。

編集:ノキアN97は、JSR-256を持っており、それがノキアN85およびNokia 5800にインストールすることができます

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

+0

ありがとう。 – Attilah

2

私はJ2MEだけで一般的な方法があるかどうかはわかりません。 Nokia and its properties

、あなたがすることができます(Get Battery Level in J2ME):

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

一般的なプロパティ、as illustrated here、常に(ヌルを返すことができます)は動作しません

システムプロパティの一部かもしれません初期のデバイスではサポートされていない可能性があるため、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

感謝を。私はまた、Nokiaのセットで電源遮断イベントを検出することが可能かどうかを知りたいと思います。 – Attilah

+0

AFAIK、すべてのノキアの携帯電話がこれを提供するわけではありません。他の携帯電話の場合は、ビルドに署名する必要がある場合もあります。実装の違いによって、「デバイスの断片化」と呼ばれるものが生じました。残念なのは、MIDP 1.0の日以降、携帯電話のベンダーはまだこの問題について議論しているということです。 – Ram

0

私はそれはあなたが扱っているものを、電話やOSに依存します確信していますと。どんなJ2ME開発もしていないので、そのような情報を提供する何らかの「環境」サービスや「システム」サービスが存在することが予想されます。

0

このarticleは、ソニーエリクソンの携帯電話で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]; 
関連する問題