📄 servicediscoverer.java
字号:
import javax.bluetooth.*;
import java.io.*;
import java.util.Vector;
public class ServiceDiscoverer extends Thread implements DiscoveryListener {
UUID[] uuidSet = {new UUID(0x0008)};
int[] attrSet = {0x0100, 0x0003, 0x0004};
VerifyOBEXPanel verifyOBEXPanel = null;
ServiceRecord serviceRecord = null;
RemoteDevice remoteDevice = null;
String connectionURL = null;
public ServiceDiscoverer(VerifyOBEXPanel verifyOBEXPanel, RemoteDevice remoteDevice) {
this.verifyOBEXPanel = verifyOBEXPanel;
this.remoteDevice = remoteDevice;
}
public void run(){
try {
LocalDevice localDevice = LocalDevice.getLocalDevice();
DiscoveryAgent discoveryAgent = localDevice.getDiscoveryAgent();
verifyOBEXPanel.updateStatus(" Searching for all OBEX services on: " + remoteDevice.getFriendlyName(true)+ " (" + remoteDevice.getBluetoothAddress() + ")" );
discoveryAgent.searchServices(attrSet, uuidSet, remoteDevice, this);
}
catch(Exception e) {
e.printStackTrace();
}
}
public void servicesDiscovered(int transID, ServiceRecord[] servRecord) {
for(int i = 0; i < servRecord.length; i++) {
DataElement serviceNameElement = servRecord[i].getAttributeValue(0x0100);
String temp_serviceName = (String)serviceNameElement.getValue();
String serviceName = temp_serviceName.trim();
verifyOBEXPanel.updateStatus(" A new OBEX service is discovered: " + serviceName );
if(serviceName.equals("OBEX Object Push")){
verifyOBEXPanel.updateStatus(" A matching service has been found");
try {
connectionURL = servRecord[i].getConnectionURL(1,false);
} catch (Exception e){
verifyOBEXPanel.updateStatus(" oops");
}
verifyOBEXPanel.updateStatus(" The connection URL is: " + connectionURL );
verifyOBEXPanel.nextButton.setEnabled(true);
}
}
}
public void serviceSearchCompleted(int transID, int respCode) {
String searchStatus = null;
if (respCode == DiscoveryListener.SERVICE_SEARCH_DEVICE_NOT_REACHABLE) {
searchStatus = "Device not reachable";
}
else if (respCode == DiscoveryListener.SERVICE_SEARCH_NO_RECORDS) {
searchStatus = "Service not available";
}
else if (respCode == DiscoveryListener.SERVICE_SEARCH_COMPLETED) {
searchStatus = "Service search completed";
}
else if (respCode == DiscoveryListener.SERVICE_SEARCH_TERMINATED) {
searchStatus = "Service search terminated";
}
else if (respCode == DiscoveryListener.SERVICE_SEARCH_ERROR) {
searchStatus = "Service search error";
}
verifyOBEXPanel.updateStatus(" " + searchStatus);
}
public void inquiryCompleted(int discType){}
public void deviceDiscovered(RemoteDevice btDevice, DeviceClass cod){}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -