- •Что Вам необходимо?
- •Создание miDlet-а
- •О том, что скрыто от наших глаз
- •А дальше?
- •Ресурсы
- •Инсталяция и запуск Tomcat
- •Написание исходного кода Servlet-а
- •Компиляция Servlet – а
- •Развертывание Servlet-а
- •Как обратиться к Servlet-у из miDlet-а
- •Замечания
- •Заключение
- •Дейтаграммы
- •Получение Web контента
- •Когда какой протокол использовать?
- •Стек протоколов
- •Профили
- •Bluetooth устройства и сети
- •Системные требования
- •Java api For Bluetooth — организация и пакеты
- •Анатомия miDlet-ов, использующих jsr 82
- •Использование Java apIs for Bluetooth
- •Использование Bluetooth в j2me приложениях. (jsr-82) - Часть 2. Обзор Connection и Device Management api Обзор Connection api
- •Типы Bluetooth соединения
- •Создание соединения
- •Ожидание соединения
- •Отправка и получение даннях
- •Обзор Device Management api
- •Удаленное устройство
- •Класс устройства
- •Получение информации о настройках Bluetooth устройства
- •Интерфейсы pim api
- •Классы pim api
- •Использование pim api
- •Использование эмулятора j2me Wireless Toolkit 2.2 для тестирования pim списков
- •Особенности спецификации Sony Ericsson
- •Свойства системы
- •Классы и интерфейсы FileConnection api
- •Операции ввода/вывода
- •Получение информации о файлах и каталогах
- •Вычисление Экспоненты
- •Гиперболические функции
- •Вычисление натурального логарифма
- •Вычисление арксинуса и арккосинуса
- •Вычисление арктангенса
- •Обзор mmapi
- •Механизм обработки мультимедмйной информации
- •Mmapi пакеты
- •Использование mmapi
- •Последовательности нот
- •Проигрывание мультимедийных файлов
- •Воспроизведение видео
- •Использование камеры
- •Поддерживаемые форматы
- •Ограничения использования mmapi в wtk
- •Пример простого медиаплеера
- •Создание midp приложения с использованием Visual Designer-а.
- •Редактирование Java исходников
- •Создание midp приложений с использованием Source Editor Создание нового j2me midp проекта
- •Редактирование Java исходников
- •Компиляция и запуск проекта
- •Выбор платформы эмулятора
- •Использование конфигурирования
- •Добавление конфигурации
- •Настройка конфигурации
Обзор Device Management api
В основе механизмов управления устройством лежат классы javax.bluetooth.LocalDevice, javax.bluetooth.RemoteDevice и javax.bluetooth.DeviceClass. Реализуемые ими методы управления являются частью Generic Access Profile (GAP).
Локальное устройство
Доступ к локальному Bluetooth устройству можно получить через javax.bluetooth.LocalDevice. Этот класс предоставляет методы управления, восстановления и получения информации о локальном устройстве (например, Bluetooth адрес, класс устройства, информация об агенте поиска). Приведем наиболее часто используемые на практике методы:
static LocalDevice getLocalDevice() — метод возвращает LocalDevice объект, представляющий локальное устройство.
java.lang.String getBluetoothAddress() — возвращает адрес локального Bluetooth устройства. Адрес возвращается в виде Java.lang.String и состоит из 12 символов.
java.lang.String getFriendlyName() — метод возвращает дружественное имя локального Bluetooth устройства.
DiscoveryAgent getDiscoveryAgent() — метод возвращает агент поиска для локального устройства.
boolean setDiscoverable(int mode) — метод задает режим доступности для поиска.
static java.lang.String getProperty(java.lang.String property) — метод возвращает системные настройки Bluetooth устройства.
ServiceRecord getRecord(javax.microedition.io.Connection notifier) — метод возвращает запись обслуживания, соответствующую переданному механизму уведомления (btspp, btl2cap или btgoep).
Listing 5. Использование LocalDevice методов.
import javax.microedition.io.*;
import javax.bluetooth.*;
LocalDevice localDevice; // Локальное устройство
String localAddress; // Адрес локального устройства
String localName; // Имя локального устройства
DiscoveryAgent agent; // Агент поиска для локального Bluetooth устройства
:
:
try {
// Получаем локальное устройство
localDevice = LocalDevice.getLocalDevice();
// Делаем его доступным для поиска
localDevice.setDiscoverable(DiscoveryAgent.GIAC);
// Получаем адрес локального Bluetooth устройства
localAddress = localDevice.getBluetoothAddress();
// Получаем имя устройства
localName = localDevice.getFriendlyName();
// Получаем объект агента поиска для изучения устройства и сервисов
agent = localDevice.getDiscoveryAgent();
} catch (Exception e) {
... Обрабатываем ошибки
}
Удаленное устройство
Удаленное Bluetooth устройство доступно через javax.bluetooth.RemoteDevice. Этот класс предоставляет методы для получения RemoteDevice объекта, связанного с Bluetooth соединением; методы получения имени и адреса удаленного устройства, а также методы, относящиеся к обеспечению безопасности. Приведем наиболее используемые их них:
static RemoteDevice getRemoveDevice(javax.microedition.io.Connection) — метод возвращает RemoteDevice объект, связанный с переданным соединением.
java.lang.String getBluetoothAddress() — возвращает адрес удаленного Bluetooth устройства. Адрес возвращается в виде Java.lang.String и состоит из 12 символов.
java.lang.String getFriendlyName() — метод возвращает дружественное имя удаленного Bluetooth устройства.
boolean authenticate() — подтверждение подлинности удаленного устройства.
boolean isAuthenticated() — определяет, прошло ли удаленное устройство проверку.
boolean isEncrypted() — определяет, должно ли выполняться шифрование данных при обмене с удаленным устройством.
Listing 6. Using the RemoteDevice methods.
import javax.microedition.io.*;
import javax.bluetooth.*;
String url = "...";
StreamConnection con;
RemoteDevice remoteDevice; // Удаленное устройство
String remoteAddress; // Адрес удаленного устройства
String remoteName; // Имя удаленного устройства
:
:
try {
con = (StreamConnection) Connector.open(url);
remoteDevice = RemoteDevice.getRemoteDevice(con);
// Получаем адрес удаленного устройства
remoteAddress = remoteDevice.getBluetoothAddress();
// Получаем имя удаленного устройства
remoteName = remoteDevice.getFriendlyName();
if (!remoteDevice.isEncrypted()) {
// Если данные не расшифрованы, пытаемся их расшифровать.
if (!remoteDevice.authenticate() || !remoteDevice.encrypt(con, true)) {
// Ошибка, невозможно расшифровать данные
return;
}
}
} catch (Exception e) {
... Обработка ошибок
}
