1.android设备上的所有外接设备路径总结:

/***USB外接设备挂载路径*/publicstaticfinalStringUSB_STORAGE="/mnt/usb_storage";/***外置内存卡路径*/publicstaticfinalStringEXTERNAL_SD="/mnt/external_sd";/***内置内存卡路径*/publicstaticfinalStringINTERNAL_SD=Environment.getExternalStorageDirectory().getAbsolutePath();或者可以采用代码读取方法获取所有存储设备的路径,读取方法为:List<String>pathsList=newArrayList<String>();StorageManagerstorageManager=(StorageManager)cxt.getSystemService(Context.STORAGE_SERVICE);try{Methodmethod=StorageManager.class.getDeclaredMethod("getVolumePaths");method.setAccessible(true);Objectresult=method.invoke(storageManager);if(result!=null&&resultinstanceofString[]){String[]pathes=(String[])result;StatFsstatFs;for(Stringpath:pathes){if(!TextUtils.isEmpty(path)&&newFile(path).exists()){statFs=newStatFs(path);if(statFs.getBlockCount()*statFs.getBlockSize()!=0){pathsList.add(path);}}}}}catch(Exceptione){e.printStackTrace();FileexternalFolder=Environment.getExternalStorageDirectory();if(externalFolder!=null){pathsList.add(externalFolder.getAbsolutePath());}}//}returnpathsList.toArray(newString[pathsList.size()]);

2.容量获取方法

longavailableSize=FileUtils.getAvailableSize(path);longusedSize,totalSize;if(path.startsWith(AppContants.USB_STORAGE)){usedSize=MeasurementUtils.measureDirectory(path);totalSize=availableSize+usedSize;}else{totalSize=FileUtils.getTotalSize(path);usedSize=totalSize-availableSize;}其中,MeasurementUtils工具类为从android源码中的com.android.defcontainer包下获得的,如欲使用,请从相应的包下获得并原样复制包名和类到你的应用下;FileUtils工具类的方法为:/***获取指定目录总空间**@parampath*@return*/@SuppressWarnings("deprecation")publicstaticlonggetTotalSize(Stringpath){StatFsstat=newStatFs(path);longblockSize,totalBlocks;//判断手机Android版本if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.JELLY_BEAN_MR2){blockSize=stat.getBlockSizeLong();totalBlocks=stat.getBlockCountLong();//availableBlocks=stat.getAvailableBlocksLong();}else{blockSize=stat.getBlockSize();totalBlocks=stat.getBlockCount();//availableBlocks=stat.getAvailableBlocks();}longtotalSize=totalBlocks*blockSize;returntotalSize;}/***计算指定目录可用空间**@parampath*@return*/@SuppressWarnings("deprecation")publicstaticlonggetAvailableSize(Stringpath){StatFsstat=newStatFs(path);longblockSize,availableBlocks;//判断手机Android版本if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.JELLY_BEAN_MR2){blockSize=stat.getBlockSizeLong();//totalBlocks=stat.getBlockCountLong();availableBlocks=stat.getAvailableBlocksLong();}else{blockSize=stat.getBlockSize();//totalBlocks=stat.getBlockCount();availableBlocks=stat.getAvailableBlocks();}//longtotalSize=totalBlocks*blockSize;longavailSize=availableBlocks*blockSize;returnavailSize;}


更多相关文章

  1. android——OpenGL(2)——gl10方法解析
  2. [UE4]Android(安卓)打包步骤与keystore生成设置
  3. Android(安卓)Camera FW到Camera Hal调用流程
  4. android之VideoView和视频播放View的扩展
  5. Android动画TweenAnimation的使用方法
  6. [转]Android应用的权限设置
  7. android sdcard
  8. android 5.1 USB调试开关
  9. 【Android】小白进阶之接口和抽象类的使用

随机推荐

  1. 《Android开发从零开始》——13.Table La
  2. 常用知识篇 一 Selector state状态对应说
  3. Android中定义样式(1)
  4. [Android] TextView只显示一行,多余显示
  5. ANDROID样式的开发:SHAPE篇
  6. Android中gravity与layout_gravity的区别
  7. EventBus 《二》 Android(安卓)EventBus
  8. Android(安卓)安全加密:对称加密详解
  9. Android进阶(二十二)设置TextView文字水
  10. android:textAppearance解析