Android vcard使用示例,生成vcf文件


我们备份手机联系人时,导出到SD卡时,会在SD卡中生成一个vcf文件,用于保存联系人姓名,手机号码。

vCard 规范容许公开交换个人数据交换 (Personal Data Interchange PDI)信息,在传统纸质商业名片可找到这些信息。规范定义电子名片(或叫vCard)的格式。

而在Android上使用vcard就要借助第三方包:

将它复制进工程,然后Add jar即可,实现代码很简单,如下:

  1.  if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) //判断存储卡是否存在  
  2.      {  
  3.         OutputStreamWriter writer;   
  4.         File file = new File(Environment.getExternalStorageDirectory(),"example.vcf");  
  5. //得到存储卡的根路径,将example.vcf写入到根目录下  
  6.     try {    
  7.         writer = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");  
  8.             
  9.            //create a contact     
  10.                VCardComposer composer = new VCardComposer();    
  11.                ContactStruct contact1 = new ContactStruct();   
  12.            contact1.name ="John" ;    
  13.            contact1.company = "The Company";   
  14.            contact1.addPhone(Contacts.Phones.TYPE_MOBILE, "15651865008", null, true);   
  15.            //create vCard representation     
  16.            String vcardString;    
  17.             vcardString = composer.createVCard(contact1, VCardComposer.VERSION_VCARD30_INT);    
  18.                    //write vCard to the output stream     
  19.                    writer.write(vcardString);   
  20.              
  21.           // writer.write("/n"); //add empty lines between contacts     
  22.        // repeat for other contacts     
  23.            // ...     
  24.            writer.close();    
  25.            Toast.makeText(c, "已成功导入SD卡中!", Toast.LENGTH_SHORT).show();  
  26.     } catch (UnsupportedEncodingException e) {    
  27.     // TODO Auto-generated catch block     
  28.     e.printStackTrace();    
  29.     } catch (FileNotFoundException e) {    
  30.     // TODO Auto-generated catch block     
  31.     e.printStackTrace();    
  32.     } catch (VCardException e) {    
  33.     // TODO Auto-generated catch block     
  34.     e.printStackTrace();    
  35.     } catch (IOException e) {    
  36.     // TODO Auto-generated catch block     
  37.     e.printStackTrace();    
  38.     }    
  39.   
  40. }  
  41.      else{  
  42.          Toast.makeText(c, "写入失败,SD卡不存在!", Toast.LENGTH_SHORT).show();  
  43.      }  

由于要对存储卡做读写操作,所以要加读写权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>  

这样联系人就备份成功了,用系统自带的联系人软件就可以实现导入。这里只是个简单的写数据的例子,读取vcf文件中的数据的例子我已经和

一起压缩上传,以供各位同学下载,下载地址:

免费下载地址在 http://linux.bkjia.com/

用户名与密码都是www.bkjia.com

具体下载目录在 /2012年资料/9月/12日/Android vcard使用示例,生成vcf文件

相关内容

    暂无相关文章