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

📄 bluetoothstreamconnectionnotifier.java

📁 java se平台蓝牙开发的插件 ,包括源码 根据readme 生成包很多东西可以自己DIY很实用
💻 JAVA
字号:
/* Copyright 2004 Intel Corporation This file is part of Blue Cove. Blue Cove is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Blue Cove is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Blue Cove; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */package com.intel.bluetooth;import java.io.IOException;import javax.bluetooth.DataElement;import javax.bluetooth.LocalDevice;import javax.bluetooth.ServiceRecord;import javax.bluetooth.UUID;import javax.microedition.io.StreamConnection;import javax.microedition.io.StreamConnectionNotifier;public class BluetoothStreamConnectionNotifier implements		StreamConnectionNotifier {	private int socket;	private int handle;	ServiceRecord serviceRecord;	private boolean closed;	public BluetoothStreamConnectionNotifier(UUID uuid, boolean authenticate,			boolean encrypt, String name) throws IOException {		/*		 * open socket		 */		BluetoothPeer peer = ((LocalDevice) LocalDevice.getLocalDevice())				.getBluetoothPeer();		socket = peer.socket(authenticate, encrypt);		peer.listen(socket);		/*		 * create service record		 */		serviceRecord = new ServiceRecordImpl(null, 0);		/*		 * service handle (direct insert to avoid IllegalArgumentException from		 * setAttributeValue)		 */		((ServiceRecordImpl) serviceRecord).attributes.put(new Integer(				ServiceRecord.ServiceRecordHandle), new DataElement(				DataElement.U_INT_4, 0x00010020));		/*		 * service class ID list		 */		DataElement serviceClassIDList = new DataElement(DataElement.DATSEQ);		serviceClassIDList.addElement(new DataElement(DataElement.UUID, uuid));		serviceRecord.setAttributeValue(ServiceRecord.ServiceClassIDList,				serviceClassIDList);		/*		 * protocol descriptor list		 */		DataElement protocolDescriptorList = new DataElement(DataElement.DATSEQ);		DataElement L2CAPDescriptor = new DataElement(DataElement.DATSEQ);		L2CAPDescriptor.addElement(new DataElement(DataElement.UUID,				UUID.L2CAP_PROTOCOL_UUID));		protocolDescriptorList.addElement(L2CAPDescriptor);		DataElement RFCOMMDescriptor = new DataElement(DataElement.DATSEQ);		RFCOMMDescriptor.addElement(new DataElement(DataElement.UUID,				UUID.RFCOMM_PROTOCOL_UUID));		RFCOMMDescriptor.addElement(new DataElement(DataElement.U_INT_1, peer				.getsockchannel(socket)));		protocolDescriptorList.addElement(RFCOMMDescriptor);		serviceRecord.setAttributeValue(ServiceRecord.ProtocolDescriptorList,				protocolDescriptorList);		/*		 * name		 */		if (name != null)			serviceRecord.setAttributeValue(0x0100, new DataElement(					DataElement.STRING, name));		/*		 * register service		 */		handle = peer.registerService(((ServiceRecordImpl) serviceRecord)				.toByteArray());	}	/*	 * Close the connection. When a connection has been closed, access to any of	 * its methods except this close() will cause an an IOException to be	 * thrown. Closing an already closed connection has no effect. Streams	 * derived from the connection may be open when method is called. Any open	 * streams will cause the connection to be held open until they themselves	 * are closed. In this latter case access to the open streams is permitted,	 * but access to the connection is not.	 * 	 * Throws: IOException - If an I/O error occurs	 */	public void close() throws IOException {		if (!closed) {			BluetoothPeer peer = ((LocalDevice) LocalDevice.getLocalDevice())					.getBluetoothPeer();			/*			 * close socket			 */			peer.close(socket);			/*			 * unregister service			 */			peer.unregisterService(handle);			closed = true;		}	}	/*	 * Returns a StreamConnection that represents a server side socket	 * connection. Returns: A socket to communicate with a client. Throws:	 * IOException - If an I/O error occurs.	 */	public StreamConnection acceptAndOpen() throws IOException {		return new BluetoothConnection(((LocalDevice) LocalDevice				.getLocalDevice()).getBluetoothPeer().accept(socket));	}	public ServiceRecord getServiceRecord() {		return serviceRecord;	}}

⌨️ 快捷键说明

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