Com.intel.bluetooth.BluetoothRFCommClientConnection cannot be cast to javax.microedition.io.StreamCo

com.intel.bluetooth.BluetoothRFCommClientConnection cannot be cast to javax.microedition.io.StreamConnectionNotifier

Esta exception é disparada quando tento conectar, mas não sei porque, já que não tenho imports deste tipo…
Alguém pode verificar?

import java.io.DataOutputStream;
import java.io.IOException;
import java.util.Vector;
import javax.bluetooth.DataElement;
import javax.bluetooth.DeviceClass;
import javax.bluetooth.DiscoveryAgent;
import javax.bluetooth.DiscoveryListener;
import javax.bluetooth.LocalDevice;
import javax.bluetooth.RemoteDevice;
import javax.bluetooth.ServiceRecord;
import javax.bluetooth.UUID;
import javax.microedition.io.Connector;
import javax.microedition.io.StreamConnection;
import javax.microedition.io.StreamConnectionNotifier;
/**
 * Minimal Device Discovery example.
 */
public class DeviceDiscovery {

    public static final Vector/*<RemoteDevice>*/ dispositivos = new Vector();
    public static final Vector/*<String>*/ servicos = new Vector();

    public static void main(String[] args) {

        final Object espera = new Object();

        dispositivos.clear();

        DiscoveryListener listener = new DiscoveryListener() {

            public void deviceDiscovered(RemoteDevice btDevice, DeviceClass cod) {
                System.out.println("Dispositivo " + btDevice.getBluetoothAddress() + " encontrado");
                dispositivos.addElement(btDevice);
                try {
                    System.out.println("     nome " + btDevice.getFriendlyName(false));
                } catch (IOException cantGetDeviceName) {
                }
            }

            public void inquiryCompleted(int discType) {
                System.out.println("Busca terminada");
                synchronized(espera){
                    espera.notifyAll();
                }
            }

            public void serviceSearchCompleted(int transID, int respCode) {
                System.out.println("Busca de serviços terminada");
                synchronized(espera){
                    espera.notifyAll();
                }
            }

            public void servicesDiscovered(int transID, ServiceRecord[] servRecord) {
                for (int i = 0; i < servRecord.length; i++) {
                    String url = servRecord[i].getConnectionURL(ServiceRecord.NOAUTHENTICATE_NOENCRYPT, false);
                    if (url == null) {
                        continue;
                    }
                    servicos.add(url);
                    DataElement nome_do_servico = servRecord[i].getAttributeValue(0x0100);
                    if (nome_do_servico != null) {
                        System.out.println("Serviço " + nome_do_servico.getValue() + " encontrado " + url);
                    } else {
                        System.out.println("serviço encontrado " + url);
                    }
                }
            }
        };

        synchronized(espera) {
            boolean started;
            try {
                started = LocalDevice.getLocalDevice().getDiscoveryAgent().startInquiry(DiscoveryAgent.GIAC, listener);

            if (started) {
                System.out.println("Procurando dispositivos...");
                espera.wait();
                System.out.println(dispositivos.size() +  " dispositovo(s) encontrado(s)");
            }
            } catch (Exception ex) {
                //Logger.getLogger(DeviceDiscovery.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        if(dispositivos.size()>0){
            UUID[] searchUuidSet = new UUID[] {new UUID(0x1101)};
            int[] attrIDs =  new int[] {
                0x0100 // Nome do serviço
            };
        for(int i=0; i < dispositivos.size(); i++ ) {
            RemoteDevice btDevice = (RemoteDevice) dispositivos.elementAt(i);
            synchronized(espera) {
                try {
                System.out.println("Procurando serviços em " + btDevice.getBluetoothAddress() + " " + btDevice.getFriendlyName(false));
                LocalDevice.getLocalDevice().getDiscoveryAgent().searchServices(attrIDs, searchUuidSet, btDevice, listener);
                espera.wait();
                } catch (Exception ex) {
                    //Logger.getLogger(DeviceDiscovery.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }
        }
        try{
            String url = ((String) servicos.elementAt(0))+";authenticate=false;encrypt=false;";
            StreamConnectionNotifier servidor = (StreamConnectionNotifier) Connector.open(url);//O erro acontece aqui
            StreamConnection con = servidor.acceptAndOpen();
            DataOutputStream dout = new DataOutputStream(con.openOutputStream());
            dout.writeBytes("Hello World!");
        
        }catch(Exception e){
            System.out.println("Erro... "+e.getMessage());
        }
        System.out.println("Pronto...");
    }
}

Obrigado.