`
debuglog
  • 浏览: 194664 次
社区版块
存档分类
最新评论

存储容量检测 注意构建StatFs对象的参数合法性

阅读更多
Android 2.3.3
Eclipse Version: 3.7.0
LogCat

LogCat 报错信息:

02-14 10:24:27.134: ERROR/(4355): statfs nokia failed, errno: 2
02-14 10:24:27.144: WARN/System.err(4355): java.lang.IllegalArgumentException
02-14 10:24:27.153: WARN/System.err(4355): at android.os.StatFs.native_setup(Native Method)
02-14 10:24:27.173: WARN/System.err(4355): at android.os.StatFs.(StatFs.java:32)
02-14 10:24:27.173: WARN/System.err(4355): at com.tmall.util.Devices.getBlock(Devices.java:161)
02-14 10:24:27.184: WARN/System.err(4355): at com.tmall.util.Devices.getUsedRatio(Devices.java:199)
02-14 10:24:27.184: WARN/System.err(4355): at com.tmall.nokia.Check.checkSDBlock(Check.java:271)
02-14 10:24:27.184: WARN/System.err(4355): at com.tmall.nokia.Check.run(Check.java:332)
02-14 10:24:27.195: WARN/System.err(4355): at java.lang.Thread.run(Thread.java:1019)

发生错误原因分析:
分析发生错误部分代码,发现在构建StatFs对象时出错

 

	nokiaPath = "nokia"
	StatFs sf = new StatFs(nokiaPath);

 StatFs用于对系统的存储容量进行检测。报错是因为构建StatFs对象时使用了非法参数。"nokia"不是一个合法有效的参数,合法参数应该形如"sdcard"。

 

解决办法:

使用默认的路径及名称是最好的方法

	nokiaPath = Environment.getExternalStorageDirectory().getPath();// nokiaPath ="/mnt/sdcard"
	//nokiaPath = Environment.getExternalStorageDirectory().getName();// nokiaPath ="sdcard"
	StatFs sf = new StatFs(nokiaPath);

  
如果一定需要自定义路径作为参数,也应使用类似下列格式的有效自定义路径

	nokiaPath = "/mnt/sdcard/nokia/";
	nokiaPath = "/sdcard/nokia/";
	nokiaPath = "sdcard/nokia/";

  

以合法的路径及名称作为参数,一般类似以"/mnt/sdcard" 或"sdcard/"开头的路径都是正确的。针对不同硬件,可能需要在编程中通过测试,使用有效格式。

 

1
1
分享到:
评论

相关推荐

    android 查询存储卡剩余容量 (Environment 加 StatFs)

    android手机查询存储卡剩余容量 (Environment 加 StatFs)

    linux下df命令statfs函数实现

    利用statfs函数,实现了C代码查询磁盘空间大小,基本上等同于df命令。测试可用。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...

    获取手机存储空间

    获取手机存储空间值 private String getInternalMemoryPath() { return Environment.getDataDirectory().getPath(); } /** * * @return 内置sd卡路径 */ private String getExternalMemoryPath() { ...

    Android检测手机中存储卡及剩余空间大小的方法(基于Environment,StatFs及DecimalFormat)

    主要介绍了Android检测手机中存储卡及剩余空间大小的方法,基于Environment,StatFs及DecimalFormat实现该功能,具有一定参考借鉴价值,需要的朋友可以参考下

    Android 获取SDCard卡容量.rar

    Android获取手机内置存储SDCard的使用情况,包括SD卡容量、已使用大小,剩余容量大小等信息,将获取的过程写入按钮事件中,单击按钮后,获取SD卡容量信息。  if(Environment.getExternalStorageState().equals...

    Android 解析如何检测获取SDCard内存剩余空间.rar

    SDCard存储卡在 Android 手机上是可以随时插拔的,每次的动作都会引起Android系统ACTION_BROADCAST,本例子将计算出 SDCard 的剩余容量和总容量。供测试的sd卡中存了两首歌和一个30M的文件,现在检测剩余的空间正好...

    获取sdcard容量

    获取当前sdcard的容量,帮助判断能否继续写入文件

    linux下获取TF卡容量.c

    totalBytes = (U64)statFS.f_blocks * (U64)statFS.f_frsize; //详细的分区总容量, 以字节为单位 freeBytes = (U64)statFS.f_bfree * (U64)statFS.f_frsize; //详细的剩余空间容量,以字节为单位 usedBytes = (U...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    6.8 存储卡剩余多少容量——Environment加StatFs 6.9 访问本机内存与存储卡——File的创建与删除 6.10 实现可定时响起的闹钟——PendingIntent与AlarmManager的运用 6.11 黑名单来电自动静音——PhoneStateListener...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    6.8 存储卡剩余多少容量——Environment加StatFs 6.9 访问本机内存与存储卡——File的创建与删除 6.10 实现可定时响起的闹钟——PendingIntent与AlarmManager的运用 6.11 黑名单来电自动静音——PhoneStateListener...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    6.8 存储卡剩余多少容量——Environment加StatFs 6.9 访问本机内存与存储卡——File的创建与删除 6.10 实现可定时响起的闹钟——PendingIntent与AlarmManager的运用 6.11 黑名单来电自动静音——PhoneStateListener...

    Google Android SDK开发范例大全(完整版)

    6.8 存储卡剩余多少容量——Environment加StatFs 6.9 访问本机内存与存储卡——File的创建与删除 6.10 实现可定时响起的闹钟——PendingIntent与AlarmManager的运用 6.11 黑名单来电自动静音——PhoneStateListener...

    Android安卓中循环录像并检测内存卡容量

    * 循环录像,当内存卡容量少于300M时,自动删除视频列表里面的第一个文件 */ private void xunhuanluxiang() { if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { ...

    Google Android SDK开发范例大全的目录

    6.8 存储卡剩余多少容量——Environment加StatFs 6.9 访问本机内存与存储卡——File的创建与删除 6.10 实现可定时响起的闹钟——PendingIntent与AlarmManager的运用 6.11 黑名单来电自动静音——PhoneStateListener...

    Google+Android+SDK开发范例大全

    SEND 6.8 存储卡剩余多少容量——Environment加StatFs 6.9 访问本机内存与存储卡——File的创建与删除 6.10 实现可定时响起的闹钟——PendingIntent与AlarmManager的运用 6.11 黑名单来电自动静音——...

    Google Android SDK开发范例大全(完整版附部分源码).pdf

    6.8 存储卡剩余多少容量——Environment加StatFs 6.9 访问本机内存与存储卡——File的创建与删除 6.10 实现可定时响起的闹钟——PendingIntent与AlarmManager的运用 6.11 黑名单来电自动静音——...

    Google Android sdk 开发范例大全 部分章节代码

    6.8 存储卡剩余多少容量——Environment加StatFs 6.9 访问本机内存与存储卡——File的创建与删除 6.10 实现可定时响起的闹钟——PendingIntent与AlarmManager的运用 6.11 黑名单来电自动静音——PhoneStateListener...

Global site tag (gtag.js) - Google Analytics