{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S8 drive;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
drive = (S8) FS_GetDrive(FS_DRIVE_V_NORMAL, 2, FS_DRIVE_V_NORMAL);
if ((drive >= 'A') && (drive <= 'Z'))
{
return drive;
}
return (S8) 0;
}
MMI_BOOL mmi_pre_momory_check(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
FS_HANDLE fs_ret = FS_NO_ERROR;
FS_DiskInfo disk_info;
U32 memory_card_free_space = 0, system_free_space = 0;
S8 drv_asc[10];
U16 drv_ucs[10];
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
memset(drv_asc, 0, sizeof(drv_asc));
memset(drv_ucs, 0, sizeof(drv_ucs));
sprintf(drv_asc, "%c:\\", mmi_get_removeable_driver());
mmi_asc_to_wcs(drv_ucs, (PS8) drv_asc);
fs_ret = FS_GetDiskInfo((kal_uint16*) drv_ucs, &disk_info, FS_DI_BASIC_INFO | FS_DI_FREE_SPACE);
if (fs_ret >= FS_NO_ERROR)
{
memory_card_free_space = disk_info.FreeClusters * disk_info.SectorsPerCluster * disk_info.BytesPerSector;
}
memset(drv_asc, 0, sizeof(drv_asc));
memset(drv_ucs, 0, sizeof(drv_ucs));
sprintf(drv_asc, "%c:\\", mmi_get_system_driver());
mmi_asc_to_wcs(drv_ucs, (PS8) drv_asc);
fs_ret = FS_GetDiskInfo((kal_uint16*) drv_ucs, &disk_info, FS_DI_BASIC_INFO | FS_DI_FREE_SPACE);
if (fs_ret >= FS_NO_ERROR)
{
system_free_space = disk_info.FreeClusters * disk_info.SectorsPerCluster * disk_info.BytesPerSector;
}
/* popup "Not enough memory" */
if ((system_free_space < MMI_JAVA_DOWNLOAD_BLOCK_SIZE)&&(memory_card_free_space < MMI_JAVA_DOWNLOAD_BLOCK_SIZE))
{
mmi_display_popup((UI_string_type)GetString(STR_GLOBAL_NOT_ENOUGH_MEMORY), MMI_EVENT_FAILURE);
return MMI_FALSE;
}
return MMI_TRUE;
}
该代码段展示了在MTK平台上进行磁盘空间检查的实现,分别获取可移除驱动器和系统驱动器的可用空间。如果两个驱动器的剩余空间都小于MMI_JAVA_DOWNLOAD_BLOCK_SIZE,则弹出“内存不足”的提示。

350

被折叠的 条评论
为什么被折叠?



