?? servicediscoverer.java
字號:
import javax.bluetooth.*;
import java.io.*;
import java.util.Vector;
/**
*
* <p>Title: ServiceDiscoverer.java</p>
*
* <p>Description: A handly utility class used by BluetoothProbeMidlet used
* to find the Bluetooth services availabe on the Bluetooth devices in the
* area.</p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>By: Bruce Hopkins</p>
*
* @version 1.0
*/
public class ServiceDiscoverer extends Thread implements DiscoveryListener {
UUID[] uuidSet = {new UUID(0x0003) };
int[] attrSet = {0x0100, 0x0003, 0x0004};
BluetoothProbeMidlet midlet = null;
ServiceRecord serviceRecord = null;
RemoteDevice remoteDevice = null;
String connectionURL = null;
/**
* A simple constructor
* @param midlet BluetoothProbeMidlet
* @param remoteDevice RemoteDevice
*/
public ServiceDiscoverer(BluetoothProbeMidlet midlet, RemoteDevice remoteDevice) {
this.midlet = midlet;
this.remoteDevice = remoteDevice;
}
/**
* ServiceDiscoverer.java extends Thread, so the run method allows the
* class to run in a separate thread.
*/
public void run(){
try {
LocalDevice localDevice = LocalDevice.getLocalDevice();
DiscoveryAgent discoveryAgent = localDevice.getDiscoveryAgent();
midlet.updateStatus("\n+ " + remoteDevice.getFriendlyName(true) );
discoveryAgent.searchServices(attrSet, uuidSet, remoteDevice, this);
}
catch(Exception e) {
e.printStackTrace();
}
}
/**
* This method is called when a new service is discovered on a remote
* Bluetooth device.
* @param transID int
* @param servRecord ServiceRecord[]
*/
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();
midlet.updateStatus(" -" + serviceName );
}
}
/**
* This method is called when the service search process is completed for
* a remote Bluetooth device.
* @param transID int
* @param respCode int
*/
public void serviceSearchCompleted(int transID, int respCode) {
String searchStatus = null;
if (respCode == DiscoveryListener.SERVICE_SEARCH_DEVICE_NOT_REACHABLE) {
midlet.updateStatus("Device not reachable");
}
else if (respCode == DiscoveryListener.SERVICE_SEARCH_NO_RECORDS) {
midlet.updateStatus("Service not available");
}
else if (respCode == DiscoveryListener.SERVICE_SEARCH_COMPLETED) {
//do nothing
}
else if (respCode == DiscoveryListener.SERVICE_SEARCH_TERMINATED) {
midlet.updateStatus("Service search terminated");
}
else if (respCode == DiscoveryListener.SERVICE_SEARCH_ERROR) {
midlet.updateStatus("Service search error");
}
}
/**
* This method is not used, but any implementation of DiscoveryListerer.java
* must include these methods
* @param transID int
* @param servRecord ServiceRecord[]
*/
public void inquiryCompleted(int discType){}
/**
* This method is not used, but any implementation of DiscoveryListerer.java
* must include these methods
* @param transID int
* @param servRecord ServiceRecord[]
*/
public void deviceDiscovered(RemoteDevice btDevice, DeviceClass cod){}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -