专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 移动平台

vcard解析与打包

发布时间:2010-05-30 21:22:28 文章来源:www.iduyao.cn 采编人员:星星草
vcard解析与打包求助?
想实现以下功能:自己定义一个结构体:
typedef struct
{
unsigned short szName[30];//姓名
unsigned short szNickName[30];//昵称
unsigned short szMoB[40];//手机
unsigned short szMoB_HOME[40];//手机(家庭)
。。。。。。。。。//共20项
};
能把这个结构体打包成vcard,能从vcard中解出这个结构体//20项字段
vcard我没接触过,要求汉字是用UTF_8解析的,求c++/MFC代码,80718901@qq.com,万分感谢,270分全部送上,另开一帖在:
http://topic.csdn.net/u/20100717/16/79f5db5f-c873-4673-a85c-4cdd36c1eafc.html?seed=1303330889&r=67048502#r_67048502
另开一帖在http://topic.csdn.net/u/20100717/21/073314c6-0341-4a53-8c3e-7ba0f6138861.html
最简单的我也知道是自己一个一个按定义写结构体到vcard中,那么在取vcard流时,vcard流用unicode或多字节保存会有什么影响吗??

------解决方案--------------------
有一段JAVA的 , 上上来LZ自己揣摩一下吧
package org.mobiledream.safebox.function.card;

import java.io.ByteArrayOutputStream;
import java.io.UnsupportedEncodingException;
import java.util.Enumeration;
import java.util.Vector;

import javax.microedition.pim.Contact;
import javax.microedition.pim.ContactList;
import javax.microedition.pim.PIM;
import javax.microedition.pim.PIMException;
import javax.microedition.pim.PIMItem;
import javax.microedition.pim.PIMList;

import org.mobiledream.safebox.function.frame.ContactListener;
import org.mobiledream.safebox.function.frame.VCardListener;


/**
 * 对电子名片的所有操作
 * @author Mobile Dream
 *
 */
public class VCard extends Thread{

/**
* 监听器
*/
private ContactListener c = null;

/**
* 监听器
*/
private VCardListener v = null;

/**
* 联系人
*/
private Vector contacts = null;

/**
* 是否停止
*/
boolean stop = false;

/**
* 构造
*
*/
public VCard() {
contacts = new Vector();
}

/**
* 设置监听器
* @param c
*/
public void setContactListener(ContactListener c) {
this.c = c;
}

/**
* 移出监听器
*
*/
public void removeContactListener() {
c = null;
}

/**
* 取得监听器
* @return
*/
public VCardListener getVCardListener() {
return v;
}

/**
* 移除监听器
* @param v
*/
public void setVCardListener(VCardListener v) {
this.v = v;
}

/**
* 多线程
*/
public void run() {
if(c == null) { // 没有监听器
return;
}

try {

// 打开电话本并获得列表
PIMList pimlist = (PIMList) PIM.getInstance().openPIMList(
PIM.CONTACT_LIST, PIM.READ_ONLY);

Card.init(pimlist); // 初始化

// 对联系人表进行清空
contacts = new Vector();

int counter = 1;

Enumeration enu = pimlist.items(); // 所有联系人

// 获得所有联系人
while (enu.hasMoreElements()) {
Card card = new Card((PIMItem) enu.nextElement());

contacts.addElement(card); // 装入向量保存

if(stop) { // 停止获取
contacts = null;
stop = false;
return;
}

c.contactAcquired(card, counter++); // 触发监听器
}

pimlist.close();
} catch (Exception e) {
contacts = null;
c.contactAcquireError(e); // 触发监听器
}

c.contactAcquireComplete(contacts); // 触发监听器
}

/**
* 将vcard串行化
* @param item
* @param ops
*/
public static void toSerialFormat(PIMItem item, ByteArrayOutputStream bops) {
try {
PIM.getInstance().toSerialFormat(item, bops, "UTF-8", "VCARD/2.1");
} catch (UnsupportedEncodingException e) {
// 不做处理
} catch (PIMException e) {
// 不做处理
}
}

/**
* 导入并提交修改
* @param items
* @throws PIMException
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

  • atd指令拨号,怎么判断电话状态

    atd指令拨号,如何判断电话状态 在网上找了许久,终于找到一位仁心解决方案,这个指令是可以得到手机当时的状态,但是不管是空号、欠费、...

  • MTK添加应用程序解决方法

    MTK添加应用程序 添加好了模块之后(inc、lis、pth)在用VS2008编译时候报错 提示找不到我新添加文件的头文件,我在makefile里也添加了...

  • 资源编译有关问题

    资源编译问题 make p=d9128 m=resource 后 最后出现了几句话,不知道是什么意思,是否成功 generate resource bin successful! tota...

  • MTK11A怎么更换主菜单顺序

    MTK11A如何更换主菜单顺序? 在vappMainmenuDefaultOrder中更换联系人和通话记录的顺序,r cosmos后。没有更换过来,请问,怎样更换顺序? ...

  • MTK 画png图片 图片边缘有杂色,该怎么解决

    MTK 画png图片 图片边缘有杂色 我在MTK作图中,在处理png图片的时候总是会遇到图片边缘会有一些杂色或者是通透下一层背景图片的问...

  • MTK各种版本,该怎么解决

    MTK各种版本 大家好,我知道MTK有很多版本,但是通过原代码不知道怎么判断,我想请问大家版本怎么判断,还有就是各个版本之间编程有什么...

  • mtk模拟器联网解决思路

    mtk模拟器联网 刚接触mtk,想请教下高手mtk的模拟器是如何连接网络上的,之前有见过别人在模拟器上打开网页。需要修改什么? ------解...

  • 急怎设置让android内置浏览器无地址栏?该如何解决

    急!怎设置让android内置浏览器无地址栏? 想通过一个activity中的按钮链接到另一个网页,由于美观需要,不希望出现地址栏,怎么办? ------...

  • 关于手机浏览器显示谷歌地图的有关问题

    关于手机浏览器显示谷歌地图的问题 请问哪些手机浏览器能正常显示谷歌地图呢,我知道opera可以,safari可以,其他的呢。还有,网页正常显...

  • 怎么在mstar的idle界面画图

    如何在mstar的idle界面画图 怎么在idle上画图呢,比如说画点画线画一个图片上去等. 刚接触mstar,不熟悉。 mstar画idle是哪一个函...

热门推荐: