网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 手机学院 | 邮件系统 | 网络安全 | 认证考试
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > J2EE/J2ME教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.步入J2EE架构和过程(1).
.精通Hibernate映射继承关系之六.
.Spring入门.
.iBatis: 又一个O/R Mapping方案.
.保护自己的MIDlet程序之二:Time.
.使用platformRequest()自动更新M.
.贪吃蛇手机游戏.
.Datagram数据报的接收和发送.
.RMS概念解析与使用指南.
.EnterpriseJavaBeansDistilled....
.KVM的执行引擎(上) — 栈和帧.
.测试MySQL驱动的安装.
.J2EE应用:Java eetutorial5运行.
.J2ME简介.
.MIDP 1.0 HttpConnection类的rob.
.游戏框架之心得体会(2).
.介绍J2ME可选包FileConnection.
.JSP轻松入门(一).
.servlet的相关内部处理机制.
.关于XPATH的文章.

J2ME可选包—PIM介绍

发表日期:2007-12-23

    前几天听朋友说起移动那方面正在谈论关于PIM的问题,这是个比较前沿的技术了。忽然想起来以前曾经在sun的网站看到过一篇文章是讲述PIM的,于是今天把它大概介绍一下。  PIM的意思是personal infomation management(个人信息管理),主要是针对用户的重要信息,例如通信录、提醒、日程等。PIM OP定义了一系列的API,提供了访问这些重要数据的方法和途径。有必要先谈一下什么是OP,OP的意思就是optional package(可选包),他并不能提供一个整套的运行环境比如MIDP。他是对MIDP的扩展同时需要设备的支持。因此他并不是通用的,在移植性上存在问题。

    在使用PIM OP之前我们必须判断它是否可用,方法很简单只是检查microedition.pim.version的属性值是不是null,例如:
...
// Check that PIM Optional Package is available
String v = System.getProperty( "microedition.pim.version" );
if( v != null ){
    // PIMOP available
} else {
    // PIMOP not available
}
...

    你不能通过在代码中检查pim包是否可用来判断上述问题,因为pim是和设备实现相关的。PIM定义了三种信息类型,分别是Contact list,Event list , ToDo list,设备并一定要支持全部这三种类型,但是他至少要支持一种。

    所有的API都在Javax.microedition.pim包里面,你要通过PIM.getInstance()方法来得到PIM类,然后你才可以调用openPIMList()方法得到上述的list.例如下面的代码:
...
PIM singleton = PIM.getInstance();
ContactList cl = null;

try {
    cl = (ContactList)singleton.openPIMList(PIM.CONTACT_LIST,
         PIM.READ_ONLY );
    // use the contact list
}
catch( PIMException ){
    // no contact list available!
}
catch( SecurityException ){
    // the application is not allowed to Access the list
}
...

    值得一提的是SecurityException,为了安全只有可信任的MIDlets才可以访问这些数据。如果不是的话会抛出这个异常,这恰恰符合MIDP中的安全模式。在PIM list中的数据称作PIM Item,你可以把PIM list看作是容器,把pim item看作是实体。要想访问这些item可以通过如下代码:
import java.microedition.pim.*;
import java.util.*;

ContactList list = ... // a contact list

try {
    Enumeration enum = list.items();
    while( enum.hasMoreElements() ){
 Contact contact = (Contact) enum.nextElement();
 // do something with the contact
    }
}
catch( PIMException e ){
    // an error occurred
}
catch( SecurityException e ){
    // can't read this list
}
...

    在PIM item中可用的字段跟设备实现是相关的,因此在使用某个字段的时候有必要调用它的isSupportedField来判断一下,PIM 规范中同样对字段中的基本数据类型进行了定义,例如在Contact里面的TEL字段就是String你通过getStri()方法来得到,生日字段就是long类型的通过getDate()来得到例如:
...
Contact contact = ...;
String tel = contact.getString( Contact.TEL, 0 );
...

...
Contact contact = ...;
long bday = contact.getDate( Contact.BIRTHDAY, 0 );
...

在contact里面包括多个字段,通过后面的index你可以访问他们。

    就说这么多吧,希望对大家有用!


(出处:http://www.gaoqian.com)


上一篇:J2ME联网中采用序列化机制 人气:1382
下一篇:Hibernate+Struts的J2EE应用开发 人气:2277
浏览全部J2EE/J2ME的内容 Dreamweaver插件下载 网页广告代码 2009年新年快乐