日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
術(shù)語匯編J2MEPIM概論

這里和大家分享一下J2ME PIM的概念,根據(jù)JSR75的定義,Personal Information Management(PIM)API提供了一種訪問移動(dòng)設(shè)備上的本地個(gè)人數(shù)據(jù)的方法,這些數(shù)據(jù)包括Contacts數(shù)據(jù)、Tasks數(shù)據(jù)和Appointments數(shù)據(jù)等等。

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)鎮(zhèn)平免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

J2ME PIM概論

根據(jù)JSR75的定義,Personal Information Management(PIM)API提供了一種訪問移動(dòng)設(shè)備上的本地個(gè)人數(shù)據(jù)的方法,這些數(shù)據(jù)包括Contacts數(shù)據(jù)、Tasks數(shù)據(jù)和Appointments數(shù)據(jù)等等。在本文中,我們將仔細(xì)審視這個(gè)API,討論有關(guān)PIM MIDlet的開發(fā)、安全和部署問題,并比較PIM和另一個(gè)J2MEAPI——RecordManagementStore(RMS)。

移動(dòng)環(huán)境中的Personal Information Management(PIM)

  隨著新設(shè)備不斷上市,在移動(dòng)設(shè)備上提供AddressBook、Calendar和TaskList成為了一項(xiàng)必然的要求。J2ME應(yīng)用程序也需要訪問這些數(shù)據(jù)??蛇x包JSR75 Personal Information Management(PIM)提供了這個(gè)功能。

  它不僅允許訪問包含聯(lián)系人、約會和任務(wù)的本地個(gè)人信息,還允許訪問基于附加到設(shè)備上的SIM卡和Local and Remote Personal Information數(shù)據(jù)庫的信息。

  PIM包支持從vCard和vCalendar導(dǎo)入和導(dǎo)出數(shù)據(jù),vCard和vCalendar分別是AddressBook和Calendar的Internet標(biāo)準(zhǔn)格式。它還擁有阻止未授權(quán)類檢索個(gè)人信息的安全特性。

  另一個(gè)可選包JSR75 File Connection提供一種訪問本文探討范圍之外的本地文件系統(tǒng)的方法。

J2ME PIM包

  Java PIM包通過javax.microedition.pim包表示。

  這個(gè)包定義的重要接口包括:

  Contact——這個(gè)接口表示AddressBook上的單個(gè)聯(lián)系人。

  ContactList——這個(gè)接口表示AddressBook,這是一個(gè)Contact列表。

  Event——這個(gè)接口表示單個(gè)CalendarEvent。

  EventList——這個(gè)接口表示一個(gè)Calendar事件列表。

  ToDo——這個(gè)接口表示TaskList中的單個(gè)Task。

  ToDoList——這個(gè)接口表示Task列表。

  這個(gè)包定義的主要類是:

  PIM——PIM類定義一些方法,用于創(chuàng)建一個(gè)所有現(xiàn)有列表的索引,打開并編輯那些列表,將其作為來自vCard和vCalendar(Contact和Calendar的Internet標(biāo)準(zhǔn))的導(dǎo)入或?qū)С觥?p#

Contact和ContactList

  一個(gè)Contact表示AddressBook中的單個(gè)條目。Contact中的主要字段是Name、Address、Email、Birthday、Photo和Telephone。

  為了確??缙脚_可移植性,建議使用SuperInterfacePIMList提供的方法isSupportedField()。

  清單1展示如何向AddressBook添加一個(gè)Contact:

  清單1.將Contact添加到AddressBook

 
 
 
 
  1. ContactListaddressBook=null;
  2. try{
  3. addressBook=(ContactList)PIM.getInstance().openPIMList(PIM.CONTACT_LIST,
  4. PIM.READ_WRITE);
  5. }catch(PIMExceptione){
  6. //ExitApplication
  7. }
  8. ContactsingleContact=addressBook.createContact();
  9. String[]name=newString[addressBook.stringArraySize(Contact.NAME)];
  10. if(addressBook.isSupportedField(Contact.NAME_FORMATTED)
  11. singleContact.addString(Contact.NAME_FORMATTED,
  12. PIMItem.ATTR_NONE,"Mrs.JaneDoe");
  13. ThecreateContact()methodcreatesatemporaryemptyContact.Acommit()callmakes
  14. theContactdatapersistent.Itisadvisabletoclosethelistsbyinvokingtheclose()
  15. methodafternecessaryoperationshavebeenperformed.
  16. try{
  17. singleContact.commit();
  18. }catch(PIMExceptione){
  19. //Exceptionoccured
  20. }
  21. try{
  22. //Othercleanuptasks
  23. addressBook.close();
  24. }catch(PIMExceptione){
  25. }
  26.   

Event和EventList

  一個(gè)Event表示Event數(shù)據(jù)庫中的單個(gè)條目,比如,移動(dòng)設(shè)備上的日歷。Event中的關(guān)鍵字段是Location、Summary、Startdate、EndDate和Alarmnotification。清單2展示如何向Event數(shù)據(jù)庫添加一個(gè)Event。

  清單2.添加一個(gè)Event

 
 
 
 
  1. EventListeventList=null;
  2. try{
  3. eventList=(EventList)PIM.getInstance().openPIMList(PIM.EVENT_LIST,
  4. PIM.READ_WRITE);
  5. }catch(PIMExceptione){
  6. return;
  7. }
  8. EventsingleEvent=eventList.createEvent();
  9. if(eventList.isSupportedField(Event.SUMMARY))
  10. singleEvent.addString(Event.SUMMARY,PIMItem.ATTR_NONE,"JavaTraining");
  11. if(eventList.isSupportedField(Event.START))
  12. singleEvent.addDate(Event.START,PIMItem.ATTR_NONE,aDate.getTime());
  13. if(eventList.isSupportedField(Event.END))
  14. singleEvent.addDate(Event.END,PIMItem.ATTR_NONE,aDate.getTime());
  15. try{
  16. singleEvent.commit();
  17. }catch(PIMExceptione){
  18. //Anerroroccured
  19. }
  20. try{
  21. eventList.close();
  22. }catch(PIMExceptione){
  23. }
  24.   

#p#ToDo和ToDoList

  ToDo接口表示移動(dòng)設(shè)備上的Task數(shù)據(jù)庫中的單個(gè)任務(wù),重要的字段是NoteorSummary、Priority、CompletionDate、DueDate和whethercompleted。清單3展示如何向數(shù)據(jù)庫持久化添加一個(gè)ToDo。

  清單3.添加一個(gè)Task

 
 
 
 
  1. ToDoListtasks=null;
  2. try{
  3. tasks=(ToDoList)PIM.getInstance().openPIMList(PIM.TODO_LIST,
  4. PIM.READ_WRITE);
  5. }catch(PIMExceptione){
  6. //Anerroroccurred
  7. return;
  8. }
  9. ToDosingleTask=tasks.createToDo();
  10. if(tasks.isSupportedField(Event.SUMMARY))
  11. singleTask.addString(ToDo.SUMMARY,PIMItem.ATTR_NONE,"ShoppingforHalloween");
  12. if(tasks.isSupportedField(Event.DUE))
  13. singleTask.addDate(ToDo.DUE,PIMItem.ATTR_NONE,newDate().getTime());
  14. try{
  15. singleTask.commit();
  16. }catch(PIMExceptione){
  17. //Anerroroccured
  18. }
  19. try{
  20. tasks.close();
  21. }catch(PIMExceptione){
  22. }
  23.   

PIM與RMS的區(qū)別

  在繼續(xù)討論之前,我們先回顧一下J2ME提供的另一個(gè)關(guān)鍵功能,RecordManagementStore(RMS)概念。RMS允許J2ME應(yīng)用程序持久地本地存儲數(shù)據(jù)。RMS包含以下組件:

  Records——與每條記錄擁有一個(gè)或多個(gè)字段的數(shù)據(jù)庫系統(tǒng)不同,RMS中的一條Record是一個(gè)單獨(dú)的數(shù)據(jù)字段。它沒有一個(gè)預(yù)先定義的數(shù)據(jù)類型或大小,可以包含任意數(shù)據(jù)。

  RecordStore——RecordStore是一個(gè)Records集合,可以通過J2ME應(yīng)用程序根據(jù)名稱訪問。

  以下是PIM和RMS的區(qū)別,盡管二者都負(fù)責(zé)在設(shè)備上存儲持久數(shù)據(jù)。

  PIM向(從)AddressBook、Calendar和TaskList等已定義的實(shí)體存儲(和檢索)數(shù)據(jù)。而另一方面,RMS向(從)一個(gè)常規(guī)數(shù)據(jù)庫存儲(和檢索)數(shù)據(jù)。PIM中的單個(gè)實(shí)體是一個(gè)Contact、Calendar條目或一個(gè)Task,而在RMS中,單個(gè)實(shí)體是一個(gè)字節(jié)數(shù)組。

  PIM并不局限于本地設(shè)備,它可以訪問一個(gè)附加SIM或另一個(gè)遠(yuǎn)程設(shè)備中的數(shù)據(jù)。RMS只能訪問本地設(shè)備中的數(shù)據(jù)。

  PIM可以從vCalendar或vContact等外部源導(dǎo)入或?qū)С?,而RMS沒有任何Export或Import功能。

  與RMS相比,PIM中的數(shù)據(jù)解釋更加靈活。例如,一個(gè)Contact(以標(biāo)準(zhǔn)格式定義)總是可以由另一個(gè)J2ME應(yīng)用程序輕松解釋。而RMS中的記錄是字節(jié)數(shù)組,其他J2ME應(yīng)用程序需要擁有關(guān)于如何解釋它的信息。#p#

  一個(gè)示例——添加一個(gè)聯(lián)系人

  在這個(gè)小節(jié)中,我們將討論此前提到過的一個(gè)方法addContact(),展示如何向AddressBook添加一個(gè)聯(lián)系人。當(dāng)在表單中提交一個(gè)用戶命令時(shí),這個(gè)方法(見清單4)將在一個(gè)單獨(dú)的線程中調(diào)用。這個(gè)方法訪問通過UITextfields字段輸入的數(shù)據(jù)。

