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