Поиск Bluetooth устройств


Поиск 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 устройств достаточно проста, как видно из кода. Думаю что со сборкой у Вас, дорогой читатель проблем не возникнет. В следующей статье я попытаюсь описать функцию поиска и работы с сервисами, которые вещает сервер. Коды в прикрепленных файлах!