一、发送数据
public static OutputStream os;
os = socket.getOutputStream();//获取输出流 os.write(message1.getBytes()); os.flush();//将输出流的数据强制提交
此处发送数据可以封装为一个方法,并设置为一个按键事件。设置按键事件的写法可以参考上一篇 链接!!!!!!
二、接收数据
此步骤放置于一个新的子线程中
InputStream is = socket.getInputStream();
然后将接收数据的代码放于一个永真循环中
int count = 0; while (count == 0) { count = is.available(); if (!bluetoothAdapter.isEnabled()) { is.close(); if (os != null) { os.close(); } } } byte buf[] = new byte[count]; if (buf != null) { is.read(buf, 0, count); message = new String(buf); handler.post(RefreshTextView); }
其中的message应定义为static
handler.post(RefreshTextView);是利用Handler机制将接收到数据显示在界面
private static Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what == UPDATE) ; textView.setText(String.valueOf(msg.obj)); } };
private static Runnable RefreshTextView = new Runnable() { @Override public void run() { textView.setText(message); } };