就在这里。socket
你收到的可以给你一个InputStream
实例。如果socket
已连接,则您可以读取数据(或char
,具体取决于您将包装的阅读器,如果您包装一个)。String
byte
InputStream
要使用设备打开串行端口,您必须使用用于创建套接字的 UUID 中的串行端口配置文件。网上流传的一个简单的 UUID 是
00001101-0000-1000-8000-00805F9B34FB
然后,您可以创建您的套接字,连接到它,获取流并用它们读/写字节。例子 :
private static final String UUID_SERIAL_PORT_PROFILE
= "00001101-0000-1000-8000-00805F9B34FB";
private BluetoothSocket mSocket = null;
private BufferedReader mBufferedReader = null;
private void openDeviceConnection(BluetoothDevice aDevice)
throws IOException {
InputStream aStream = null;
InputStreamReader aReader = null;
try {
mSocket = aDevice
.createRfcommSocketToServiceRecord( getSerialPortUUID() );
mSocket.connect();
aStream = mSocket.getInputStream();
aReader = new InputStreamReader( aStream );
mBufferedReader = new BufferedReader( aReader );
} catch ( IOException e ) {
Log.e( TAG, "Could not connect to device", e );
close( mBufferedReader );
close( aReader );
close( aStream );
close( mSocket );
throw e;
}
}
private void close(Closeable aConnectedObject) {
if ( aConnectedObject == null ) return;
try {
aConnectedObject.close();
} catch ( IOException e ) {
}
aConnectedObject = null;
}
private UUID getSerialPortUUID() {
return UUID.fromString( UUID_SERIAL_PORT_PROFILE );
}
然后,在您的代码中的某个地方,您可以从读者那里阅读:
String aString = mBufferedReader.readLine();
你可以使用OutputStream
不同的作家在相反的方向做同样的事情。