在这里输入标题J2ME蓝牙手机应用程序开发实战入门
来源:互联网 发布:win10无网络访问权限 编辑:程序博客网 时间:2024/06/14 00:54
目前,很多手机已经具备了蓝牙功能。虽然MIDP2.0没有包括蓝牙API,但是JCP定义了JSR82, Java APIs for Bluetooth Wireless Technology (JABWT).这是一个可选API,很多支持MIDP2.0的手机已经实现了,比如Nokia 6600, Nokia 6670,Nokia7610等等。对于一个开发者来说,假如目标平台支持JSR82的话,在制作联网对战类型游戏或者应用的时候,蓝牙是一个相当不错的选择。 本文给出了一个最简单的蓝牙应用的J2ME程序,用以帮助开发者快速的把握JSR82。该程序分别在2台蓝牙设备上安装后,一台设备作为服务端先运行,一台设备作为客户端后运行。在服务端上我们发布了一个服务,该服务的功能是把客户端发过来的字符串转变为大写字符串。客户端起动并搜索到服务端的服务后,我们就可以从客户端的输入框里输入任意的字符串,发送到服务端去,同时观察服务端的反馈结果。 实例代码 该程序包括3个java文件。一个是MIDlet,另外2个为服务端GUI和客户端GUI。该程序已经在wtk22模拟器和Nokia 6600,Nokia 6670两款手机上测试通过。 StupidBTMIDlet.java import javax.microedition.lcdui.Alert; import javax.microedition.lcdui.AlertType; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.List; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet. MIDletStateChangeException; /** * @author Jagie * * MIDlet */ public class StupidBTMIDlet extends MIDlet implements CommandListener { List list; ServerBox sb; ClientBox cb; /* * (non-Javadoc) * * @see javax.microedition. midlet.MIDlet#startApp() */ protected void startApp() throws MIDletStateChangeException { list = new List ("蓝牙入门", List.IMPLICIT); list.append("Client", null); list.append("Server", null); list.setCommandListener(this); Display.getDisplay(this).setCurrent(list); } /** * debug方法 * @param s 要显示的字串 */ public void showString(String s) { Displayable dp = Display.getDisplay(this).getCurrent(); Alert al = new Alert(null, s, null, AlertType.INFO); al.setTimeout(2000); Display.getDisplay(this).setCurrent(al, dp); } /** * 显示主菜单 * */ public void showMainMenu() { Display.getDisplay(this). setCurrent(list); } protected void pauseApp() { // TODO Auto-generated method stub } public void commandAction (Command com, Displayable disp) { if (com == List.SELECT_COMMAND) { List list = (List) disp; int index = list.getSelectedIndex(); if (index == 1) { if (sb == null) { sb = new ServerBox(this); } sb.setString(null); Display.getDisplay(this) .setCurrent(sb); } else { //每次都生成新的客户端实例 cb = null; System.gc(); cb = new ClientBox(this); Display.getDisplay(this) .setCurrent(cb); } } } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { // TODO Auto-generated method stub } } ClientBox.java import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.util.Vector; import javax.microedition.io.Connector; import javax.microedition.io.StreamConnection; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.Gauge; import javax.microedition.lcdui.StringItem; import javax.microedition.lcdui.TextField; //jsr082 API import javax.bluetooth.BluetoothStateException; import javax.bluetooth.DeviceClass; import javax.bluetooth.DiscoveryAgent; import javax.bluetooth.DiscoveryListener; import javax.bluetooth.LocalDevice; import javax.bluetooth.RemoteDevice; import javax.bluetooth.ServiceRecord; import javax.bluetooth.UUID; /** * 客户端GUI * @author Jagie * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */ |
- 在这里输入标题J2ME蓝牙手机应用程序开发实战入门
- J2ME蓝牙程序开发实战入门
- J2ME蓝牙程序开发实战入门
- J2ME蓝牙实战入门
- J2ME蓝牙实战入门
- J2ME蓝牙实战入门
- j2me手机开发入门
- 手机J2ME蓝牙编程
- J2me蓝牙打印开发
- J2me蓝牙打印开发
- J2ME蓝牙开发心得
- 手机开发实战117——蓝牙介绍1
- 手机开发实战118——蓝牙介绍2
- 手机开发实战119——蓝牙介绍3
- 手机开发实战120——蓝牙介绍4
- 手机开发实战121——蓝牙介绍5
- 手机开发实战122——蓝牙介绍6
- 用Eclipse开发J2ME手机游戏 第五讲 J2ME应用程序的仿真机发布
- 三极管的工作原理
- 常用电子仪器的使用
- j2me多线程的实现(timer,timertask)来实现
- 继电器的参数和性能介绍(转)
- 手机J2ME蓝牙编程
- 在这里输入标题J2ME蓝牙手机应用程序开发实战入门
- 资源收藏与整理贴
- 曲阜师范大学日照校区校园风光集锦
- 2010年08月27日
- 运算放大器好坏的判别
- C#中messagebox用法(转载)
- 音频放大器lm386
- 2013年01月16日 工作总结
- 运算放大器的工作原理