Android vcard使用示例,生成vcf文件
2012-10-31 15:59
309 查看
http://www.2cto.com/kf/201209/154751.html
我们备份手机联系人时,导出到SD卡时,会在SD卡中生成一个vcf文件,用于保存联系人姓名,手机号码。
vCard 规范容许公开交换个人数据交换(Personal Data Interchange PDI)信息,在传统纸质商业名片可找到这些信息。规范定义电子名片(或叫vCard)的格式。
而在Android上使用vcard就要借助第三方包:
将它复制进工程,然后Add jar即可,实现代码很简单,如下:
[html]
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) //判断存储卡是否存在
{
OutputStreamWriter writer;
File file = new File(Environment.getExternalStorageDirectory(),"example.vcf");
//得到存储卡的根路径,将example.vcf写入到根目录下
try {
writer = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
//create a contact
VCardComposer composer = new VCardComposer();
ContactStruct contact1 = new ContactStruct();
contact1.name ="John" ;
contact1.company = "The Company";
contact1.addPhone(Contacts.Phones.TYPE_MOBILE, "15651865008", null, true);
//create vCard representation
String vcardString;
vcardString = composer.createVCard(contact1, VCardComposer.VERSION_VCARD30_INT);
//write vCard to the output stream
writer.write(vcardString);
// writer.write("/n"); //add empty lines between contacts
// repeat for other contacts
// ...
writer.close();
Toast.makeText(c, "已成功导入SD卡中!", Toast.LENGTH_SHORT).show();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (VCardException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else{
Toast.makeText(c, "写入失败,SD卡不存在!", Toast.LENGTH_SHORT).show();
}
由于要对存储卡做读写操作,所以要加读写权限:
[html]
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
这样联系人就备份成功了,用系统自带的联系人软件就可以实现导入。这里只是个简单的写数据的例子,读取vcf文件中的数据的例子我已经和一起压缩上传,
我们备份手机联系人时,导出到SD卡时,会在SD卡中生成一个vcf文件,用于保存联系人姓名,手机号码。
vCard 规范容许公开交换个人数据交换(Personal Data Interchange PDI)信息,在传统纸质商业名片可找到这些信息。规范定义电子名片(或叫vCard)的格式。
而在Android上使用vcard就要借助第三方包:
将它复制进工程,然后Add jar即可,实现代码很简单,如下:
[html]
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) //判断存储卡是否存在
{
OutputStreamWriter writer;
File file = new File(Environment.getExternalStorageDirectory(),"example.vcf");
//得到存储卡的根路径,将example.vcf写入到根目录下
try {
writer = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
//create a contact
VCardComposer composer = new VCardComposer();
ContactStruct contact1 = new ContactStruct();
contact1.name ="John" ;
contact1.company = "The Company";
contact1.addPhone(Contacts.Phones.TYPE_MOBILE, "15651865008", null, true);
//create vCard representation
String vcardString;
vcardString = composer.createVCard(contact1, VCardComposer.VERSION_VCARD30_INT);
//write vCard to the output stream
writer.write(vcardString);
// writer.write("/n"); //add empty lines between contacts
// repeat for other contacts
// ...
writer.close();
Toast.makeText(c, "已成功导入SD卡中!", Toast.LENGTH_SHORT).show();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (VCardException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else{
Toast.makeText(c, "写入失败,SD卡不存在!", Toast.LENGTH_SHORT).show();
}
由于要对存储卡做读写操作,所以要加读写权限:
[html]
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
这样联系人就备份成功了,用系统自带的联系人软件就可以实现导入。这里只是个简单的写数据的例子,读取vcf文件中的数据的例子我已经和一起压缩上传,
相关文章推荐
- Android vcard使用示例,生成vcf文件
- Android vcard使用示例,生成vcf文件
- PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】[原创]_php技巧_脚本之家
- 命令行下使用javah命令生成.h文件,出现“错误: 无法访问android.app.Activity 找不到android.app.Activity的类文件”的解决方法
- android 使用vcard示例
- android学习——使用SAX、DOM 和 PULL 解析xml文件,及使用pull生成xml文件
- Android 使用 aidl 文件创建服务示例
- Android使用命令生成签名密钥文件及使用命令二次签名
- 使用ant让Android自动打包的build.xml,自动生成签名的apk文件(支持android4.0以上的版本)
- Android中JNI使用详解(3)---Android Studio中SO文件生成
- 使用javah生成.h文件, 出现无法访问android.app,Activity的错误的解决
- Android使用JNI生成.so文件并调用(使用CMake的方法)
- Android 自动编译、打包生成apk文件 2 - 使用原生Ant方式
- Android 使用 FFmpeg (一)——编译生成.so文件
- Android利用dimens.xml进行适配,使用代码生成不同的dimens.xml文件
- Android App自定义签名文件的生成、查看SHA1值和使用
- 使用ant让Android自动打包的build.xml,自动生成签名的apk文件(支持android4.0以上的版本)
- android使用ant自动打包(更改java文件中的属性值,批量自动生成)
- Android使用vcard文件的方法简单实例
- Android 自动编译、打包生成apk文件 2 - 使用原生Ant方式