介绍J2ME可选包——PIM OP

原创 2004年07月09日 10:50:00

      前几天听朋友说起移动那方面正在谈论关于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你可以访问他们。

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


 

J2ME可选包—PIM介绍

   前几天听朋友说起移动那方面正在谈论关于PIM的问题,这是个比较前沿的技术了。忽然想起来以前曾经在sun的网站看到过一篇文章是讲述PIM的,于是今天把它大概介绍一下。    PIM的意思是pers...
  • c30gcrk
  • c30gcrk
  • 2007年10月17日 11:09
  • 654

PIM J2ME可选包

朋友说起移动那方面正在谈论关于PIM的问题,这是个比较前沿的技术了。忽然想起来以前曾经在sun的网站看到过一篇文章是讲述PIM的,于是今天把它大概介绍一下。 PIM的意思是personal infom...
  • yongzhewuwei_2008
  • yongzhewuwei_2008
  • 2006年04月03日 18:25
  • 685

关于J2me的可选包PIM

        这几天单位要研究关于Sync4j的东西,主要是做手机中的联系人,便笺,日程什么的东西跟服务器同步,我想如果用J2me读出手机中的这些数据的话同步不是很方便的事情么,于是就找相关的资料,...
  • nanshengzhenzi
  • nanshengzhenzi
  • 2006年03月22日 12:30
  • 1145

介绍J2ME可选包FileConnection

本文将介绍J2ME的可选包FileConnection Optional Package(以下简称FCOP),事实上FCOP是在JSR75中和Personal Information Manageme...
  • c30gcrk
  • c30gcrk
  • 2007年08月28日 16:45
  • 572

介绍J2ME可选包FileConnection

本文将介绍J2ME的可选包FileConnection Optional Package(以下简称FCOP),事实上FCOP是在JSR75中和Personal Information Manageme...
  • mingjava
  • mingjava
  • 2005年03月20日 07:57
  • 3534

J2ME可选包FileConnection

本文将介绍J2ME的可选包FileConnection Optional Package(以下简称FCOP),事实上FCOP是在JSR75中和Personal Information Manageme...
  • memhoo
  • memhoo
  • 2008年02月19日 14:36
  • 491

介绍J2ME可选包WMA(JSR120)

    本文将详细讲解Wireless Messaging API(WMA,JSR120),WMA提供给应用开发者一个通用的API用于开发基于无线消息服务的应用程序,比如短消息服务。目前支持的发送类型...
  • c30gcrk
  • c30gcrk
  • 2007年09月09日 22:18
  • 800

介绍J2ME可选包的概念

作者:mingjava  文章来源:J2ME开发网J2ME平台刚刚推出的时候只有一个配置(CLDC)和一个描述(MIDP),但是现在已经有几十个可选包可以应用在J2ME平台了,清楚J2ME可选包的概念...
  • mobilechannel
  • mobilechannel
  • 2005年11月30日 11:47
  • 668

了解J2ME可选包MMAPI

作者:mingjava  文章来源:J2ME开发网在MIDP1.0(JSR 37)并没有提供对声音和视频处理的支持,因此有些厂商就独立开发了API来弥补这样的不足。在MIDP2.0中(JSR 118)...
  • mobilechannel
  • mobilechannel
  • 2005年11月30日 11:50
  • 843

比较J2ME多媒体可选包

作者:mydeman 文章来源:http://www.j2medev.com/Article/ShowArticle.asp?ArticleID=783在J2ME中,移动媒体API(MMAPI)是一个...
  • mobilechannel
  • mobilechannel
  • 2005年11月30日 17:36
  • 1151
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:介绍J2ME可选包——PIM OP
举报原因:
原因补充:

(最多只允许输入30个字)