Вход в систему
| Поиск Bluetooth устройств |
|
|
| 07.02.2009 17:50 |
Поиск Bluetooth устройствАвтор: Сергей Мустафаев В данной статье рассмотрена методика поиска Bluetooth устройств, которые находятся в зоне действия, и не стоят в режиме “скрытый”. Для поиска устройств, нам понадобится следующая библиотека: import javax.bluetooth.*; Так же наш класс должен иметь принадлежность к DiscoveryListener. class serv_SearchDevice implements DiscoveryListener { ... } После того как мы указали принадлежность к DiscoveryListener, мы должны создать следующие методы: void deviceDiscovered(RemoteDevice remoteDevice, DeviceClass deviceClass) void startServiceSearch(RemoteDevice device) void servicesDiscovered(int _int, ServiceRecord[] records) void serviceSearchCompleted(int _int, int _int1) void inquiryCompleted(int _int) и конструктор нашего класса (Вы можете указать функции которые находятся в конструкторе в другом методе, и вызывать его перед началом процедуры поиска) public serv_SearchDevice() Создали. Теперь приступим к заполнению этих методов функциями. public serv_SearchDevice(BTmidlet midl) {// это параметр моего главного класса - MIDlet midlet = midl;// Присвоение… try { localDevice = LocalDevice.getLocalDevice(); discoveryAgent = localDevice.getDiscoveryAgent(); discoveryAgent.startInquiry(DiscoveryAgent.GIAC, this); } catch (Exception e) {} } public void deviceDiscovered(RemoteDevice remoteDevice, DeviceClass deviceClass) {// Поиск устройств завершен remoteDevices.addElement(remoteDevice);// Добавляем найденные устройства в вектор } private void startServiceSearch(RemoteDevice device) { // Старт поиска сервисов, пока пусто… // Нужен для поиска блютуз принтеров, или других сервисов, которые вещает сервер } public void servicesDiscovered(int _int, ServiceRecord[] records) { // Если какие либо сервисы найдены, то мы в этом методе добавляем их… } public void serviceSearchCompleted(int _int, int _int1) { //Поиск сервисов завершен… } public void inquiryCompleted(int _int) {// Это завершающий поиск метод, в нем мы добавляем в элемент // List имена найденных устройств for (int i = 0; i < remoteDevices.size(); i++) {// проверка если устройства найденны try { midlet.ListDev.addElement(((RemoteDevice) remoteDevices. elementAt(i)).getFriendlyName(false)); // Берет не адрес устройства, а его имя } catch (IOException ex) { } System.out.println("Device: " + remoteDevices); } midlet.ShowList();// Собственно вызов метода рисования листа, находится в классе MIDlet } Вот и все! Функция поиска Bluetooth устройств достаточно проста, как видно из кода. Думаю что со сборкой у Вас, дорогой читатель проблем не возникнет. В следующей статье я попытаюсь описать функцию поиска и работы с сервисами, которые вещает сервер. Коды в прикрепленных файлах!
|


Комментарии
Я сам второй день явой увлекаюсь поэтому знаю только этот способ.
Пример работает на эмуляторе и на живой нокии 6230i
Но ведь к статье прикреплен пример:
http://www.devmobile.ru/file_archive/articles/j2me_bt_discovery.zip
Можно ли выложить рабочий пример по вашей статье "Поиск Bluetooth устройств",
потому что в таком виде материал мне показался совершенно непонятеным.
Как желаемый результат: Вывод на экран телефона списка обнаруженных устройств.
Спасибо.
br,
grio.
RSS лента комментариев этой записи.