Платформа J2Me
Шрифт:
CLDC/MIDP поддерживает системные свойства, которые являются парами «ключ-значение», представляющими информацию о платформе и среде, в которой выполняются приложения MIDP. Теоретически это тот же тип свойств, который вы найдете в J2SE. К сожалению, в CLDC/MIDP нет класса Java.util.Properties для облегчения вашей работы со свойствами.
Спецификация MIDP определяет только небольшой набор стандартных свойств, которые показаны в таблице 3.4. Реализации могут поддерживать дополнительные системные свойства определенных производителей, но необязательно. Вы должны знать о том,
Как и приложения J2SE, приложения MIDP могут отыскивать системные свойства с помощью класса java.lang.System. Чтобы узнать значение свойства, используйте метод класса System String getProperty(String key)
Этот метод извлекает нужные значения, связанные с ключами, чьи значения указываются в запросе.
Таблица 3.4. Стандартные системные свойства CLDC
Ключ свойства — Описание — Значение по умолчанию
miсгoedition.configuration — Название и версия поддерживаемой конфигурации — CLDO1.0
microedition.encoding — Набор знаков кодировки по умолчанию, используемый платформой — IS08859-1
microedition.locale– Название текущей местной среды платформы — нуль
microedition.platform — Название платформы или устройства — нуль
microedition.profiles — Названия всех поддерживаемых профилей — нуль
Листинг 3.2 иллюстрирует отслеживание системных свойств в MID-лете. Код дополняет пример, указанный в листинге 3.1.
Листинг 3.2. MID-леты имеют прямой доступ ко всем четырем стандартным системным свойствам, определяемым спецификацией CLDC
import javax.microedition.Icdui.Display;
import javax.microedition.Icdui.Displayable;
import javax.microedition.Icdui.Form;
import javax.microedition.midlet.MIDlet;
/**
Создание программы «Hello world» в J2ME MIDP.
Заметьте, что класс должен быть открытым, для того чтобы программа управления приложениями устройства могла создать его экземпляр.
*/
public class HelloWorld extends MIDlet
public void startApp
{
// Создайте элемент Displayable. form = new Fo.rmC'Hello World");
// Добавьте строку в форму. String msg = "My first MIDlet!"; form.append(msg);
// Это приложение просто выводит на экран одну форму, созданную выше.
display = Display.getDisplay(this);
display.setCurrent(form);
printSystemProperties;
/**
Вывести значения стандартных системных свойств С помощью вызова System.getProperty.
*/
protected void printSystemProperties
String conf;
String profiles; String platform; String encoding; String locale;
conf = System.getProperty("microedition.configuration");
System.out.println(conf);
profiles = System.getProperty("microedition.proflies");
System.out.println(profiles);
platform = System.getProperty("microedition.platform");
System.out.println(platform);
encoding = System.getProperty("microedition.encoding");
System.out.println(encoding);
locale = System.getProperty("microedition.locale");
System.out.println(locale); System.out.println;
}
}
Обратите
CLDC-1.0
MIDP-1.0
J2me
ISO-8859-1
enJJS
Четвертая строчка выходных данных просто воспроизводит набор знаков кодировки, который использует текущая реализация платформы CLDC/MIDP. Последняя строка выходных данных отражает текущую локализацию. Спецификации локализации включают две части: первая часть показывает языковые настройки, в то время как вторая часть показывает код страны. Международная организация по стандартизации (ISO) издает два стандарта, которые определяют набор приемлемых значений для языкового и странового кодов.
В простом примере, показанном в листинге 3.2, я показываю только, как вы можете извлечь эти значения. В последующих главах я покажу примеры того, как вы можете использовать эти значения для практической работы с приложениями.
Вы узнали о наличии определенных атрибутов MID-лета, которые описываются в файле JAD каждого набора MID-летов. Вспомните, что всем MID-летам требуются атрибуты. Таблица 2.4 перечисляет требуемые атрибуты MID-лета, которые находятся в файле дескриптора приложения. MID-лет может получать доступ к значениям этих атрибутов во время выполнения через программу управления приложениями.
Когда AMS устанавливает набор MID-летов на устройстве, она размещает JAD-файл MID-лета в определенном месте под своим контролем. Когда MID-лет запускается, AMS считывает JAD-файл и строит структуру данных атрибутов приложения. MID-лет может считывать значение атрибута с помощью метода класса MIDlet
String getAppProperty(String key)
Параметр key является именем атрибута, например, MIDlet-Name. Возвращаемая строка является связанным значением, находящимся в файле JAD.
Листинг 3.3 демонстрирует, как MID-лет может извлекать атрибуты. Он модифицирует листинг 3.2, добавляя вызов к методу printAppProperties в конце метода startApp. Новый метод startApp:
Листинг 3.3. Измененный метод теперь также выдает свойства приложения. Программное обеспечение AMS устройства управляет свойствами приложения.
public void startApp
// Создайте элемент Displayable. form = new FormC'Hello, World")/
// Добавьте строку в форму. String msg = "My-first MIDlet!"; form.append(msg);
// Это приложение просто выводит на экран одну форму,
// созданную выше.
display = Display.getDisplay (this);
display.setCurrentfform);
printSystemProperties ; printAppProperties ));
}