得到blackberry中的联系人信息(j2me)
来源:互联网 发布:剑三邪笑炮哥捏脸数据 编辑:程序博客网 时间:2024/06/10 10:17
RIM有自己的API(BlackBerryContact.class)提供联系人信息。
但是需要签名才能运行。
我们可以用javax.microedition.pim .Contact 来得到电话里的联系人信息。
在bb运行时会弹出确认框,但不影响使用。
下面的table列举了不同信息分类,我们可以从中得到需要的信息。
NAME, ADDR
PIMItem.STRING_ARRAY
EMAIL, FORMATTED_NAME, NICKNAME, PHOTO_URL, PUBLIC_KEY_STRING, FORMATTED_ADDR, NOTE, ORG, TEL, TITLE, UID, URL
PIMItem.STRING
BIRTHDAY, REVISION
PIMItem.DATE
PHOTO, PUBLIC_KEY
PIMItem.BINARY
CLASS
PIMItem.INT
下面有一个我取联系人信息的例子:
首先写了一个map来存储联系人信息:
- package com.kennan.conversion;
- import java.util.Enumeration;
- import net.rim.device.api.collection.ReadableIntMap;
- import net.rim.device.api.collection.WritableIntMap;
- import net.rim.device.api.util.IntEnumeration;
- import net.rim.device.api.util.IntMultiMap;
- /**
- *
- * @author kennan.zhang
- * map
- *
- */
- public class ContackListMap extends IntMultiMap implements ReadableIntMap,
- WritableIntMap {
- public boolean contains(int key) {
- return super.containsKey(key);
- }
- public Object get(int key) {
- Enumeration e = super.elements(key);
- if (e.hasMoreElements()) {
- return e.nextElement();
- }
- return null;
- }
- public int getKey(Object element) {
- IntEnumeration ie = super.keys();
- if (ie.hasMoreElements()) {
- return ie.nextElement();
- }
- return 0;
- }
- public int size() {
- return super.size();
- }
- public void put(int key, Object element) {
- super.add(key, element);
- }
- public void remove(int key) {
- super.removeKey(key);
- }
- public void removeAll() {
- super.clear();
- }
- }
下面是获得联系人信息的方法。
- package com.kennan.contactList;
- import java.util.Enumeration;
- import javax.microedition.pim.Contact;
- import javax.microedition.pim.ContactList;
- import javax.microedition.pim.PIM;
- import javax.microedition.pim.PIMException;
- import net.rim.device.api.ui.MenuItem;
- import net.rim.device.api.ui.component.Dialog;
- import net.rim.device.api.ui.container.MainScreen;
- import net.rim.device.api.util.IntMultiMap;
- import com.kennan.conversion.ContackListMap;
- import com.kennan.conversion.HGB2PINYIN;
- /**
- *
- * @author kennan.zhang
- *
- */
- public final class ContactListScreen extends MainScreen {
- // 联系人列表
- private ContackListMap _ownContactList = new ContackListMap();
- private KennanContact _kapp;
- private String[] _tels;
- public ContactListScreen(KennanContact kapp) {
- super();
- _kapp = kapp;
- Enumeration e;
- String uid;
- String[] names;
- ContackListMap perInfo;
- Contact c;
- int ncount;
- StringBuffer name;
- int tcount;
- try {
- e = ((ContactList) PIM.getInstance().openPIMList(PIM.CONTACT_LIST,
- PIM.READ_WRITE)).items();
- while (e.hasMoreElements()) {
- perInfo = new ContackListMap();
- c = (Contact) e.nextElement();
- // UID
- uid = c.getString(Contact.UID, 0);
- // 合并 添加姓名
- names = c.getStringArray(Contact.NAME, 0);
- ncount = names.length;
- name = new StringBuffer();
- for (int i = 0; i < ncount; i++) {
- if (names[i] != null) {
- name.append(names[i]);
- name.append(' ');
- }
- }
- perInfo.put(Contact.NAME, name);
- // 电话
- tcount = c.countValues(Contact.TEL);
- _tels = new String[tcount];
- for (int i = 0; i < tcount; i++) {
- _tels[i] = c.getString(Contact.TEL, i);
- }
- perInfo.put(Contact.TEL, _tels);
- if (c.countValues(Contact.EMAIL) > 0) {
- perInfo.put(Contact.EMAIL, c.getString(Contact.EMAIL, 0));
- }
- // 添加联系人信息
- _ownContactList.put(Integer.parseInt(uid), perInfo);
- // 添加联系人条目
- add(new ContactListNode(name.toString(), uid, false));
- }
- } catch (PIMException a) {
- a.printStackTrace();
- } catch (IndexOutOfBoundsException a) {
- a.printStackTrace();
- }
- // 显示联系人
- this.addMenuItem(viewItem);
- }
- // 查看联系人信息
- private MenuItem viewItem = new MenuItem("查看联系人信息", 100, 10) {
- public void run() {
- int uid = getUID(this);
- // 联系人详细信息
- StringBuffer inform = new StringBuffer();
- inform.append("姓名:");
- inform.append(((ContackListMap) _ownContactList.get(uid))
- .get(Contact.NAME));
- inform.append('\n');
- // 联系人电话
- inform.append("电话:\n");
- _tels = (String[]) ((ContackListMap) (_ownContactList.get(uid)))
- .get(Contact.TEL);
- int _tlength = _tels.length;
- for (int i = 0; i < _tlength; i++) {
- inform.append(_tels[i]);
- inform.append('\n');
- }
- inform.append("E-mail:\n");
- inform.append(((ContackListMap) _ownContactList.get(uid))
- .get(Contact.EMAIL));
- Dialog.inform(inform.toString());
- inform = null;
- }
- };
- private int getUID(MenuItem mi) {
- ContactListNode pnb = (ContactListNode) mi.getTarget();
- return Integer.parseInt(pnb.getUid());
- }
- }
- 得到blackberry中的联系人信息(j2me)
- J2ME PIM 获得通讯录 联系人信息
- 使用Content Provider得到联系人信息
- 使用startActivityForResult得到通讯录联系人信息
- 使用Content Provider得到联系人信息
- 使用Content Provider得到联系人信息实例
- BlackBerry J2ME 编程指南(一)
- BlackBerry J2ME 编程指南(二)
- BlackBerry J2ME 编程指南(三)
- iPhone查询通讯录中的联系人信息(电话号码及邮箱)
- 得到ConnectionString中的特定信息
- 【Android】获取手机通讯录中的联系人信息
- Android中获取手机中的联系人信息
- 通过ContentResolver获取手机中的联系人信息
- Android中获取手机中的联系人信息
- 得到联系人数据
- 得到AppSettings中的配置字符串信息
- 得到AppSettings中的配置Bool信息
- Android模拟器按键与电脑键盘对应关系
- cugb1046
- sprintf函数详解
- a:hover 伪类
- poj 2136
- 得到blackberry中的联系人信息(j2me)
- Android PreferenceActivity 学习笔记
- Android的图片浏览源码解读
- 浮点型二分法查找
- 敢不敢? 哇 玩这么大 七夕那天第一个给你私信的朋友跟ta扮演一天情侣好吗?
- Class.getResource与ClassLoader.getResource()区别
- QTP调用win32 API 实现窗口的最小最大化
- ANT-build.xml文件详解
- Android 设置 Toast 的显示位置