清單4.addContact()方法

 
 
 
 
  1. //Import
  2. importjavax.microedition.lcdui.*;
  3. importjavax.microedition.midlet.*;
  4. importjavax.microedition.pim.*;
  5. //Textinput
  6. TextFieldnameField;
  7. TextFieldphoneField;
  8. publicvoidaddContact(){
  9. ContactListcontacts=null;
  10. try{
  11. contacts=(ContactList)PIM.getInstance().openPIMList(PIM.CONTACT_LIST,
  12. PIM.READ_WRITE);
  13. }catch(PIMExceptione){
  14. //Anerroroccurred
  15. e.printStackTrace();
  16. }
  17. Contactcontact=contacts.createContact();
  18. String[]name=newString[contacts.stringArraySize(Contact.NAME)];
  19. if(contacts.isSupportedArrayElement(Contact.NAME,Contact.NAME_GIVEN))
  20. name[Contact.NAME_GIVEN]=nameField.getString();
  21. if(contacts.isSupportedField(Contact.TEL))
  22. contact.addString(Contact.TEL,Contact.ATTR_HOME,phoneField.toString());
  23. try{
  24. contact.commit();
  25. }catch(Exceptione){}
  26. }

#p#運(yùn)行時(shí)和安全問題

  PIM MIDlet應(yīng)該在一個(gè)支持PIM的配置(即JSR75)中運(yùn)行。我們通過在Sun的WirelessToolkit2.5上先單擊Settings然后單擊APISelection來選擇以下設(shè)置。選擇PIM MIDlet要運(yùn)行的移動(dòng)設(shè)備時(shí)使用相同的方法。

圖1.PIM MIDlet Runtime API Selection

  MIDlet需要其他權(quán)限才能讀寫Contacts、Calendar或TaskLists,可以通過在WirelessToolkit中單擊Settings并選擇Permissions來設(shè)置相關(guān)權(quán)限。這里提供了用于ContactList、EventList和TodoList的所有Read和Write權(quán)限。

圖2.PIM MIDlet安全問題

結(jié)束語

  在本文中,我們討論了J2ME中的另一個(gè)重要功能Personal Information Management(PIM),該功能允許訪問移動(dòng)設(shè)備上形式為Contact、Task和Event的本地?cái)?shù)據(jù)。本文還比較了PIM和RMS,后者是處理設(shè)備數(shù)據(jù)的另一個(gè)功能?,F(xiàn)在,您可以通過PIM自帶的導(dǎo)入和導(dǎo)出功能同步J2ME應(yīng)用程序和vCard以及vCalendar,后兩者分別是Contact和Calendar的Internet標(biāo)準(zhǔn)格式。***,我們介紹了運(yùn)行時(shí)的安全和部署要求。


當(dāng)前題目:術(shù)語匯編J2MEPIM概論
本文地址:http://www.dlmjj.cn/article/dpeepsp.html