android-BluetoothSocket

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.

Summary


Constants

int TYPE_L2CAP

L2CAP socket

int TYPE_RFCOMM

RFCOMM socket

int TYPE_SCO

SCO socket

Public methods

void close()

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

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

void connect()

Attempt to connect to a remote device.

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

int getConnectionType()

Get the type of the underlying connection.

InputStream getInputStream()

Get the input stream associated with this socket.

int getMaxReceivePacketSize()

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

int getMaxTransmitPacketSize()

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

OutputStream getOutputStream()

Get the output stream associated with this socket.

BluetoothDevice getRemoteDevice()

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

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

boolean isConnected()

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.

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

Throws
IOException  

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.

Throws
IOException on error, for example connection failure

getConnectionType

Added in  API level 23
int getConnectionType ()

Get the type of the underlying connection.

Returns
int one 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.

Returns
InputStream InputStream
Throws
IOException  

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.

Returns
int the 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.

Returns
int the 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.

Returns
OutputStream OutputStream
Throws
IOException  

getRemoteDevice

Added in  API level 5
BluetoothDevice getRemoteDevice ()

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

Returns
BluetoothDevice remote 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.

Returns
boolean true if connected false if not connected
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值