基于J2ME的手机相册系统
ection) Connector.open(strIp, Connector.READ_WRITE);
hpc.setRequestMethod(HttpConnection.POST);
hpc.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
dos = new DataOutputStream(hpc.openDataOutputStream());
dos.write( ("no=" + stname).getBytes());
dos.write("&".getBytes());
dos.write( ("pass=" + stpass).getBytes());
dos.close();
……
}
通过以上代码,可以实现连接web服务器,并且post出去两个参数,以便服务器验证用户身份。其他向服务器传送命令的代码类似。
当MySearch.jsp得到MyGet参数时,JSP得到服务器上存放照片文件夹的图像文件列表,将文件名逐一传送到客户端。
String jname=request.getParameter("MyGet");
if(jname.equals("IsOk")){
……
out.print(XXX.png); //循环打印文件名
……
}
在手机客户端利用DataInputStream类接收数据,再将的到的文件名显示再手机屏幕上,以便用户选择浏览。其代码如下:
HttpConnection hpc = null;
DataInputStream dis = null;
hpc = (HttpConnection) Connector.open(localUrl, Connector.READ_WRITE);
……
dis = new DataInputStream(hpc.openDataInputStream());
StringBuffer b = new StringBuffer();
int ch;
while ( (ch = dis.read()) != -1) {
……
}
……
4.2利用流传输文件及文件的再现
手机得到web服务器上的文件可以通过多种方式,例如利用XML进行包装,利用Socket技术,利用流技术进行传送等。为了减少手机和服务器的负担,提高效率,减少代码本系统采用流技术传送图像文件。在手机端利用InputStream类接收得到的图像信息数据。其代码如下:
public Image MyImage;
public String ImageName;
……
HttpConnection con = null;
InputStream ins = null;
String MyIp = "http://127.0.0.1:8080/"+ ImageName;
try {
con = (HttpConnection) Connector.open(MyIp, Connector.READ_WRITE);
……
ins = con.openDataInputStream();
MyImage = Image.createImage(ins);
}
……
向web服务器提出申请后,服务器会返回用户请求的资源,图像文件备包装进一个Stream发送给用户。J2ME利用InputStream来接收输入流,并利用Image的createImage方法将数据流转换为Image类型,以便在手机上显示。
5 总结
本文给出了一个基于J2ME 的个人相册的设计和实现,保证了用户及时地通过移动终端访问服务器上的照片。采用流作为数据交换的工具,实现了文件的远程传递和重组。。利用当前使用最广泛的HTTP 通信协议,将传统的Internet 网站与移动终端相结合,验证了建立移动个人相册的可行性。并为实现基于J2ME 的小型移动图像浏览系统提供了一种可行的方案。
- Java技术在嵌入式系统中的应用(07-11)
- 基于JAVA的工业控制移动数据通信解决方案(01-23)
- KVM在嵌入式Linux上的移植(05-02)
- 基于J2ME的无线网络应用开发(05-24)
- 智能手机的无线网络会议白板软件系统开发(10-29)
- J2me性能优化,避免内存溢出小结(05-04)