本地编写 android通讯录 同步联系人不用 gmail 豌豆荚 91助手啦
2011-04-23 08:55
323 查看
android手机,触屏的居多,掉电也很快,新买的手机 编辑联系人数目多了也真累,还难得那么频繁的充电
使用 通讯录自带的“导出联系人“ --》 ”导出到SD卡“
我把导出来的 00001.vcf 文件搬到了 fedora系统环境下
用vim打开它,有发现,绝对有发现:
它的内容如下:
BEGIN:VCARD -------> 这一行是标准格式 起始处
VERSION:2.1 -------->版本号 如果把gmail的联系人导出到本地,这里版本号是 3.1
EMAIL;PREF:csdn****@126.com -------->前面的 EMAIL;PREF: 是固定格式
END:VCARD -------->标志一个联系人项目的结束
BEGIN:VCARD
VERSION:2.1
N:我;;;; --------> 联系人的不同 ”我“ 字发生改变
FN: ----------> first name
TEL;CELL:1-595-&&&-&&&& -------> TEL;CELL: 是固定格式,gmail上导出来的略有不同
END:VCARD
BEGIN:VCARD
VERSION:2.1
N:爸;;;;
FN:
TEL;CELL:1-&&&-&&&-&&&&
END:VCARD
既然格式这么固定,那自然可以进行 ”格式化“ 输入,因此,我写了个 c 语言程序,实验一下:
#include <stdio.h>
int main( int argc, char **argv){
//char qname[10];
char name[30];
char num[20];
int exe = 1;
FILE *fp;
if( ( fp = fopen("0000.vcf","w") ) == NULL ){
printf( "open file failure !/n" );
exit( 0 );
}
printf("please input like: lqx李奇兴 1820101&&&&/n");
printf("input ( # # ) to quit/n");
fscanf(stdin,"%s%s",&name,&num);
if ( name[0] != '#' ){
exe = 1;
}else exe = 0;
// printf("%d/n",exe);
while ( exe ){
fputs( "BEGIN:VCARD/nVERSION:2.1/nN:" , fp );
fputs( name , fp );
fputs( ";;;;/n", fp );
fputs( "FN:" , fp );
// fputs(name,fp);
fputs( "/nTEL;CELL:" , fp );
fputs( num , fp );
fputs( "/nEND:VCARD/n" , fp );
fscanf( stdin , "%s%s", &name , &num );
if( name[0] != '#' ){
exe = 1;
}else
exe = 0;
}
fclose( fp );
return 0;
}
我把它编译指定输出为 : android_pb
然后 我直接 gedit一个文本,这里我名其为 in.txt
内容格式如下:
李奇兴lqx 1820101&&&& ------>习惯了名字后面加英文,便于查找(用惯了黑莓,呵呵)
csdn博客 1820101&&&&
# # ----->标志结束
在终端输入:
./android_pb < in.txt
执行完以后,在当前目录下生成了一个 0000.vcf文件,导入android手机测试,成功!!!
在这里,我实现的只是" 姓名 电话 "的输入格式,邮箱地址等我就没试了
另外,代码里面有个 qname 被注释掉了,因为之前打算是:
BEGIN:VCARD
VERSION:2.1
N:我;;;; --------> 这里汉字
FN: ----------> 这里英文
TEL;CELL:1-595-&&&-&&&& -----------> TEL;CELL: 是固定格式
但是生成的vcf导入手机以后,英文出来了,汉字不见了,额,没多想,直接用”姓名 电话“来输入了,有兴趣的朋友可以试一下
之所以这么整,是因为 在gmail上建联系人在导入手机,不仅需要上网同步,而且这个创建过程一只在点击鼠标,不爽
创建 vcf在本地直接导入多好,建一个 txt文本总比 繁琐点击鼠标强吧,呵呵
我是在fedora下试的,没在win下编写,之前想编写一个,然后生成一个 通用版的exe供网友方便使用,由于重装了win7.vc环境没了,懒得装了,反正是在linux下学习c的,故这一步工作没有做了,一字一字先敲这么些,哪位朋友要是做了一个,发我一个喽
邮箱 liqix326@gmail.com
使用 通讯录自带的“导出联系人“ --》 ”导出到SD卡“
我把导出来的 00001.vcf 文件搬到了 fedora系统环境下
用vim打开它,有发现,绝对有发现:
它的内容如下:
BEGIN:VCARD -------> 这一行是标准格式 起始处
VERSION:2.1 -------->版本号 如果把gmail的联系人导出到本地,这里版本号是 3.1
EMAIL;PREF:csdn****@126.com -------->前面的 EMAIL;PREF: 是固定格式
END:VCARD -------->标志一个联系人项目的结束
BEGIN:VCARD
VERSION:2.1
N:我;;;; --------> 联系人的不同 ”我“ 字发生改变
FN: ----------> first name
TEL;CELL:1-595-&&&-&&&& -------> TEL;CELL: 是固定格式,gmail上导出来的略有不同
END:VCARD
BEGIN:VCARD
VERSION:2.1
N:爸;;;;
FN:
TEL;CELL:1-&&&-&&&-&&&&
END:VCARD
既然格式这么固定,那自然可以进行 ”格式化“ 输入,因此,我写了个 c 语言程序,实验一下:
#include <stdio.h>
int main( int argc, char **argv){
//char qname[10];
char name[30];
char num[20];
int exe = 1;
FILE *fp;
if( ( fp = fopen("0000.vcf","w") ) == NULL ){
printf( "open file failure !/n" );
exit( 0 );
}
printf("please input like: lqx李奇兴 1820101&&&&/n");
printf("input ( # # ) to quit/n");
fscanf(stdin,"%s%s",&name,&num);
if ( name[0] != '#' ){
exe = 1;
}else exe = 0;
// printf("%d/n",exe);
while ( exe ){
fputs( "BEGIN:VCARD/nVERSION:2.1/nN:" , fp );
fputs( name , fp );
fputs( ";;;;/n", fp );
fputs( "FN:" , fp );
// fputs(name,fp);
fputs( "/nTEL;CELL:" , fp );
fputs( num , fp );
fputs( "/nEND:VCARD/n" , fp );
fscanf( stdin , "%s%s", &name , &num );
if( name[0] != '#' ){
exe = 1;
}else
exe = 0;
}
fclose( fp );
return 0;
}
我把它编译指定输出为 : android_pb
然后 我直接 gedit一个文本,这里我名其为 in.txt
内容格式如下:
李奇兴lqx 1820101&&&& ------>习惯了名字后面加英文,便于查找(用惯了黑莓,呵呵)
csdn博客 1820101&&&&
# # ----->标志结束
在终端输入:
./android_pb < in.txt
执行完以后,在当前目录下生成了一个 0000.vcf文件,导入android手机测试,成功!!!
在这里,我实现的只是" 姓名 电话 "的输入格式,邮箱地址等我就没试了
另外,代码里面有个 qname 被注释掉了,因为之前打算是:
BEGIN:VCARD
VERSION:2.1
N:我;;;; --------> 这里汉字
FN: ----------> 这里英文
TEL;CELL:1-595-&&&-&&&& -----------> TEL;CELL: 是固定格式
但是生成的vcf导入手机以后,英文出来了,汉字不见了,额,没多想,直接用”姓名 电话“来输入了,有兴趣的朋友可以试一下
之所以这么整,是因为 在gmail上建联系人在导入手机,不仅需要上网同步,而且这个创建过程一只在点击鼠标,不爽
创建 vcf在本地直接导入多好,建一个 txt文本总比 繁琐点击鼠标强吧,呵呵
我是在fedora下试的,没在win下编写,之前想编写一个,然后生成一个 通用版的exe供网友方便使用,由于重装了win7.vc环境没了,懒得装了,反正是在linux下学习c的,故这一步工作没有做了,一字一字先敲这么些,哪位朋友要是做了一个,发我一个喽
邮箱 liqix326@gmail.com
相关文章推荐
- 本地编写 android通讯录 同步联系人不用 gmail 豌豆荚 91助手啦
- 不用GMail从WM或Outlook导入联系人通讯录到Android手机的办法
- Android本地登录与WebView网页登陆同步问题(cookie同步问题)
- 把x@gmail.com误写成 x@google.com,折腾了我几个小时,同步本地svn库到googlecode 成功
- Android 查询本地通讯录联系人的信息
- android读取通讯录信息并存到本地数据库
- Android版同步工具豌豆荚实测 电脑给手机按软件 截图
- 如何将你的android手机和outlook的通讯录同步?
- Android通讯录获取联系方式
- 无需越狱,Android通话记录、通讯录、短信同步到iphone6
- android如何取得本地通讯录的头像的原图
- Android删除手机本地图片并同步到本地图片媒体库
- Android Binder机制:编写自己的本地服务
- 22_Android中的本地音乐播放器和网络音乐播放器的编写,本地视频播放器和网络视频播放器,照相机案例,偷拍案例实现
- 在Android 2.3中如何使用native_activity.h编写本地应用
- gmail通讯录同步
- Android获取本地通讯录发生变化的联系人
- Android的通讯录同步
- 在Android 2.3中如何使用native_activity.h编写本地应用
- 编写android程序调用jni本地方法的实现(详细例子)