电话本导入导出

将联系人导出到T-Card:将存放在手机、sim卡上的联系人导出到T-Card,以.cvs文件存放
主要思路:
1、判断是否存在T-Card,及T-Card中是否存在足够的空间用于存储当前的联系人,是否在USB状态,电话本是否准备好
  if (mmi_usb_is_in_mass_storage_mode())//判断是否处于USB连接状态
  if (mmi_phb_check_ready(MMI_TRUE))//检查电话本是否准备好
    kal_wsprintf((U16*)temp_object,"%c:\\",SRV_FMGR_CARD_DRV);//T-Card盘符
    fs_ret = FS_GetDiskInfo((PU16)temp_object, &disk_info, FS_DI_BASIC_INFO | FS_DI_FREE_SPACE);//得到T-Card信息
    disk_free_space = disk_info.FreeClusters * disk_info.SectorsPerCluster * disk_info.BytesPerSector;//得到T-Card剩余空间
  
2、要再T-Card中建立一个文件,用于存放相应的联系人,这里我们是以当前时间建立文件名,以.csv为后缀的文件
  MYTIME currTime;
  DTGetRTCTime(&currTime);
  FS_Open((U16 *)文件名, FS_CREATE_ALWAYS | FS_READ_WRITE);
  
3、查找联系人,并将联系人信息存入文件
  store_index = g_mmi_phb_list_p->contact_array[i];//电话本存储的索引值
  contact_info = mmi_phb_contact_get_contact(store_index);//根据索引值得到联系人的信息
  mmi_phb_contact_free_contact(contact_info);//释放掉相应的资源
  
从T-Card导入联系人:从T-Card中搜索*.cvs文件,将联系人的正确信息加载进手机、sim卡中
主要思路:
1、搜索存放在T-Card中的所有*.cvs文件,然后将里面的信息读取出来
  当然在这之前我们要判断当前是否存在T-Card、是否是USB状态,
  手机或sim卡上的剩余空间是否能存放的下所选文件里面的联系人的信息
  if (mmi_usb_is_in_mass_storage_mode())//判断是否处于USB连接状态
  if (mmi_phb_check_ready(MMI_TRUE))//检查电话本是否准备好
  
2、用以临时文件存放所有搜索到的.cvs格式的文件的文件名
  int FS_FindNext(FS_HANDLE FileHandle, FS_DOSDirEntry * FileInfo, WCHAR * FileName, UINT MaxLength)
  
3、读取文件信息,主要用到如下函数进行读取
  FS_Seek//定位到指定出
  FS_Read//读取指定大小的buffer
 
4、存储至电话本中
  mmi_phb_op_save_contact();
  在srv_phb_datamgr_op_done函数中,判断并循环处理
 
总结:主要是电话本和文件存取

   文件:kal_wsprintf
      FS_Open
      FS_Seek
      FS_Read
      FS_GetFileSize
      FS_Close
   电话本:
      
      mmi_phb_contact_info_struct *g_mmi_phb_contact_p;
      
      
      mmi_phb_save_contact_cntx_struct *g_mmi_phb_save_contact_p;
      
      
      mmi_phb_view_contact_cntx_struct *g_mmi_phb_view_contact_p;
      
      
      mmi_phb_resource_struct g_mmi_phb_resource;
      mmi_phb_caller_res_struct *g_mmi_phb_res_p;
  
      
      mmi_phb_list_cntx_struct *g_mmi_phb_list_p;
      mmi_phb_choose_field_struct g_mmi_phb_choose_field;
      mmi_phb_contact_info_struct g_mmi_phb_field_data;
      
            
      srv_phb_datamgr_cntx_struct g_srv_phb_datamgr_cntx;
      srv_phb_datamgr_op_cntx_struct g_srv_phb_datamgr_op_cntx;
      
      函数:mmi_phb_contact_info_struct* mmi_phb_contact_get_contact(U16 store_index)
     
    盘符:
      
      #define SRV_FMGR_SYSTEM_DRV         FS_GetDrive(FS_DRIVE_I_SYSTEM, 1, FS_NO_ALT_DRIVE)
      
      
      #define SRV_FMGR_PRIVATE_DRV        FS_GetDrive(FS_DRIVE_I_SYSTEM, 2, FS_ONLY_ALT_SERIAL )
      
      
      #define SRV_FMGR_PUBLIC_DRV         FS_GetDrive(FS_DRIVE_V_NORMAL, 2, FS_DRIVE_V_NORMAL | FS_DRIVE_V_REMOVABLE)
      
      
      #define SRV_FMGR_PHONE_DRV          FS_GetDrive(FS_DRIVE_V_NORMAL, 2, FS_DRIVE_V_NORMAL)
      
      
      #define SRV_FMGR_CARD_DRV           FS_GetDrive(FS_DRIVE_V_REMOVABLE, 1, FS_NO_ALT_DRIVE)
      
      
      #define SRV_FMGR_CARD2_DRV          FS_GetDrive(FS_DRIVE_V_REMOVABLE, 2, FS_NO_ALT_DRIVE)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值