如题 我原本用这段代码获取的public static long[] readSpaceInfo(){
long[] array = new long[2];
StatFs sf = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath());
int blockSize = sf.getBlockSize();
long total = sf.getBlockCount()*blockSize;
array[0] = total;
long available = sf.getAvailableBlocks()*blockSize;
array[1] = available;
return array;
}
该如何解决发现这段代码在android4.2.2系统上获取到的数据是错误的 我的手机是nexus4 标准的官方系统
请问这个Androidsdcard
long[] array = new long[2];
StatFs sf = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath());
int blockSize = sf.getBlockSize();
long total = sf.getBlockCount()*blockSize;
array[0] = total;
long available = sf.getAvailableBlocks()*blockSize;
array[1] = available;
return array;
}
该如何解决发现这段代码在android4.2.2系统上获取到的数据是错误的 我的手机是nexus4 标准的官方系统
请问这个Androidsdcard
解决方案 »
- 关于androidNotification的问题
- Android新手源代码编译出问题!!请教高手,,
- 数据库中取数据后中文乱码
- android.permission.RECEIVE_SMS与android.provider.Telephony.SMS_RECEIVED区别与联系
- android程序调用googlemap 卫星图于底层图错位,求人指教
- 关于AsyncTask
- gridview item 设置为disenable
- 求解如何实现360手机助手那种通过USB接口读取手机信息的问题
- SQLiteOpenHelper初始化的时候,context怎么填写呢
- invalidate();就是不执行!不知道为什么求大神解决下!!!!
- android 如何把一个矩形,变成梯形
- OpenGL如何播放yuv视频
private static long getMemoryLength() {
long result = 0;
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
result = availableBlocks * blockSize;
}
return result;
}
这是我写的方法,基本上和你一样,在4.2的版本没有问题,剩余存储量显示正常。
4.22没有试过。
这个long的值是返回总的字节数。如果要获得kb mb gb 要做换算
貌似支持sdcard扩展的设备都没问题 如果是不支持扩展只有内部存储卡就会出问题 你建个4.2.2没有外部sdcard的模拟器试试看
最终我决定用命令行 可以正确得出结果 用df命令如果代码中不准确,一些存储check怎么做啊。