android-BluetoothSocket

来源:互联网 发布:知豆新能源资质 编辑:程序博客网 时间:2024/06/05 08:28

BluetoothSocket

public final class BluetoothSocket 
extends Object implements Closeable

java.lang.Object   ↳android.bluetooth.BluetoothSocket

A connected or connecting Bluetooth socket.

连接或连接蓝牙socket

The interface for Bluetooth Sockets is similar to that of TCP sockets: Socket and ServerSocket. On the server side, use a BluetoothServerSocket to create a listening server socket. When a connection is accepted by the BluetoothServerSocket, it will return a new BluetoothSocket to manage the connection. On the client side, use a single BluetoothSocket to both initiate an outgoing connection and to manage the connection.

蓝牙Sockets 的接口是类似于TCP套接字:Socket ServerSocket在服务器端,使用BluetoothServerSocket创建一个监听服务器Socket 被BluetoothServerSocket接受连接时,它将返回一个新的BluetoothSocket管理连接。在客户端,使用单个BluetoothSocket发起一个即将离任的连接和管理连接。

The most common type of Bluetooth socket is RFCOMM, which is the type supported by the Android APIs. RFCOMM is a connection-oriented, streaming transport over Bluetooth. It is also known as the Serial Port Profile (SPP).

最常见的一种蓝牙 socket 是RFCOMM ,Android api支持的类型。蓝牙RFCOMM是面向连接的,流媒体传输。它也被称为串行端口配置文件(SPP)。

To create a BluetoothSocket for connecting to a known device, use BluetoothDevice.createRfcommSocketToServiceRecord(). Then call connect() to attempt a connection to the remote device. This call will block until a connection is established or the connection fails.

创建一个BluetoothSocket为连接到一个已知的设备,使用BluetoothDevice.createRfcommSocketToServiceRecord()。然后调用connect()尝试连接到远程设备。这个调用会阻塞,直到建立连接或连接失败。

To create a BluetoothSocket as a server (or "host"), see the BluetoothServerSocket documentation.

创建一个BluetoothSocket服务器(或“主机”),查看BluetoothServerSocket文档。

Once the socket is connected, whether initiated as a client or accepted as a server, open the IO streams by calling getInputStream() andgetOutputStream() in order to retrieve InputStream and OutputStream objects, respectively, which are automatically connected to the socket.

一旦连接socket,是否启动客户机或接受为一个服务器,打开IO流通过调用getInputStream()andgetOutputStream()来检索InputStream和OutputStream对象,分别是自动连接到socket

BluetoothSocket is thread safe. In particular, close() will always immediately abort ongoing operations and close the socket.

BluetoothSocket是线程安全的。特别是,close()总是会立即中止正在进行的操作并关闭socket

Note: Requires the BLUETOOTH permission.

Developer Guides

For more information about using Bluetooth, read the Bluetooth developer guide.

See also:

  • BluetoothServerSocket
  • InputStream
  • OutputStream

Summary


Constants

intTYPE_L2CAP

L2CAP socket

intTYPE_RFCOMM

RFCOMM socket

intTYPE_SCO

SCO socket

Public methods

voidclose()

Closes this stream and releases any system resources associated with it.

关闭这个流并释放与之关联的任何系统资源。

voidconnect()

Attempt to connect to a remote device.

试图连接到一个远程设备。

intgetConnectionType()

Get the type of the underlying connection.

InputStreamgetInputStream()

Get the input stream associated with this socket.

intgetMaxReceivePacketSize()

Get the maximum supported Receive packet size for the underlying transport.

intgetMaxTransmitPacketSize()

Get the maximum supported Transmit packet size for the underlying transport.

OutputStreamgetOutputStream()

Get the output stream associated with this socket.

BluetoothDevicegetRemoteDevice()

Get the remote device this socket is connecting, or connected, to.

获取远程设备这个socket连接,或连接。

booleanisConnected()

Get the connection status of this socket, ie, whether there is an active connection with remote device.

这个socket的连接状态,即是否存在一个已有远程设备的连接。

Inherited methods

From class java.lang.Object
From interface java.io.Closeable
From interface java.lang.AutoCloseable

Constants


TYPE_L2CAP

Added in API level 23
int TYPE_L2CAP

L2CAP socket

Constant Value: 3 (0x00000003)

TYPE_RFCOMM

Added in API level 23
int TYPE_RFCOMM

RFCOMM socket

Constant Value: 1 (0x00000001)

TYPE_SCO

Added in API level 23
int TYPE_SCO

SCO socket

Constant Value: 2 (0x00000002)

Public methods


close

Added in API level 5
void close ()

Closes this stream and releases any system resources associated with it. If the stream is already closed then invoking this method has no effect.

关闭这个流并释放与之关联的任何系统资源。如果流已经关闭然后调用这个方法没有效果。

ThrowsIOException 

connect

Added in API level 5
void connect ()

Attempt to connect to a remote device.

This method will block until a connection is made or the connection fails. If this method returns without an exception then this socket is now connected.

Creating new connections to remote Bluetooth devices should not be attempted while device discovery is in progress. Device discovery is a heavyweight procedure on the Bluetooth adapter and will significantly slow a device connection. Use cancelDiscovery() to cancel an ongoing discovery. Discovery is not managed by the Activity, but is run as a system service, so an application should always call cancelDiscovery() even if it did not directly request a discovery, just to be sure.

close() can be used to abort this call from another thread.

ThrowsIOExceptionon error, for example connection failure

getConnectionType

Added in API level 23
int getConnectionType ()

Get the type of the underlying connection.

Returnsintone of TYPE_RFCOMMTYPE_SCO or TYPE_L2CAP

getInputStream

Added in API level 5
InputStream getInputStream ()

Get the input stream associated with this socket.

The input stream will be returned even if the socket is not yet connected, but operations on that stream will throw IOException until the associated socket is connected.

ReturnsInputStreamInputStreamThrowsIOException 

getMaxReceivePacketSize

Added in API level 23
int getMaxReceivePacketSize ()

Get the maximum supported Receive packet size for the underlying transport. Use this to optimize the reads done on the input stream, as any call to read will return a maximum of this amount of bytes - or for some transports a multiple of this value.

Returnsintthe maximum supported Receive packet size for the underlying transport.

getMaxTransmitPacketSize

Added in API level 23
int getMaxTransmitPacketSize ()

Get the maximum supported Transmit packet size for the underlying transport. Use this to optimize the writes done to the output socket, to avoid sending half full packets.

Returnsintthe maximum supported Transmit packet size for the underlying transport.

getOutputStream

Added in API level 5
OutputStream getOutputStream ()

Get the output stream associated with this socket.

The output stream will be returned even if the socket is not yet connected, but operations on that stream will throw IOException until the associated socket is connected.

ReturnsOutputStreamOutputStreamThrowsIOException 

getRemoteDevice

Added in API level 5
BluetoothDevice getRemoteDevice ()

Get the remote device this socket is connecting, or connected, to.

ReturnsBluetoothDeviceremote device

isConnected

Added in API level 14
boolean isConnected ()

Get the connection status of this socket, ie, whether there is an active connection with remote device.

Returnsbooleantrue if connected false if not connected
0 0
原创粉丝点击