Java BlueTooth список удаленных устройств - PullRequest
0 голосов
/ 31 марта 2010

Я искал по всей сети и не могу найти ответ на этот простой вопрос: как отобразить в j2me список всех устройств Bluetooth по соседству?

Ответы [ 4 ]

2 голосов
/ 01 апреля 2010

Для этого можно использовать только телефоны с JSR82.

Этот сайт дает полный пример.

1 голос
/ 08 апреля 2011
LocalDevice local = LocalDevice.getLocalDevice();
DiscoveryAgent agent = local.getDiscoveryAgent();
// use inquiryStarted to make sure two inquiries aren't running at the same
// time.
inquiryStarted = agent.startInquiry(DiscoveryAgent.GIAC,
        new DiscoveryListener() {
            public void deviceDiscovered(RemoteDevice device,
                    DeviceClass cod) {
                System.out.println("Discovered: "
                        + device.getFriendlyName());
            }
                @Override
            public void inquiryCompleted(int arg0) {
                // TODO Auto-generated method stub

                }

                @Override
                public void serviceSearchCompleted(int arg0, int arg1) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void servicesDiscovered(int arg0,
                        ServiceRecord[] arg1) {
                    // TODO Auto-generated method stub

                }
            });
1 голос
/ 03 апреля 2010

Во-первых, имейте в виду, что в эмуляторе вы не можете обнаружить «настоящие» устройства Bluetooth без сторонней библиотеки JSR-82, такой как Bluecove (это настольная реализация для Java Bluetooth). Но при развертывании на телефоне с поддержкой JSR-82 он должен работать.

Но в остальном это просто с JSR-82! Вы можете использовать класс DiscoveryAgent.

LocalDevice local = LocalDevice.getLocalDevice();  
DiscoveryAgent agent = local.getDiscoveryAgent();
boolean complete = agent.startInquiry(DiscoveryAgent.GIAC, new DiscoveryListener() {
   public void deviceDiscovered(RemoteDevice device, DeviceClass cod) {
      System.out.println("Discovered: " + device.getFriendlyName());    } 
});
while(!complete) {
    // wait until discovery completes before continuing 
}

Вместо печати обнаруженных устройств, как указано выше, вы всегда можете поместить их в Hashtable или Vector. Метод deviceDiscovered () вызывается каждый раз, когда обнаруживается устройство во время выполнения запроса, и запрос обычно возвращается в течение приемлемого времени (с точностью до 10 секунд).

1 голос
/ 31 марта 2010

Во-первых, вам нужно выбрать стек Bluetooth.

У вас есть выбор: BlueCove или Avetana (это тоже мне известно).

Затем найдите в их документации «обнаружение устройств».

...