我是靠谱客的博主 迷路小懒虫,最近开发中收集的这篇文章主要介绍Android手机获取当前是否安装有外置SD卡以及外置SD卡的状态是否挂载mounted,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

该工具类说明:获取手机存储设备如手机本身存储以及插入的外置SD卡存储信息,包括根路径,是否可以移除,以及是否为挂载状态,可根据是否可移除来判断是否是机身存储以及是否是插入的外置SD卡。

package com.dh.lenovo.mysdcrd;
import android.content.Context;
import android.os.storage.StorageManager;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;

public class IsHaveOtherSdcard {

    public ArrayList<HashMap<String,Object>> getSdcardStatus(Context context){
        ArrayList<HashMap<String,Object>> list = new ArrayList<>();
        StorageManager storageManager = (StorageManager) context.getSystemService(Context.STORAGE_SERVICE);
        try {
            Method method_volumeList = StorageManager.class.getMethod("getVolumeList");
            method_volumeList.setAccessible(true);
            Object[] volumeList = (Object[]) method_volumeList.invoke(storageManager);
            if(volumeList.length>=1){
                for(int i=0;i<volumeList.length;i++){
                    HashMap<String,Object> map = new HashMap<>();
                    //存储根路径
                    map.put("path", (String) volumeList[i].getClass().getMethod("getPath").invoke(volumeList[i]));
                    //存储挂载状态mounted为挂载状态
                    map.put("state",(String) volumeList[i].getClass().getMethod("getState").invoke(volumeList[i]));
                    //是否可移除,可移除表示外置Sd卡,不可移除表示手机机身存储
                    map.put("isRemovable",(boolean) volumeList[i].getClass().getMethod("isRemovable").invoke(volumeList[i]));
                    list.add(map);
                }
                return list;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}

最后

以上就是迷路小懒虫为你收集整理的Android手机获取当前是否安装有外置SD卡以及外置SD卡的状态是否挂载mounted的全部内容,希望文章能够帮你解决Android手机获取当前是否安装有外置SD卡以及外置SD卡的状态是否挂载mounted所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部