zoukankan      html  css  js  c++  java
  • 关于手机的内置SD卡与外置SD卡

    对于安卓2.3的系统来说,Environment.getExternalStorageDirectory()获取的目录是内置SD卡还是外置SD卡是无法保证的, 和手机厂商的修改有关,只能通过Environment.isExternalStorageRemovable()来判断如果返回true就是外置的,因为外置的才能卸载。(但是我目前只遇到过安卓4.4系统才有内置SD卡,所以Environment.getExternalStorageDirectory()在2.3系统上当外置的用吧,遇到特殊机型再考虑其它办法

    对于安卓4.0及以上的系统来说就好办了,可以利用反射来实现区分内外置SD卡,代码如下:

     

    1 StorageManager storageManager = (StorageManager) getSystemService(Context.STORAGE_SERVICE);
    2         try {
    3             String [] strings = (String[]) storageManager.getClass().getMethod("getVolumePaths").invoke(storageManager);
    4             for (int i = 0; i < strings.length; i++) {
    5                 System.out.println(strings[i]);
    6             }
    7         } catch (Exception e) {
    8             e.printStackTrace();
    9         }

     

    然后再调用:

    1 Environment.getExternalStorageDirectory();//获取一个SD卡路径
    2 Environment.isExternalStorageRemovable();//判断SD卡是不是可卸载的

    接下来将Environment.getExternalStorageDirectory()..toString()获得的字符串与strings[i]里面的做比较,即可区分哪个是内置哪个是外置的了。

     

     

     

  • 相关阅读:
    获取网络动态flash下载地址工具mark HA
    mac 下windows系统修改快捷键 HA
    CABasicAnimation HA
    喷墨和激光打印的不同点 HA
    HTML iphone HA
    html5 HA
    CastleMonoRail配置[webConfig]
    什么是MonoRail?[基础知识讲解]
    javascript常用函数
    CastleGlobalApplication.cs工程起始加载
  • 原文地址:https://www.cnblogs.com/xxNote/p/5506516.html
Copyright © 2011-2022 走看看