目前PC上看到的总内存大小以及可用存储大小是通过如下方式计算出来的:
/frameworks/av/media/mtp/MtpStorage.cpp
uint64_t MtpStorage::getMaxCapacity() {
62 if (mMaxCapacity == 0) {
63 struct statfs stat;
64 if (statfs(getPath(), &stat))
65 return -1;
66 mMaxCapacity = (uint64_t)stat.f_blocks * (uint64_t)stat.f_bsize;
67 }
68 return mMaxCapacity;
69 }
70
71 uint64_t MtpStorage::getFreeSpace() {
72 struct statfs stat;
73 if (statfs(getPath(), &stat))
74 return -1;
75 return (uint64_t)stat.f_bavail * (uint64_t)stat.f_bsize;
76 }
此值仅代表真实内部存储分区的实际大小。如需更改显示,可修改此函数的实现来达到期望的显示效果