Welcome 微信登录

首页 / 软件开发 / JAVA / 蓝牙开发之从手机走向PC【2】——手机与手机之间的通信实现

蓝牙开发之从手机走向PC【2】——手机与手机之间的通信实现2011-01-29 博客园 royen上篇文章讲述了开发环境的搭建和一些相关知识的介绍,这篇文章准备介绍下怎样实现手机和手机之间通过蓝牙实现互联通信的程序,然后接下来的日子可能会写个简单的通过蓝牙互联的手机小游戏(其他的事情比较多,加上笔者比较懒,呵呵,见谅~)。

这个小程序时个C/S结构的,但是只有一个Jar包。运行程序后的首页会有一个二选一选项(server或者client),当你选择server后单击 select按钮会进入服务器界面,单击setup按钮,那么便会开启服务器端的程序,并且循环监听来自客户端的蓝牙连接;而如果选择client选项,则会进入客户端界面,单击connect则会开始搜索周围的设备并遍历设备上的目标服务,如果搜索到服务的话则会连接上服务器,这时候你可以在文本框中输入信息并点击发送,服务器则会反馈相应的信息。

呵呵,虽然实现的功能简单,但是想要做更复杂的应用,这一步还是必须得走的~先看下我的程序文件结构吧:

---core //核心包名

---BlueMessage.java //Midlet主类,程序入口

---components //组件包名

---MainForm.java //起始主界面(在此选择客户端还是服务器端)

---BlueClient.java //客户端界面,继承自Form,实现CommandListener接口

---BlueServer.java //服务器端界面,继承自Form,实现CommandListener接口

---bluetooth

---BlueClientService.java //封装了客户端蓝牙服务的类,实现Runnable和DiscoveryListener接口

---BlueServerService.java //封装了服务器端蓝牙服务的类,实现Runnable接口

好了,对于程序文件结构有了一定的了解后,来看下部分代码吧:

BlueMessage.Java文件:

/**

* Midlet应用程序主类
* @author royen
* @since 2010.1.24
*/
public class BlueMessage extends MIDlet {
public BlueMessage() {
MainForm form=new MainForm(this);
Display.getDisplay(this).setCurrent(form);
}
/**
* 退出应用程序
*/
public void ExitMidlet() {
try{
this.destroyApp(true);
}
catch(Exception ex){
System.out.println("occur exception "+ex.getMessage());
}
}

/**
* 导航到其他界面
* @param dis
*/
public void NavigateTo(Displayable dis){
Display.getDisplay(this).setCurrent(dis);
}

protected void startApp() throws MIDletStateChangeException {
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
}
protectedvoid pauseApp() {
// TODO Auto-generated method stub}