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