android 检测u盘和sdcard

//方法一 android10 或者一下的应该可以使用 getVolumes()

int sdCardNum = 0;

int usbDiskNum = 0;

StorageManager mStorageManager = getSystemService(StorageManager.class);

List<VolumeInfo> volumes = mStorageManager.getVolumes();

//Collections.sort(volumes, VolumeInfo.getDescriptionComparator());

for (VolumeInfo vol : volumes) {

if (vol != null) {

DiskInfo disk = vol.getDisk();

if (disk.isSd()) {

sdCardNum++;

}else if(disk.isUsb()){

usbDiskNum++;

}

}

}

//另外不能直接调用getVolumes , 只通过invoke getVolumes 获取得到 List<VolumeInfo>

StorageManager mStorageManager = getSystemService(StorageManager.class);

Class<?> volumeInfoClazz;

Class<?> diskInfoClaszz;

try {

volumeInfoClazz = Class.forName("android.os.storage.VolumeInfo");

Method StorageManager_getVolumes = Class.forName("android.os.storage.StorageManager")

.getMethod("getVolumes");

int sdCardNum = 0;

int usbDiskNum = 0;

List<VolumeInfo> volumeInfos = (List<VolumeInfo>) StorageManager_getVolumes

.invoke(mStorageManager);

for(VolumeInfo volumeInfo: volumeInfos){

DiskInfo diskInfo = volumeInfo.getDisk();

if(diskInfo!=null) {

boolean isSD = diskInfo.isSd();

boolean isUSB = diskInfo.isUsb();

if (isSD) {

sdCardNum++;

}

if(isUSB){

usbDiskNum++;

}

}

}

Log.d("usb","find sdcard:"+sdCardNum);

Log.d("usb","find u-disk:"+usbDiskNum);

}catch (Exception e){

e.printStackTrace();

}

//以上获取的usb u盘数量会在 拔出u盘时不对应,所以可以使用一下方式

//准确获取u盘插入的个数和信息

UsbManager usbManager = (UsbManager) getSystemService(Context.USB_SERVICE);

HashMap<String, UsbDevice> devicelist = usbManager.getDeviceList();

Log.d("usb","u-diask count:"+devicelist.size());

相关推荐
拭心9 小时前
Google 提供的 Android 端上大模型组件:MediaPipe LLM 介绍
android
带电的小王11 小时前
WhisperKit: Android 端测试 Whisper -- Android手机(Qualcomm GPU)部署音频大模型
android·智能手机·whisper·qualcomm
梦想平凡11 小时前
PHP 微信棋牌开发全解析:高级教程
android·数据库·oracle
元争栈道12 小时前
webview和H5来实现的android短视频(短剧)音视频播放依赖控件
android·音视频
阿甘知识库12 小时前
宝塔面板跨服务器数据同步教程:双机备份零停机
android·运维·服务器·备份·同步·宝塔面板·建站
元争栈道13 小时前
webview+H5来实现的android短视频(短剧)音视频播放依赖控件资源
android·音视频
MuYe13 小时前
Android Hook - 动态加载so库
android
居居飒14 小时前
Android学习(四)-Kotlin编程语言-for循环
android·学习·kotlin
Henry_He17 小时前
桌面列表小部件不能点击的问题分析
android
工程师老罗17 小时前
Android笔试面试题AI答之Android基础(1)
android