程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> J2ME中訪問手機本地電話本

J2ME中訪問手機本地電話本

編輯:關於JAVA
J2ME中訪問電話本數據是比較困難的事情,特別是中低端機型。通常,各終端廠商都有自己的API用於訪問電話本,例如,moto的phonebook。在jsr75中,sun推出了PIM包,可訪問電話本等本地數據,但是支持JSr75的手機終端大多是06出廠的手機。 本文主要介紹如何訪問各種終端的本地電話本數據。

  普通S60手機

  前段時間,適用了一款J2ME軟件,界面采用高級界面實現。由於之前沒有高級界面開發經驗,對高級界面的各種API也不是特別熟悉,所以對該軟件的“特殊功能”也少見多怪一番:該軟件在Nokia/6600上面,輸入手機號碼時,可以調出本地電話本,並可將電話本中的手機號碼。反編譯所有class文件,並沒有發現該軟件導入了特殊的擴展包。對此深感疑惑,google,baidu一番以後,終於獲得答案。

  大部分的S60終端中,定義TextFeild時,將 constraints指定為PHONENUMBER,即可。代碼如下:

  Java 代碼

TextField text = new TextField(“電話”,null,12,TextFIEld. PHONENUMBER);

  這應該屬於Nokia廠商的底層實現。目前,測試的手機中,Nokia/6600和Nokia/N72是支持的,而MOTO/E680,Moto/A1200,SEK700以及Nokia/3100等機型是不支持該功能的。希望對該問題感興趣的朋友,幫忙多做些測試,也是對這個問題的有效補充。

  PIM包

  PIM包定義了訪問終端本地重要數據的API,本文的重點是討論如何使用PIM訪問手機本地電話本。對於PIM的介紹,請參考mingJava的文章《J2ME可選包—PIM介紹》。

Java 代碼

/** 
* 訪問本地電話本數據 

*/ 
private void pimVisit () 

 String[] names = PIM.getInstance().listPIMLists(PIM.CONTACT_LIST); 
 try 
 { 
  for (int i = 0; i < names.length; i++) 
  { 
   display.append("AdrBookName: " + names[i] + "n"); 
   ContactList list = (ContactList) PIM.getInstance().openPIMList( 
PIM.CONTACT_LIST, PIM.READ_ONLY, names[i]); 
   /* 
   * 遍歷所有的記錄,這裡主要獲取記錄的姓名和電話號碼 
   */ 
   Contact contact; 
   int count = 0; 
   for (Enumeration e = list.items(); e.hasMoreElements();) 
   { 
    contact = (Contact) e.nextElement(); 
    String name; 
    name = contact.getString(Contact.FORMATTED_NAME, 0); 
    String tel = contact.getString(Contact.TEL, 0); 
    display.append(name+" "+tel + "n"); 
    count++; 
   } 
   display.append("所有記錄數量:" + count + "n"); 
   list.close(); 
  } 
 } 
 catch (PIMException e) 
 { 
 } 

  使用PIM不僅可以讀取本地電話本數據,而且可以修改或增加電話本記錄,這點也是上面所討論的方法無法相比的。應該說,PIM對電話本的操作更加靈活,並且可控制。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved