加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

A33 Flash容量显示

发布时间:2020-12-15 19:52:45 所属栏目:百科 来源:网络整理
导读:A33平台中一些客户定制软件中要求把存储容量显示做成4G、8G、16G显示,这样在终端客户就不需要解释容量显示不正确的问题: ? ? ? 在这一问题上,我们首先会想到一个“availSize”或者“totalSize”,通过跟踪我们发现,在androidframeworksbasepackagesD

A33平台中一些客户定制软件中要求把存储容量显示做成4G、8G、16G显示,这样在终端客户就不需要解释容量显示不正确的问题:

? ? ? 在这一问题上,我们首先会想到一个“availSize”或者“totalSize”,通过跟踪我们发现,在androidframeworksbasepackagesDefaultContainerServicesrccomandroiddefcontainerDefaultContainerService.java 中:

......

@Override
????????public?long[]?getFileSystemStats(String?path)?{
????????????Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);
????????????try?{
????????????????final?StructStatVfs?stat?=?Libcore.os.statvfs(path);
????????????????final?long?totalSize?=?stat.f_blocks?*?stat.f_bsize;?//可以在这个位置入手
????????????????final?long?availSize?=?stat.f_bavail?*?stat.f_bsize;
????????????????return?new?long[]?{?totalSize,?availSize?};
????????????}?catch?(ErrnoException?e)?{
????????????????throw?new?IllegalStateException(e);
????????????}
????????}

......

修改如下:

......

public?long[]?getFileSystemStats(String?path)?{
????????????Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);
????????????try?{
????????????????final?StructStatVfs?stat?=?Libcore.os.statvfs(path);
????????????????boolean?phonysize?=?false;??//?set?true?if?need?phony?size,?Await
????????????????long?totalSize?=?stat.f_blocks?*?stat.f_bsize;
????????????????long?availSize?=?stat.f_bavail?*?stat.f_bsize;
????????????????if(phonysize)?{
????????????????????long?usedsize?=?totalSize?-?availSize;
????????????????????//if("/mnt/sdcard".equals(path))?{??//?set?path?to?"/mnt/sdcard"?if?single?user
????????????????????if("/data".equals(path))?{??//?set?path?to?"/data"?if?multiusers
??????????????????????if((totalSize?>?8*1024L*1024*1024)?&&?(totalSize?<?16*1024L*1024*1024))?{
??????????????????????????totalSize?=?16*1024L*1024*1024;
??????????????????????}?else?if?((totalSize?>?4*1024L*1024*1024)?&&?(totalSize?<?8*1024L*1024*1024))?{
??????????????????????????totalSize?=?8*1024L*1024*1024;
??????????????????????}?else?if?(totalSize?<?4*1024L*1024*1024)?{
??????????????????????????totalSize?=?4*1024L*1024*1024;
??????????????????????????}
?????????????????????}
????????????????????availSize?=?totalSize?-?usedsize;
??????????????????}
????????????????????return?new?long[]?{?totalSize,?availSize?};
???????????????}?catch?(ErrnoException?e)?{
????????????????throw?new?IllegalStateException(e);
????????????}
????????}

......

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读