当前位置:   article > 正文

主动获取U盘路径的方式_com.github.mjdev:libaums怎么知道u盘的路径

com.github.mjdev:libaums怎么知道u盘的路径

     在做Android多媒体开发的过程中,我们会经常与USB外部设备之间进行通讯,获取USB上的音乐视频文件,进行播放,这在互联网应用中可能会涉及少些,但是做过车载Android开发的应该都知道,基本每一款车的中控上面都有本地USB音乐这个应用,因此都会有获取USB设备上面的音乐,视频文件播放,下面就我在开发中遇到的获取到的u盘路径无法读写问题做下记录。

     基本上我们开发每个功能都是要保证需要主动获取和被动接收同时使用,才能不会导致拿到的信息不是最新的或者是没有的,usb读取视频,音乐文件也是一样,也需要主动获取,或者被动通过广播监听进行接收,关于被动广播监听获取u盘路径进行播放,这里就不多介绍,网络上有很多,这里主要是讲下主动获取(因为广播监听只有注册了广播才会收到,所以在开机起来就连好USB或者在应用还没有注册广播时候USB就已经连上了,这个时候需要主动获取U盘路径再去获取U盘视频音乐文件),下面是采用反射的原理去获取U盘路径:

  1. public String getUsbPath() {
  2. try {
  3. StorageManager storageManager = (StorageManager) HudMessageManager.getInstance().getContext().getSystemService(Context.STORAGE_SERVICE);
  4. Class storeManagerClazz = Class.forName("android.os.storage.StorageManager");
  5. Method getVolumesMethod = storeManagerClazz.getMethod("getVolumes");
  6. List<?> volumeInfos = (List<?>) getVolumesMethod.invoke(storageManager);
  7. Class volumeInfoClazz = Class.forName("android.os.storage.VolumeInfo");
  8. Field udiskPath = volumeInfoClazz.getDeclaredField("internalPath");
  9. Method getFsUuidMethod = volumeInfoClazz.getMethod("getFsUuid");
  10. if (volumeInfos != null) {
  11. for (Object volumeInfo : volumeInfos) {
  12. String uuid = (String) getFsUuidMethod.invoke(volumeInfo);
  13. if (uuid != null) {
  14. String sUdiskPath = (String) udiskPath.get(volumeInfo); // 结果是 /mnt/media_rw/28BA-794A
  15. if (!TextUtils.isEmpty(sUdiskPath) && sUdiskPath.startsWith("/mnt/media_rw")) {
  16. return sUdiskPath.replace("/mnt/media_rw", "/storage");
  17. }
  18. return sUdiskPath;
  19. }
  20. }
  21. }
  22. } catch (Exception e) {
  23. HudMessageUtils.sdkLog(" check udisk error = " + e.getMessage());
  24. }
  25. return usbPath;
  26. }

特别要注意的是通过(String) udiskPath.get(volumeInfo)获取到的路径是/mnt/media_rw/28BA-794A(28BA-794A是U盘的uuid),通过这个路径去读U盘上面的文件是没有可读写权限的,需要修改为/storage/28BA-794A。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/262281
推荐阅读
相关标签
  

闽ICP备14008679号