電話本導入導出

將聯繫人導出到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     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章