📄 servicediscoverer.java
字号:
import javax.bluetooth.*;
import java.io.*;
import java.util.Vector;
public class ServiceDiscoverer extends Thread implements DiscoveryListener {
UUID[] uuidSet = {new UUID("8841", true)};
int[] attrSet = {0x0100, 0x0003, 0x0004};
FileClient client;
ServiceRecord serviceRecord;
String connectionURL;
Vector deviceList;
public ServiceDiscoverer(FileClient client, Vector deviceList) {
this.client = client;
this.deviceList = deviceList;
}
public void run(){
try {
LocalDevice localDevice = LocalDevice.getLocalDevice();
DiscoveryAgent discoveryAgent = localDevice.getDiscoveryAgent();
RemoteDevice remoteDevice = null;
for(int i=0; i<deviceList.size(); i++){
remoteDevice = (RemoteDevice)deviceList.get(i);
client.updateStatus("[client:] Searching for Services on: " + remoteDevice.getFriendlyName(true)+ " (" + remoteDevice.getBluetoothAddress() + ")" );
discoveryAgent.searchServices(attrSet, uuidSet, remoteDevice, this);
try{
Thread.sleep(2000);
} catch (Exception e){
}
}
}
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 serviceName = (String)serviceNameElement.getValue();
if(serviceName.equals("FTP")){
client.updateStatus("[client:] A matching service has been found");
try {
connectionURL = servRecord[i].getConnectionURL(1,false);
} catch (Exception e){
client.updateStatus("[client:] oops");
}
client.updateStatus("[client:] The connection URL is: " + connectionURL );
client.serviceButton.setEnabled(false);
client.connButton.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";
}
client.updateStatus("[client:] " + searchStatus);
}
public void inquiryCompleted(int discType){}
public void deviceDiscovered(RemoteDevice btDevice, DeviceClass cod){}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -