События батареи JSR 256 - PullRequest
       20

События батареи JSR 256

1 голос
/ 04 июня 2009

Как я могу обнаружить, когда шнур питания отключен от электрической розетки с использованием JSR 256?

Ответы [ 2 ]

1 голос
/ 05 мая 2010

Вы бы добавили javax.microedition.io.Connector.sensor на вкладку «Разрешения API» дескриптора приложения свойств проекта.

1 голос
/ 04 июня 2009

Из обзора спецификаций 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, логическое значение

...