我搜索了整个网络,我找不到这个简单问题的答案:如何在j2me中显示邻居中所有蓝牙设备的列表?
答案 0 :(得分:2)
您只能使用具有JSR82的手机来执行此操作。
This site给出了一个完整的例子。
答案 1 :(得分:1)
答案 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
}
});