Получить статус батареи от J2ME - PullRequest
2 голосов
/ 03 июня 2009

Как узнать состояние батареи через J2ME?

Ответы [ 4 ]

3 голосов
/ 03 июня 2009

Ну, единственный стандартный способ сделать это - через JSR-256. Мобильный сенсорный API.
Вы можете прочитать спецификации от http://www.jcp.org/en/jsr/detail?id=256

К сожалению, он очень недавний и еще не реализован в большинстве розничных телефонов.

Когда он появится в продаже, он будет у Sony Ericsson Satio (или Idou).

Изменить: Nokia N97 имеет JSR-256 и может быть установлен на Nokia N85 и Nokia 5800.

Редактировать: Вот другой вопрос Аттилы JSR-256 с некоторым кодом в ответе.

2 голосов
/ 03 июня 2009

Я не уверен, что есть только общий путь через J2ME.

С Nokia и ее свойствами вы можете ( Получить уровень заряда батареи в J2ME ):

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

Универсальное свойство , как показано здесь , не всегда работает (может возвращать ноль)

Некоторые системные свойства могут возвращать нуль, поскольку они могут не поддерживаться на ранних устройствах, а некоторые системные свойства требуют, чтобы мидлет был доверенным, в противном случае возвращать ноль ...

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 голосов
/ 16 июля 2009

В этой статье описано, как использовать JSR 256 на телефонах Sony Ericson для считывания уровня заряда батареи, покрытия сети и некоторых других интересных данных датчиков. Это поддержка от 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];
0 голосов
/ 03 июня 2009

Я уверен, что это зависит от того, с каким телефоном и ОС вы работаете. Не занимаясь разработкой J2ME, я ожидаю, что будет какая-то «среда» или «системная» служба, которая будет предоставлять такую ​​информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...