Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java ME (J2ME) > Как получить данные из микропроцессора мобилы?


Автор: katepia 23.3.2010, 02:31
Добрый день!
Я - новичок, поэтому заранее прошу прощения за корявость изложения. 
Хочу написать программку, которая в качестве входных данных будет использовать системные данные мобильника. Например - если телефон вне зоны действия сети, то выводить сообщение. Или - если аккумулятор разряжен наполовину, то выдавать звуковой сигнал. Насколько я понимаю, такие данные содержатся в регистре. Но как узнать, какие именно данные доступны для считывания? Пока что не знаю, как подступиться к этому вопросу... буду благодарна за любые подсказки.
Спасибо!

Автор: Alexeis 23.3.2010, 09:29
Типа такого? 
http://forum.vingrad.ru/forum/topic-292519.html

Автор: katepia 24.3.2010, 02:37
Цитата(Alexeis @ 23.3.2010,  09:29)
Типа такого? 
http://forum.vingrad.ru/forum/topic-292519.html


Ага, типа этого, большое спасибо smilesmilesmilesmilesmile
Но мне кажется, что там предоставлен не полный список пропертей. Вот например, во всех телефонах отображается уровень сигнала от базовой станции. Значит, эта информация где-то в телефоне фиксируется. Но в том списке, например, "batterylevel" есть, а ничего похожего на "signallevel" я не нашла. Может существуют какие-нибудь спецификации с более полной информацией? Или это узнаётся только путём задавания вопросов производителю?

Автор: Alexeis 29.3.2010, 13:43
Модератор: перенесено из "Программирование мобильных устройств"

Автор: ivanovpv 29.3.2010, 17:14
Цитата(katepia @  24.3.2010,  02:37 Найти цитируемый пост)
Но мне кажется, что там предоставлен не полный список пропертей. Вот например, во всех телефонах отображается уровень сигнала от базовой станции. Значит, эта информация где-то в телефоне фиксируется. Но в том списке, например, "batterylevel" есть, а ничего похожего на "signallevel" я не нашла. Может существуют какие-нибудь спецификации с более полной информацией? Или это узнаётся только путём задавания вопросов производителю? 


То что вы называете очень похоже на спецификацию http://jcp.org/en/jsr/detail?id=256 - по другому называется Mobile Sensor API. Ну например, для уровня зарядки, при условии что аппарат поддерживает JSR-256 код будет такой:
Код

import javax.microedition.sensor.*;
SensorConnection power = (SensorConnection)Connector.open("sensor:power");
Data[] data = power.getData(1);
double powerValue = data[0].getDoubleValues()[0];


Уровень сигнала это тоже некий сенсор. Вопрос только в том насколько телефон поддерживает API JSR-256 и есть ли у него таковой сенсор. Проблема в том, что телефонов с поддержкой JSR-256 очень мало.

Если возвращаться к сути вашего вопроса, то проклятием J2ME является крайняя ограниченность доступа к набору данных/функций ОС телефона. Ну где слабость там же и благо - а именно возможность писать сразу для многих телефонов.

Автор: katepia 30.3.2010, 15:45
ivanovpv, 
Большое спасибо за информацию smile Это действительно очень похоже на то, что я ищу. Буду разбираться smile

Автор: mkol 14.11.2010, 15:40
Для некоторых моделей уровень сигнала и заряд батареи доступен через System.getProperty(), проблема только в том, что у каждого производителя свой способ получения служебной информации. Если писать программу для себя (конкретная модель конкретного производителя) - это одно, а если для других - универсального решения нет.
Например, для Nokia код будет выглядеть так: System.getProperty("com.nokia.mid.batterylevel") и System.getProperty("com.nokia.mid.networksignal").
Через определенное время, когда стандарт MSA 2.0 станет общеупотребительным, API JSR-256 станет обязательным компонентом, тогда будет возможен доступ к сенсорам любого JavaME устройства.

Автор: Samuil 9.12.2010, 16:03
И вправду, очень мало какие современные девайсы дают возможность обращаться к их системным модулям. ЧТобы написать приложение которые ты хочешь, ты должен использовать нативный язык для телефона. java это большая куча ограничений.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)