您的位置:首页 > 移动开发 > Android开发

[Android] Android 判断SD卡是否存在及容量查询

2016-10-22 15:27 393 查看
原文传送门

Android 判断SD卡是否存在及容量查询的简单方法如下:

首先要在AndroidManifest.xml中增加SD卡访问权限

[html] view
plain copy

 





<!-- 在SDCard中创建与删除文件权限 -->  

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>  

<!-- 往SDCard写入数据权限 -->  

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>   

SD卡是否存在

[java] view
plain copy

 





private boolean ExistSDCard() {  

  if (android.os.Environment.getExternalStorageState().equals(  

    android.os.Environment.MEDIA_MOUNTED)) {  

   return true;  

  } else  

   return false;  

 }  

SD卡剩余空间

[java] view
plain copy

 





public long getSDFreeSize(){  

     //取得SD卡文件路径  

     File path = Environment.getExternalStorageDirectory();   

     StatFs sf = new StatFs(path.getPath());   

     //获取单个数据块的大小(Byte)  

     long blockSize = sf.getBlockSize();   

     //空闲的数据块的数量  

     long freeBlocks = sf.getAvailableBlocks();  

     //返回SD卡空闲大小  

     //return freeBlocks * blockSize;  //单位Byte  

     //return (freeBlocks * blockSize)/1024;   //单位KB  

     return (freeBlocks * blockSize)/1024 /1024; //单位MB  

   }      

SD卡总容量

[java] view
plain copy

 





public long getSDAllSize(){  

     //取得SD卡文件路径  

     File path = Environment.getExternalStorageDirectory();   

     StatFs sf = new StatFs(path.getPath());   

     //获取单个数据块的大小(Byte)  

     long blockSize = sf.getBlockSize();   

     //获取所有数据块数  

     long allBlocks = sf.getBlockCount();  

     //返回SD卡大小  

     //return allBlocks * blockSize; //单位Byte  

     //return (allBlocks * blockSize)/1024; //单位KB  

     return (allBlocks * blockSize)/1024/1024; //单位MB  

   }      
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: