OutputStream tmpOut = null; try {
tmpIn = socket.getInputStream(); tmpOut = socket.getOutputStream();
} catch (IOException e) { }
mmInStream = tmpIn; mmOutStream = tmpOut; }
public void run() {
byte[] buffer = new byte[1024]; while (true) { try {
bytes = mmInStream.read(buffer);
mHandler.obtainMessage(MESSAGE_READ,bytes,-1,buffer).s
endToTarget();
} catch (IOException e) { break; } } }
public void write(byte[] bytes) {
try {
mmOutStream.write(bytes);
} catch (IOException e) { }
}
public void cancel() { try {
mmSocket.close();
} catch (IOException e) { }
}
}
五、系统测试
打开BluetoothChat应用APP,会出现询问是否打开蓝牙的窗口,如图5.1所示。
图5.1 是否允许打开蓝牙
点击允许按钮后进入主界面,然后点击Menu键出现菜单栏如图5.2所示。
图5.2 Menu菜单栏
点击设置用户名,设置两台手机用户名分别为Jack和Rose,如图5.3所示。
图5.3 设置用户名
回到菜单栏点击我的朋友,进入扫描蓝牙设备界面,点击Scan Bluetooth Device对周围的设备进行扫描,得到设备列表中显示了扫描到的蓝牙设备的设备名和MAC地址,如图5.4所示。
图5.4 扫描周围蓝牙设备
在得到的蓝牙设备列表中点击Jack,即可与名为Jack的设备进行连接,连接成功后,聊天主界面会弹出Jack已经上线,此时两台手机就可以进行数据通信了,并且不同用户接受消息会有不同的声音提示。聊天界面如图5.5所示。
图5.5 聊天界面
此时返回Menu菜单点击聊天记录可以查看刚才的聊天记录,显示聊天内容和当时的时间记录,如图5.6所示。
图5.6 聊天记录界面
最后点击Back返回键退出该应用APP时,会提示再按一次退出,使得该APP操作更加人性化,如图5.7所示。
图5.7 提示再按一次退出
六、设计体会
本次系统设计是一个基于Android的短距离蓝牙数据通信设计,需要使用包括Java语言、安卓基础、蓝牙通信在内的相关知识,可以实现简单的安卓蓝牙数据通信,并且,本设计还可以实现发送表情,显示在线用户名,查看配对设备,查看聊天记录,设置本机用户名,再一次退出提醒等功能。
在此期间所做的工作包括:
(1)设计初期收集Java语言,安卓知识方面相关资料,对安卓开发有一定的了解。
(2)学习蓝牙通信,加深了对蓝牙操作,蓝牙之间通信方式的了解。 (3)参考官网上蓝牙的程序源码,确定最终的设计方案
(4)根据要实现的需求,在eclipes开发环境下应用Java语言进行编程,并且通过真机来测试手机界面程序。
从整个设计的过程来看前期的准备学习过程十分重要,经过前期充分的准备和对软件开发的学习,避免了很多在后续的程序设计中可能出现的问题。另外,此次设计还有很多可以完善的功能,比如可以进一步实现对文件和图片的传输并保存到手机上,实现用户注册登录的功能,以及实现多点对多点的多人聊天功能等,在后期时间允许的条件下将会对该程序进一步完善。