由于不同芯片设备的外部存储设备不太统一,比如说外部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();        }

更多相关文章

  1. Android(安卓)Studio 非常好用的几款插件,好用到爆
  2. 近日微软呼吁欧盟对谷歌Android系统展开调查
  3. Android(安卓)修改权限
  4. Android(安卓)外观模式
  5. PHP将数据库查询内容转换为JSON格式且显示中文
  6. Android(安卓)Bluetooth 蓝牙开发资料大全【新】
  7. Java集合框架——Android中的ArrayList源码分析
  8. 让你的模拟器不再卡:VirtualBox安裝 Android-x86 4.0
  9. 扔掉USB线,无需无线路由器,利用笔记本电脑(Win7系统)快速连接你的And

随机推荐

  1. Android NDK编译时出现的问题以及解决办
  2. Android下的SQLite数据库的相关操作及And
  3. Android Java方法链起来!链式调用方法、仿
  4. 第一章:初入Android大门(程序加载应用)
  5. Android SDK Manager设置代理服务器和端
  6. android 中,关于线程安全退出的问题(from s
  7. android 验证码 (canvas)
  8. Android中ListView异步加载数据
  9. Android — 创建和修改 Fragment 的方法
  10. openssl与cryptoAPI交互AES加密解密