这对于在调试模式下通过USB线连接的真实小工具非常有效:
StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
long bytesTotal = (long) stat.getBlockSize() * (long) stat.getBlockCount();
long bytesAvail = (long) stat.getBlockSize() * (long) stat.getAvailableBlocks();
但是,如果我尝试用AVD运行它,我得到的只是0字节。 工具| Android | AVD经理|您的虚拟设备|查看详情给了我这个:
- 姓名:Nexus_5_API_21_x86
- CPU / ABI:Google API Intel Atom(x86)
- 路径:C:\ Users \ Owner.android \ avd \ Nexus_5_API_21_x86.avd
- 目标:Google API(API级别21)
- 皮肤:nexus_5
- SD卡:200M
- 快照:没有
- hw.dPad:没有
- runtime.network.speed:full
- hw.accelerometer:是的
- hw.device.name:Nexus 5
- vm.heapSize:64
- skin.dynamic:没有
- hw.device.manufacturer:Google
- hw.gps:是
- hw.audioInput:是
- tag.id:google_apis
- hw.camera.back:emulated
- hw.mainKeys:没有
- AvdId:Nexus_5_API_21_x86
- hw.camera.front:emulated
- hw.lcd.density:480
- runtime.scalefactor:auto
- avd.ini.displayname:Nexus 5 API 21 x86
- snapshot.present:no
- hw.device.hash2:MD5:2fa0e16c8cceb7d385183284107c0c88
- hw.ramSize:1536
- hw.trackBall:没有
- hw.battery:是的
- hw.sdCard:没有
- tag.display:Google API
- runtime.network.latency:none
- hw.keyboard:no
- hw.sensors.proximity:是
- disk.dataPartition.size:200M
- hw.sensors.orientation:是的
- avd.ini.encoding:UTF-8
- hw.gpu.enabled:是的
醇>
第6行说我有一张200MB的SD卡;但是,第30行看起来很可疑。它是否与HAXM虚拟化有关?还有一个大问题:如何在运行时获取SD卡/外部存储大小?我真的很感激任何建议,因为我现在正处于亏损状态......:\
修改
好的,现在我要回答我自己的问题。
从头开始重新构建AVD后,问题就解决了。现在我有我所有的MB。
滑稽。必须是一个小故障或smth ...
不,这与HAXM没有任何关系。在观看了David Gassner的Lynda.com视频教程之后,我感到很沮丧(他也使用了HAXM,没有任何问题。)