Android 7.0开发获取存储设备信息的方法
本文实例讲述了Android7.0开发获取存储设备信息的方法。分享给大家供大家参考,具体如下:
Android7.0开发相较之前有不少改进,具体可参考前面的文章Android7.0版本影响开发的改进分析,这里简单总结一下Android7.0针对存储设备的简单操作方法。
MountPoint
我们通过MountPoint来描述android设备信息
privatestaticclassMountPoint{ StringmDescription; StringmPath; booleanmIsExternal; booleanmIsMounted; longmMaxFileSize; longmFreeSpace; longmTotalSpace; }
实现mMountPathList
privatefinalCopyOnWriteArrayListmMountPathList=newCopyOnWriteArrayList (); publicvoidinit(Contextcontext){ mStorageManager=(StorageManager)context.getSystemService(Context.STORAGE_SERVICE); finalStringdefaultPath=getDefaultPath(); LogUtils.d(TAG,"init,defaultPath="+defaultPath); if(!TextUtils.isEmpty(defaultPath)){ mRootPath=ROOT_PATH; } mMountPathList.clear(); //checkmediaavailabilitytoinitmMountPathList StorageVolume[]storageVolumeList=mStorageManager.getVolumeList(); if(storageVolumeList!=null){ for(StorageVolumevolume:storageVolumeList){ MountPointmountPoint=newMountPoint(); mountPoint.mDescription=volume.getDescription(context); mountPoint.mPath=volume.getPath(); mountPoint.mIsMounted=isMounted(volume.getPath()); mountPoint.mIsExternal=volume.isRemovable(); mountPoint.mMaxFileSize=volume.getMaxFileSize(); LogUtils.d(TAG,"init,description:"+mountPoint.mDescription+",path:" +mountPoint.mPath+",isMounted:"+mountPoint.mIsMounted +",isExternal:"+mountPoint.mIsExternal+",mMaxFileSize:"+mountPoint.mMaxFileSize); mMountPathList.add(mountPoint); } } IconManager.getInstance().init(context,defaultPath+SEPARATOR); }
判断是否是外置sdcard
/** *Thismethodchecksweathercertainpathisexternalmountpath. * *@parampathpathwhichneedstobechecked *@returntrueforexternalmountpath,andfalsefornotexternalmountpath */ publicbooleanisExternalMountPath(Stringpath){ //LogUtils.d(TAG,"isExternalMountPath,path="+path); if(path==null){ returnfalse; } for(MountPointmountPoint:mMountPathList){ if(mountPoint.mIsExternal&&mountPoint.mPath.equals(path)){ returntrue; } } returnfalse; }
判断内置存储空间
publicbooleanisInternalMountPath(Stringpath){ //LogUtils.d(TAG,"isInternalMountPath,path="+path); if(path==null){ returnfalse; } for(MountPointmountPoint:mMountPathList){ if(!mountPoint.mIsExternal&&mountPoint.mPath.equals(path)){ returntrue; } } returnfalse; }
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android文件操作技巧汇总》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android布局layout技巧总结》、《Android开发入门与进阶教程》、《Android资源操作技巧汇总》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。