mtk磁盘空间检查

该代码段展示了在MTK平台上进行磁盘空间检查的实现,分别获取可移除驱动器和系统驱动器的可用空间。如果两个驱动器的剩余空间都小于MMI_JAVA_DOWNLOAD_BLOCK_SIZE,则弹出“内存不足”的提示。
 S8 mmi_get_system_driver(void)
{
    /*----------------------------------------------------------------*/
    /* 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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值