android 格式化USB 和移除USB(U盘)

您所在的位置:网站首页 u盘手机上格式化 android 格式化USB 和移除USB(U盘)

android 格式化USB 和移除USB(U盘)

2024-07-15 18:04:46| 来源: 网络整理| 查看: 265

项目需要,每次插入U盘需要格式化。

刚看到这个需求的时候感觉很简单,调一行api就搞定的,事实证明还是太年轻了

android没有提供相应的api,于是百度

参考 Android格式化外部设备如USB等_AZZ的博客-CSDN博客

按照一贯的风格,直接CV大法,兴高采烈的发现行不通,有些类在android高版本都没了,这篇博客是基于android5.0,这会儿在我这用不成。

后来翻了很久,发现了StorageManager这个关键的类。

这个类在/frameworks/base/core/java/android/os/storage/StorageManager.java下,

StorageManager是Android SDK中管理存储设备的一个类。其中的存储设备分内部存储和外部存储,外部存储可以有SDCard、U盘等其他挂载的外设。

还有StorageVolume类StorageVolume代表的是一个设备信息的数据结构,里面包含了名称、路径、挂载状态等等信息。

在StorageManager中我找到了两个方法

移除U盘:

 格式化U盘:

 这两个方法没有任何说明,并且是hide标签,意味着得用反射。还有参数volid我一度不知道是啥玩意儿。

尝试以后,通过传入StorageVolume.getid(usb的id),成功。

下面附上代码:

// 获取 StorageVolume 对象 public void getStoragePath(Context mContext) { mStorageManager = (StorageManager) mContext.getSystemService(Context.STORAGE_SERVICE); Class storageVolumeClazz = null; try { storageVolumeClazz = Class.forName("android.os.storage.StorageVolume"); //暂且称之为获取usb列表 Method getVolumeList = mStorageManager.getClass().getMethod("getVolumeList"); //拿到format方法 Method format = mStorageManager.getClass().getMethod("format", String.class); //拿到StorageVolume 的getpath方法 Method getPath = storageVolumeClazz.getMethod("getPath"); //拿到StorageVolume 的getId方法 Method getId = storageVolumeClazz.getMethod("getId"); Method isRemovable = storageVolumeClazz.getMethod("isRemovable"); Object result = getVolumeList.invoke(mStorageManager); final int length = Array.getLength(result); //遍历列表 for (int i = 0; i < length; i++) { Object storageVolumeElement = Array.get(result, i); String path = (String) getPath.invoke(storageVolumeElement); boolean removable = (Boolean) isRemovable.invoke(storageVolumeElement); //如果当前的usb地址和我们定义的地址一样的话,就操作它 if (removable && path.equals(mPreferUsbPath)) { String id = (String) getId.invoke(storageVolumeElement); //格式化它!! format.invoke(mStorageManager, id); } } } catch (Exception e) { e.printStackTrace(); } }

以上,格式化USB算是完成了。

顺便还解决了移除USB功能,刚好是下周要做的功能,开心!!!



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