本文實例講述了 Android 7.0開發獲取存儲設備信息的方法。分享給大家供大家參考,具體如下:
Android 7.0開發相較之前有不少改進,具體可參考前面的文章Android7.0版本影響開發的改進分析,這里簡單總結一下Android 7.0針對存儲設備的簡單操作方法。
MountPoint
我們通過MountPoint來描述android設備信息
private static class MountPoint {    String mDescription;    String mPath;    boolean mIsExternal;    boolean mIsMounted;    long mMaxFileSize;    long mFreeSpace;    long mTotalSpace;}實現mMountPathList
private final CopyOnWriteArrayList <MountPoint> mMountPathList = new CopyOnWriteArrayList<MountPoint>();public void init(Context context) {    mStorageManager = (StorageManager) context.getSystemService(Context.STORAGE_SERVICE);    final String defaultPath = getDefaultPath();    LogUtils.d(TAG, "init,defaultPath = " + defaultPath);    if (!TextUtils.isEmpty(defaultPath)) {      mRootPath = ROOT_PATH;    }    mMountPathList.clear();    // check media availability to init mMountPathList    StorageVolume[] storageVolumeList = mStorageManager.getVolumeList();    if (storageVolumeList != null) {      for (StorageVolume volume : storageVolumeList) {        MountPoint mountPoint = new MountPoint();        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
/*** This method checks weather certain path is external mount path.** @param path path which needs to be checked* @return true for external mount path, and false for not external mount path*/public boolean isExternalMountPath(String path) {    //LogUtils.d(TAG, "isExternalMountPath ,path =" + path);    if (path == null) {      return false;    }    for (MountPoint mountPoint : mMountPathList) {      if (mountPoint.mIsExternal && mountPoint.mPath.equals(path)) {        return true;      }    }    return false;}判斷內置存儲空間
public boolean isInternalMountPath(String path) {    //LogUtils.d(TAG, "isInternalMountPath ,path =" + path);    if (path == null) {      return false;    }    for (MountPoint mountPoint : mMountPathList) {      if (!mountPoint.mIsExternal && mountPoint.mPath.equals(path)) {        return true;      }    }    return false;}
希望本文所述對大家Android程序設計有所幫助。
| 
 
 | 
新聞熱點
疑難解答