⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 servicediscoverer.java

📁 用于手机或其他支持蓝牙的设备上
💻 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){}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -