本人用j2se做PC上的蓝牙程序开发,使用bluecove.jar实现,初始化本地设备时可以正常实现,但是在设备搜索时却总是不能找到。
public void inquiryCompleted(int disType) {
JOptionPane.showMessageDialog(null, "inquiryCompleted:"+disType);
synchronized(this){
notify();
}
}
这个方法的 disType总是7,诸们兄弟谁能告诉我问题出在了哪里?
注:两台机器的蓝牙用的都是usb的那种,两台机器之间可以互相搜索到的,但是程序就出现了上面说的错误。
public void inquiryCompleted(int disType) {
JOptionPane.showMessageDialog(null, "inquiryCompleted:"+disType);
synchronized(this){
notify();
}
}
这个方法的 disType总是7,诸们兄弟谁能告诉我问题出在了哪里?
注:两台机器的蓝牙用的都是usb的那种,两台机器之间可以互相搜索到的,但是程序就出现了上面说的错误。
private DefaultListModel _dlmDevice;
private DefaultListModel _dlmMessage;
private JButton _btnDiscovery;
private Vector<RemoteDevice> _devices = new Vector<RemoteDevice>();
private Vector<ServiceRecord> _records = new Vector<ServiceRecord>();
private int[] _transIds;
private DiscoveryAgent _discoveryAgent;
public BtService(JButton btnDiscovery, DefaultListModel dlmDevice, DefaultListModel dlmMessage){
_btnDiscovery = btnDiscovery;
_dlmDevice = dlmDevice;
_dlmMessage = dlmMessage;
}
private boolean initLocalDevice(){
boolean isReady = false;
try{
LocalDevice localDevice = LocalDevice.getLocalDevice();
localDevice.setDiscoverable(DiscoveryAgent.GIAC);
_discoveryAgent = localDevice.getDiscoveryAgent();
JOptionPane.showMessageDialog(null, localDevice.getBluetoothAddress().toString());
JOptionPane.showMessageDialog(null, LocalDevice.getProperty("bluetooth.api.version"));
//ConfigDal.getConfigInfo();
isReady = true;
}
catch (Exception ex){
JOptionPane.showMessageDialog(null, ex.getMessage());
}
return isReady;
} @Override
public void deviceDiscovered(RemoteDevice remoteDevice, DeviceClass deviceClass) {
JOptionPane.showMessageDialog(null, "deviceDiscovered");
if (_devices.indexOf(remoteDevice) == -1){
_devices.addElement(remoteDevice);
}
} @Override
public void inquiryCompleted(int disType) {
//DiscoveryListener.INQUIRY_COMPLETED
JOptionPane.showMessageDialog(null, "inquiryCompleted:"+disType);
synchronized(this){
notify();
}
} @Override
public void serviceSearchCompleted(int transId, int respCode) {
JOptionPane.showMessageDialog(null, "serviceSearchCompleted");
for (int i=0;i<_transIds.length;i++){
if (_transIds[i] == transId){
_transIds[i] = -1;
}
}
boolean finished = true;
for (int i=0;i<_transIds.length;i++){
if (_transIds[i] >= 0){
finished = false;
break;
}
}
if (finished){
synchronized(this){
notify();
}
}
} @Override
public void servicesDiscovered(int transId, ServiceRecord[] serviceRecords) {
JOptionPane.showMessageDialog(null, "servicesDiscovered");
for (int i=0;i<serviceRecords.length;i++){
_records.addElement(serviceRecords[i]);
_dlmDevice.addElement(serviceRecords[i].toString());
}
} @Override
public void run() {
if (!initLocalDevice()){
_dlmMessage.addElement("获取本地蓝牙设备失败!");
return;
} try{
_discoveryAgent.startInquiry(DiscoveryAgent.GIAC, this);
}
catch (Exception ex){
JOptionPane.showMessageDialog(null, ex.getMessage());
return;
}
try{
synchronized(this){
wait();
}
}
catch (Exception ex){
JOptionPane.showMessageDialog(null, ex.toString());
} _btnDiscovery.setEnabled(true);
}}
我也在写j2se蓝牙软件,这个bluecove.jar该怎么用啊