这三个问题其实可以归为一个问题,Android 6.0的SD卡和U盘都会挂载在 /mnt/media_rw/路径下,其实问题就是如何获取挂载信息

1. 存储服务StorageManagerService 里面有一个被隐藏的方法getVolumeList()可以获取挂载设备列表

2. android.os.storage.StorageVolume 就是用来表示每个挂载设备的类,可以获取到很多挂载设备的信息,但是很多信息是隐藏的

3. 可以通过StorageVolume的getDescription()方法来区分USB和SD卡

4. 所以必须要用反射来调用有关方法

    /*** 通过判断挂载路径能否移除确定外置SD卡是否存在** @param mContext* @return*/private static String getExtendedMemoryPath(Context mContext) {StorageManager mStorageManager = (StorageManager) mContext.getSystemService(Context.STORAGE_SERVICE);Class<?> storageVolumeClazz = null;try {storageVolumeClazz = Class.forName("android.os.storage.StorageVolume");Method getVolumeList = mStorageManager.getClass().getMethod("getVolumeList");Method getPath = storageVolumeClazz.getMethod("getPath");Method isRemovable = storageVolumeClazz.getMethod("isRemovable");Method getDescription = storageVolumeClazz.getMethod("getDescription", Context.class);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);String descprition = (String) getDescription.invoke(storageVolumeElement, mContext);if (removable && descprition.contains("SD")) {return path;}}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();} catch (NoSuchMethodException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();}return null;}

[sg] Android 6.0 判断SD卡是否挂载,获取SD卡路径,和挂载的U盘进行区分相关推荐

  1. android8卡顿,Android 8.0系统曝光,解决了安卓系统卡顿的问题

    原标题:Android 8.0系统曝光,解决了安卓系统卡顿的问题 8.0拟于今年5月17-19日召开的2017年谷歌I/O大会上正式宣布,之前已经曝光了该系统的一些特性,例如开发代号为奥利奥(Oero ...

  2. android 判断双卡手机号码,android双卡机中判断当前使用的是那张卡的数据流量

    今天主要讲的是在android 5.1及以上如何判断双卡手机中判断当前的流量是使用的那张卡. (例子中的代码会使用到java反射的知识) 首先判断数据流量开关是否打开: /** * 判断数据流量开关是 ...

  3. Android 7.0判断栈顶Activity错误 几率显示为launcher

    //Android 6.0的读取栈顶Activity的方法private String getTopActivityInfo() { ComponentName cn = null;String cl ...

  4. 正在升级android s7,喜欢!升级Android 8.0后,三星S7可以获取新的UI和Bixby: 功能太多...

    Galaxy S7和S7 edge是三星在2016年的旗舰手机. 工厂预装了Android 6.0系统,该系统已于今年1月正式升级为Android 7.0. 按照三星为每个旗舰店更新两个主要Andro ...

  5. Android调用系统自带的文件管理器获取图片绝对路径

    1.跳转到文件选择器进行文件选择 Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CA ...

  6. 安卓系统根据SIM卡槽ID获取SIM卡信息

    导入一个包: import android.telephony.SubscriptionManager; 声明变量: SubscriptionManager mSubscriptionManager ...

  7. 关于 android 6.0 上的 nuplayer 播放时的图像卡顿

    作为一个和 android nuplayer 打了 N年交道, 自以为已经上古司机的老码农, 这一次居然被坑了一个礼拜: 事情描述起来很简单, 测试人员突然发现目前的版本,播放很多视频都卡顿, 由于该 ...

  8. Android 7.0 高通平台-telephony-机器无Sim卡情况下,获取SIM卡状态方法getSimState偶现为6,而不是1

    TelephonyManager.java -------->getSimState接口 /** * Returns a constant indicating the state of the ...

  9. Android 5.0+高级动画开发 矢量图动画 轨迹动画 路径变换

    第1章 课程介绍 为了成就更多高逼格的人才,我专门整理了Android5.0以后主推的实现酷炫动画的新技术,教你掌握实现动画的高逼格技巧.课程中我会详细讲解每个动画效果实现的原理和所用的技术,并带你一 ...

最新文章

  1. c# html文本编辑器,C#实现简单文本编辑器
  2. 计算机算法对程序设计的作用,计算机编程中数学算法的优化策略
  3. win7如何打开防火墙某个端口的tcp连接
  4. 伪mac android,Mac,android sdk,monkey压力测试,真机
  5. jdk7启动时报“java.lang.VerifyError:Expecting a stackmap frame at branch target”
  6. 无埋点数据收集和adb monkey测试屏蔽通知栏
  7. kali linux超级用户_如何优雅的在Linux上使用Powershell]
  8. android开机动画多长时间_Android开机动画原理分析
  9. Python练习题(四)
  10. linux php服务器搭建,如何搭建linux服务器
  11. Lucene创建索引和搜索索引
  12. TIFF文件结构查看器AsTiffTagViewer ver 2.00
  13. 游戏《我的世界》马怎么繁殖?如何驯化?
  14. 星际战一直显示网络无法连接服务器,所有战网应用均无法连接到服务器,无法登陆...
  15. 利用python爬取京东平台评论及图片并进行分析
  16. LINUX 一键装机 PXE system-config-kickstart 资源 实现简单操作镜像装机
  17. java字符乱码问题_怎么解决java中的字符乱码问题
  18. Java基础编程题(02)求100-200之间的素数
  19. 从重视研发到建立高效的研发管理体系
  20. C#重写RichBox控件获取RTF格式的内容

热门文章

  1. IKAnalyzer2012FF_u1.jar 下载地址
  2. 【音频处理】Melodyne 麦乐迪软件安装 ( 安装 Melodyne 软件 | Melodyne 软件汉化 )
  3. p4899 [IOI2018] werewolf 狼人
  4. 壁纸 | 隐藏iPhone Dock栏
  5. Gitlab CI/CD Sonar 集成简版
  6. 32、长高压消防给水系统
  7. mapinfo的tab图层汉字乱码_如何解决MapInfo打开文字乱码的问题
  8. 用于《机械设计课程设计》中的减速箱设计的Python计算程序
  9. mysql 游戏服务器设计_网络游戏服务器数据库设计和实现.doc
  10. xp系统电脑拼不通服务器,XP电脑用户账户错误automation服务器不能建对象一步解决...