Из обзора спецификаций JSR:
(вы можете поискать примеры кода, начиная с Приложения D самой спецификации, последней версии JavaME SDK, веб-сайта Sony Ericsson для разработчиков, затем Google)
Как всегда, меня беспокоит фрагментация в различных реализациях JSR, но вот моя первая идея:
import javax.microedition.sensor.*;
SensorInfo[] powerSensorInfoArray = SensorManager.findSensors("power","ambient");
//let's assume there is one SensorInfo in the array.
//open a connection to the sensor.
SensorConnection connection = (SensorConnection)Connector.open(powerSensorInfoArray[0].getUrl(), Connector.READ);
// add a DataListener to the connection
connection.setDataListener(new MyDataListener(), 1);
// implement the data listener
public class MyDataListener implements DataListener {
public void dataReceived(SensorConnection aSensor, Data[] aDataArray, boolean isDataLost) {
//let's assume there is only one channel for the sensor and no data was lost.
// figure out what kind of data the channel provides.
int dataType = aDataArray[0].getChannelInfo().getDataType();
//now, I suggest you switch on dataType and print the value on the screen
// experimentation on the JSR256 implementation you're targetting seems to be
// the only way to figure out out power data is formatted and what values mean.
//only one of the following 3 lines will work:
double[] valueArray = aDataArray[0].getDoubleValues();
int[] valueArray = aDataArray[0].getIntValues();
Object[] valueArray = aDataArray[0].getObjectValues();
// let's assume one value in the valueArray
String valueToPrint = "" + valueArray[0];
// see what happens with that and you plug or unplug the power supply cable.
}
}
Вам нужно будет добавить javax.microedition.io.Connector.sensor
к вашим разрешениям MIDlet.
------- РЕДАКТИРОВАТЬ ------
Документация по реализации JSR-256 на телефоне Sony-Ericsson Satio (S60 5-е издание):
Датчик заряда аккумулятора имеет следующие характеристики:
Количество: battery_charge
Тип контекста: устройство
URL: датчик: заряд батареи; contextType = устройство; модель = SonyEricsson
Каналы: (индекс: имя, диапазон, единица измерения)
0: заряд батареи, 0-100, проценты
1: charger_state, 0-1, логическое значение