使用bluecove从手机

时间:2017-02-19 13:35:15

标签: bluetooth inputstream bluecove

我正在尝试在我的电脑上实现一个服务器类型规范,它接收来自我手机的消息,然后用它们做一些事情。我可能在这里有完全错误的结束,但是我使用的是bluecove并且在我的电脑上有这个:

public static void main(String[] args) throws IOException {
    System.out.println(System.getProperty("java.class.path"));
    //display local device address and name
    LocalDevice localDevice = LocalDevice.getLocalDevice();
    System.out.println("Address: "+localDevice.getBluetoothAddress());
    System.out.println("Name: "+localDevice.getFriendlyName());
    System.out.println("Discoverable: "+localDevice.getDiscoverable());

    DiscoveryAgent agent = localDevice.getDiscoveryAgent();
    RemoteDevice remoteDeviceArray[] = agent.retrieveDevices(0);
    System.out.println("array: " + Arrays.toString(remoteDeviceArray));

    SelectServiceHandler handler = new SelectServiceHandler(agent);
    for (int i=0; i<remoteDeviceArray.length; i++)
    {
        RemoteDevice remoteDevice = (RemoteDevice)remoteDeviceArray[i];
        String address = remoteDevice.getBluetoothAddress();
        System.out.println("remoteAddress: " + address);
        if (address.equals(myAddress))
        {
            UUID[] uuidSet = new UUID[1];
            uuidSet[0] = new UUID(0x1105); //OBEX Object Push service
            int[] attrSet = new int[] {0x0100}; //Service name
            agent.searchServices(attrSet, uuidSet, remoteDevice, handler);
            System.out.println("successfully found phone");
            String service = agent.selectService(uuidSet[0], ServiceRecord.NOAUTHENTICATE_NOENCRYPT, false);
            Server server = new Server();
            server.startServer(service);
        }
    }
}

private void startServer(String service) throws IOException{  
    DataInputStream inputStream = Connector.openDataInputStream(service);
}

PC在启动时会查看已配对的设备。如果其中一个有“myAddress”(我在其他地方指定了 - 我的手机的ID),它会搜索手机的服务,并尝试找到OBEX对象推送服务(我从各种指南中看到的是我想要的在这里寻找)。 然后我尝试打开此服务的输入流,以接收消息。 目前,我收到错误:

Exception in thread "main" java.lang.ClassCastException: com.intel.bluetooth.obex.OBEXClientSessionImpl cannot be cast to javax.microedition.io.InputConnection
    at com.intel.bluetooth.MicroeditionConnector.openInputStream(MicroeditionConnector.java:565)
    at com.intel.bluetooth.MicroeditionConnector.openDataInputStream(MicroeditionConnector.java:545)
    at javax.microedition.io.Connector.openDataInputStream(Connector.java:127)
    at Server.startServer(Server.java:24)
    at Server.main(Server.java:80)

我从其他帖子中了解到的可能是因为我正在尝试将客户端服务连接转换为服务器输入流,但我不认为这就是我在这里所做的。

任何帮助都会非常感激,我真的很挣扎着整个bluecove的概念。

干杯。

0 个答案:

没有答案