2010-03-31 4 views

ответ

1

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

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

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

+0

Вы можете использовать только JSR82 в Java ME – funkybro

+1

@funkybro - ээ .. обе библиотеки, которые я дал в реализации JSR82 .. так в чем проблема? – Bozho

2

Вы можете использовать только телефоны, у которых есть JSR82.

This site дает полный пример.

1

Во-первых, имейте в виду, что в эмуляторе вы не можете обнаружить «настоящие» устройства 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 секунд).

+0

Это неправильно. Вызов startInquiry не блокирует или возвращает второе логическое значение при завершении. Этот код будет сидеть и вращаться в цикле while навсегда. –

0
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 

       } 
      }); 
Смежные вопросы