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());

相关推荐
2501_9151063226 分钟前
Perfdog 成本变高之后,Windows 上还能怎么做 iOS APP 性能测试
android·ios·小程序·https·uni-app·iphone·webview
愤怒的代码1 小时前
从开发调试到生产上线:全维度 Android 内存监控与分析体系构建
android·java·kotlin
jzlhll1231 小时前
Android最简化发布模块到mavenCentral
android·mavencentral
2501_915106321 小时前
iOS 安装了证书,HTTPS 还是抓不到
android·网络协议·ios·小程序·https·uni-app·iphone
好奇龙猫2 小时前
【人工智能学习-AI-MIT公开课13.- 学习:遗传算法】
android·人工智能·学习
TO_ZRG2 小时前
Unity打包安卓、iOS知识点
android·unity·android studio
周杰伦fans2 小时前
AndroidStudioJava国内镜像地址gradle
android·java·android-studio
艾莉丝努力练剑2 小时前
【Linux进程控制(一)】进程创建是呼吸,进程终止是死亡,进程等待是重生:进程控制三部曲
android·java·linux·运维·服务器·人工智能·安全
2501_924064112 小时前
2026年移动应用渗透测试流程方案及iOS与Android框架对比
android·ios
用户69371750013842 小时前
谷歌官方推荐:Android 性能优化全攻略——从工具到实战,两周提升 App 评分
android·android studio·android jetpack