展开全部

1.方法一

//内置sd卡路径String sdcardPath = System.getenv("EXTERNAL_STORAGE"); //内置sd卡路径String sdcardPath = Environment.getExternalStorageDirectory().getAbsolutePath();//外置置sd卡路径String extSdcardPath = System.getenv("SECONDARY_STORAGE");

在Enviroment类的源码中获得sd卡路径其实也是通过32313133353236313431303231363533e4b893e5b19e31333365666230 System.getnv() 方法来实现的,如隐藏的方法:

/** {@hide} */public static File getLegacyExternalStorageDirectory() {

return new File(System.getenv(ENV_EXTERNAL_STORAGE));}

注:更详细的内容还是去看Enviroment源码。

另外要注意的是,在API 23版本中 SECONDARY_STORAGE 被移除。

2.方法二

代码如下:

private static String getStoragePath(Context mContext, boolean is_removale) {

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");

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);

if (is_removale == removable) {

return path;

}

}

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (InvocationTargetException e) {

e.printStackTrace();

} catch (NoSuchMethodException e) {

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

}

return null;}

androidsdcard挂载目录_获取android手机的自带存储路径和sdcard存储路径相关推荐

  1. androidsdcard挂载目录_(Android系统目录结构)/mnt/sdcard 和 sdcard 的区别

    mnt/是Unix/Linux系统下外部设备的专用目录,Linux默认挂载外部设备都会挂载到这个目录;如将SD卡挂载后,会生成目录:/mnt/sdcard/. shell@aeon6735m_65c_ ...

  2. androidsdcard挂载目录_Android获取手机自带SDCard和外置SDCard路径

    获取内置SD卡很简单,就一行代码 /** * 获取内置SD卡路径 * @return */ public String getInnerSDCardPath() { return Environmen ...

  3. android每个程序的内存大小,如何获取Android手机全部内存和可用内存尺寸

    通过读取文件"/proc/meminfo"的信息能够获取手机Memory的总量,而通过ActivityManager.getMemoryInfo(ActivityManager.M ...

  4. Unity获取Android手机的RAM和剩余RAM和ROM

    Unity获取Android手机的RAM和剩余RAM和ROM 前言 一.Android工程方法的实现 二.生成aar 三.Untiy中的调用 前言 项目工作需要,在游戏APP运行时,获取当前手机的剩余 ...

  5. 获取Android手机总内存和可用内存

    在android开发中,有时候我们想获取手机的一些硬件信息,比如android手机的总内存和可用内存大小.这个该如何实现呢? 通过读取文件"/proc/meminfo"的信息能够获 ...

  6. 获取Android手机的分辨率通过ADB命令

    获取Android手机的分辨率通过ADB命令 adb shell dumpsys window displays//此命令即可获取 WINDOW MANAGER DISPLAY CONTENTS (d ...

  7. 获取Android 手机设备信息:包括机型、操作系统版本号、手机分辨率、运营商、当前联网方式、IMEI、MEID、MAC地址

    获取Android 手机设备信息:操作系统版本号.手机分辨率.运营商.当前联网方式.IMEI.MEID.MAC地址 包括双卡机型上的两个IMEI信息 /*** Created by Administr ...

  8. android开发获取手机,通过ADB获取Android手机信息,获取手机信息

    通过ADB获取Android手机信息,获取手机信息 原文:https://blog.csdn.net/fasfaf454/article/details/51438743 1.获取手机系统信息( CP ...

  9. 获取Android手机MAC的一些方法

    获取Android手机MAC的一种实现方案,仅供参考,哈哈哈!是否还有其他更优的解决方法呢? 请注意,高版本在WiFi关闭时,获取不到MAC ` /** * 获取手机MAC: * @param con ...

最新文章

  1. 新登月计划!阿里云ET城市大脑成为国家AI开放创新平台
  2. 配置内网邮件和外网邮件互发
  3. 在ASP.NET Core 2.0中使用CookieAuthentication
  4. 完整的Web应用程序Tomcat JSF Primefaces JPA Hibernate –第1部分
  5. ssh-scan处理手记
  6. 第七章 Qt对象模型与容器类
  7. 一个开源的ORM框架——Light.Data
  8. Android解决异常apk on device '0292bea1': Unable to open sync connection!
  9. java热血_5个让人热血沸腾的java项目
  10. 飞贷金融科技董事长唐侠:攻占小微金融全球制高点 | 一点财经
  11. Unix环境高级编程第三版
  12. cxk不会二进制 (贪心)
  13. recovery输出log+recovery模式关闭selinux
  14. CS大作业--程序人生--Hello‘s P2P
  15. LSTM预测未来一天股票收盘价
  16. 风生水起的VR直播丨VR直播市场何时迎来爆发期?
  17. think在PHP中什么意思,thinkphp框架是什么意思
  18. 将两个递增的有序链表合并成一个递增的有序链表(CPP版)
  19. python皮森发音_python 怎么读
  20. 调和级数近似求和公式推导(转载)

热门文章

  1. 图片压缩的另一种实现(3)
  2. Loadrunner如何监控Linux系统资源
  3. IDC服务器共享带宽和独享带宽的区别
  4. 实时查看磁盘inode和block变化
  5. C#- Chart Controls (转)
  6. phpstorm 2019.1 mac
  7. Build tool
  8. 多重循环、缓冲区管理、数组(day06)
  9. python3 闭包
  10. C/C++面试之算法系列--去除数组中的重复数字