Android(安卓)获取外部存储设备列表
16lz
2021-01-24
由于不同芯片设备的外部存储设备不太统一,比如说外部sdcard,u盘等,他们的路径在不同芯片上面的定义是不一样的,所以我们需要动态的去获取机器当前的外部设备mount 的情况
Android 通过 StorageManager 类来管理存储设备的,这个类里面包含一些隐藏的方法:
getVolumeList —–> 返回StorageVolume 类型的数组,包含系统所有的存储设备volume
getVolumePaths—–> 返回String 类型的数组,包含系统所有存储设备的挂在路径
以下以getVolumeList 为例来获取系统所有的可插拔的设备
priavte StorageManager mStorageManager; private Method getStorageVolumes; private Method getPath; mStorageManager = (StorageManager) getSystemService(Context.STORAGE_SERVICE); try { getStorageVolumes = mStorageManager.getClass().getMethod("getVolumeList"); StorageVolume[] volumeList = (StorageVolume[]) getStorageVolumes.invoke(mStorageManager); if(volumeList != null){ for(StorageVolume volume :volumeList){ if(volume.isRemovable() && volume.getState().equals("mounted")){ getPath = volume.getClass().getMethod("getPath"); Log.d("MainActivity", "getPath.invoke(volume.getClass()):" + getPath.invoke(volume)); String mountPoint = (String) getPath.invoke(volume); } } } } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); }
更多相关文章
- Android(安卓)Studio 非常好用的几款插件,好用到爆
- 近日微软呼吁欧盟对谷歌Android系统展开调查
- Android(安卓)修改权限
- Android(安卓)外观模式
- PHP将数据库查询内容转换为JSON格式且显示中文
- Android(安卓)Bluetooth 蓝牙开发资料大全【新】
- Java集合框架——Android中的ArrayList源码分析
- 让你的模拟器不再卡:VirtualBox安裝 Android-x86 4.0
- 扔掉USB线,无需无线路由器,利用笔记本电脑(Win7系统)快速连接你的And