Java BlueTooth远程设备列表

时间:2010-03-31 16:48:47

标签: java bluetooth java-me

我搜索了整个网络,我找不到这个简单问题的答案:如何在j2me中显示邻居中所有蓝牙设备的列表?

4 个答案:

答案 0 :(得分:2)

您只能使用具有JSR82的手机来执行此操作。

This site给出了一个完整的例子。

答案 1 :(得分:1)

首先,您需要选择蓝牙堆栈。

您可以选择BlueCoveAvetana(我也知道这些)。

然后在他们的文档中搜索“设备发现”。

答案 2 :(得分:1)

首先,请记住,在模拟器中,如果没有第三方JSR-82库(例如{3}}(它是Java蓝牙的桌面实现),则无法检测到“真正的”蓝牙设备。但是当你部署到支持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秒)。

答案 3 :(得分:1)

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

                }
            });