public final class BluetoothServerSocket
extends Object
implements Closeable
java.lang.Object | |
↳ | android.bluetooth.BluetoothServerSocket |
一个侦听蓝牙套接字。
蓝牙套接口类似于TCP套接字: Socket
和ServerSocket
。 在服务器端,使用BluetoothServerSocket
创建侦听服务器套接字。 当连接被BluetoothServerSocket
接受时,它将返回一个新的BluetoothSocket
来管理连接。 在客户端,使用单个BluetoothSocket
来启动传出连接并管理连接。
最常见的蓝牙套接字类型是RFCOMM,它是Android API支持的类型。 RFCOMM是一种通过蓝牙实现的面向连接的流媒体传输。 它也被称为串行端口配置文件(SPP)。
要创建可用于传入连接的监听BluetoothServerSocket
,请使用BluetoothAdapter.listenUsingRfcommWithServiceRecord()
。 然后致电accept()
监听传入的连接请求。 此呼叫将阻塞,直到连接建立,此时,它将返回一个BluetoothSocket
来管理连接。 一旦BluetoothSocket
被收购,这是一个好主意,打电话close()
上BluetoothServerSocket
当它不再需要接受连接。 关闭BluetoothServerSocket
将不会关闭返回的BluetoothSocket
。
BluetoothServerSocket
是线程安全的。 特别是, close()
将始终立即中止正在进行的操作并关闭服务器套接字。
注意:需要 BLUETOOTH
权限。
有关使用蓝牙的更多信息,请阅读 Bluetooth开发人员指南。
也可以看看:
Public methods |
|
---|---|
BluetoothSocket |
accept() 阻塞直到连接建立。 |
BluetoothSocket |
accept(int timeout) 阻塞直到建立连接,并超时。 |
void |
close() 立即关闭此套接字,并释放所有关联的资源。 |
String |
toString() 返回对象的字符串表示形式。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
|
From interface java.io.Closeable
|
|
From interface java.lang.AutoCloseable
|
BluetoothSocket accept ()
阻塞直到连接建立。
返回成功连接时连接的 BluetoothSocket
。
一旦这个调用返回,它可以被再次调用来接受后续的传入连接。
close()
可用于从另一个线程中止此调用。
Returns | |
---|---|
BluetoothSocket |
a connected BluetoothSocket |
Throws | |
---|---|
IOException |
on error, for example this call was aborted, or timeout |
BluetoothSocket accept (int timeout)
阻塞直到建立连接,并超时。
返回成功连接时连接的 BluetoothSocket
。
一旦这个调用返回,它可以被再次调用来接受后续的传入连接。
close()
可用于从另一个线程中止此调用。
Parameters | |
---|---|
timeout |
int
|
Returns | |
---|---|
BluetoothSocket |
a connected BluetoothSocket |
Throws | |
---|---|
IOException |
on error, for example this call was aborted, or timeout |
void close ()
立即关闭此套接字,并释放所有关联的资源。
导致其他线程在此套接字上阻塞的调用立即引发IOException。
关闭 BluetoothServerSocket
不会关闭任何 BluetoothSocket
从收到 accept()
。
Throws | |
---|---|
IOException |
String toString ()
返回对象的字符串表示形式。 一般来说, toString
方法返回一个“文本表示”该对象的字符串。 结果应该是一个简洁但内容丰富的表述,对于一个人来说很容易阅读。 建议所有子类重写此方法。
类Object
的toString
方法返回一个字符串,其中包含对象为实例的类的名称,符号字符“ @
”以及对象的哈希代码的无符号十六进制表示形式。 换句话说,这个方法返回一个字符串,其值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
Returns | |
---|---|
String |
a string representation of the object. |