获取android4.0版本sdcard路径示例

代码如下:

@SuppressLint("NewApi")//你懂的
private File findSDCARD() {
 boolean b = Environment.MEDIA_MOUNTED.equals(Environment
   .getExternalStorageState());
 if (!b) return null;

File extFile = Environment.getExternalStorageDirectory();
 File[] files = extFile.listFiles();
 if (files == null)
  return null;
 for (File f : files) {
  if (extFile.isDirectory()
    && f.canWrite()//sd卡一定是可写的.如果去掉这条件的话会得到隐藏的系统专用文件夹
    && Math.abs(extFile.getTotalSpace() - f.getTotalSpace()) > 2 * 1024 * 1024) {
    //外部存储器与子目录的在未挂载的情况下有相同的存储容量.子目录是挂载的话.就会出现不同的存储容量
    //2 * 1024 * 1024 是用来指出两存储器的存储容量大小差异 当然可以不用这么大 随意
   return f;
  }
 }
 return null;
}

//调用,14为android4.0
  if (Build.VERSION.SDK_INT >= 14) {
  File sd = findSDCARD(extFile);
  }

(0)

相关推荐

  • Android中访问sdcard路径的几种方式

    以前的Android(4.1之前的版本)中,SDcard路径通过"/sdcard"或者"/mnt/sdcard"来表示,而在JellyBean(安卓4.1)系统中修改为了" /storage/sdcard0",还会有多个SDcard的情况.目前为了保持和之前代码的兼容,SDcard路径做了Link映射.为了使代码更加健壮并能兼容以后的Android版本和新设备,安卓4,1后sdcard中会有系统自动生成的保存特定内容的的文件目录,从而可以使用一些

  • Android获取内置sdcard跟外置sdcard路径

    Android获取内置sdcard跟外置sdcard路径 Android获取内置sdcard跟外置sdcard路径.(测试过两个手机,亲测可用) 1.先得到外置sdcard路径,这个接口是系统提供的标准接口. 2.得到上一级文件夹目录 3.得到该目录的所有文件夹,根据判断得到内置sdcard跟外置sdcard. 4.程序运行的时候记得给程序添加读取sdcard的权限哦. /** * 得到sdcard的路径 * @return 返回一个字符串数组 下标0:内置sdcard 下标1:外置sdcard

  • Android编程读取Assets所有文件(遍历每一个文件夹)并存入sdcard的方法

    本文实例讲述了Android编程读取Assets所有文件(遍历每一个文件夹)并存入sdcard的方法.分享给大家供大家参考,具体如下: private void CopyAssets(String assetDir, String dir) { String[] files; try { // 获得Assets一共有几多文件 files = this.getResources().getAssets().list(assetDir); } catch (IOException e1) { ret

  • android读取sdcard路径下的文件的方法

    复制代码 代码如下: // 读取sdcard文件private void sdcardRead(){String fileName = "/sdcard/my_sdcard.txt";// assets下文件//String fileName = "/sdcard/test/my_sdcard_test.txt";// sdcard下子目录文件String ret = "";try {FileInputStream fis = new FileI

  • Android中使用SDcard读取文件

    平时我们需要在手机上面存储想音频,视频等等的大文件,以前学过使用File进行存储(使用File操作进行存储):由于考虑到手机本身的存储空间小,这时候我们需要把文件存储在SDcard中,今天自己也学习了一下在android进行sdcard的存储使用方法; 首先如果要在程序中使用sdcard进行存储,我们必须要在AndroidManifset.xml文件进行下面的权限设置: 在AndroidManifest.xml中加入访问SDCard的权限如下: <!-- 在SDCard中创建与删除文件权限 --

  • Android编程获取sdcard音乐文件的方法

    本文实例讲述了Android编程获取sdcard音乐文件的方法.分享给大家供大家参考,具体如下: 复制代码 代码如下: Cursor  query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder); Uri:指明要查询的数据库名称加上表的名称,从MediaStore中我们可以找到相应信息的参数,具体请参考开发文档. Projection: 指定查询数据库表中的哪几列,

  • Android实现把文件存放在SDCard的方法

    本文实例讲述了Android实现把文件存放在SDCard的方法.分享给大家供大家参考.具体如下: 使用Activity的openFileOutput()方法保存文件,文件是存放在手机空间上,一般手机的存储空间不是很大,存放些小文件还行,如果要存放像视频这样的大文件,是不可行的.对于像视频这样的大文件,我们可以把它存放在SDCard. SDCard是干什么的?你可以把它看作是移动硬盘或U盘. 在模拟器中使用SDCard,你需要先创建一张SDCard卡(当然不是真的SDCard,只是镜像文件).创建

  • Android获取SD卡路径及SDCard内存的方法

    本文实例讲述了Android获取SD卡路径及SDCard内存的方法.分享给大家供大家参考.具体分析如下: 昨天在研究拍照后突破的存储路径的问题,开始存储路径写死为: private String folder = "/sdcard/DCIM/Camera/"(SD卡上拍照程序的图片存储路径); 后来发现这样写虽然一般不会出错,但不是很好,因为不同相机,可能路径会出问题.较好的方法是通过Environment 来获取路径,最后给出一个例子,教你怎样获取SDCard 的内存,显示出来告诉用

  • Android 读取sdcard上的图片实例(必看)

    Android读取sdcard上的图片是非常简单的事情,下面用一个例子来说明这个问题. 首先,在sdcard上有一张已经准备好的img25.jpg 下面,需要做的是把这张图片读取到app中显示.做到如下的效果: 1.首先你要在AndroidManifest.xml申请读取sdcard的权限,加入一条语句之后,AndroidManifest.xml如下: <?xml version="1.0" encoding="utf-8"?> <manifest

  • 获取android4.0版本sdcard路径示例

    复制代码 代码如下: @SuppressLint("NewApi")//你懂的private File findSDCARD() { boolean b = Environment.MEDIA_MOUNTED.equals(Environment   .getExternalStorageState()); if (!b) return null; File extFile = Environment.getExternalStorageDirectory(); File[] file

  • Android 6.0上sdcard和U盘路径获取和区分方法

    Android6.0上会根据卡的种类和卡的挂载状态来动态生成挂载路径,所以之前写固定路径的办法不可用,最后通过网上查找和分析android源码,通过反射获取到路径,并且进行了正确区分,代码如下: /** * 6.0获取外置sdcard和U盘路径,并区分 * @param mContext * @param keyword SD = "内部存储"; EXT = "SD卡"; USB = "U盘" * @return */ public static

  • webpack 5.68.0版本教程示例详解

    目录 起步 1. 基本安装 2. 配置出入口 plugin 1. html-webpack-plugin 2. progress-bar-webpack-plugin loader 1. css-loader与style-loader 2. url-loader与file-loader 3. sass-loader 4. postcss-loader 5. babel-loader 搭建环境 1. 开发环境与生产环境 2. 配置别名 代码分离 1. webpack-bundle-analyzer

  • Seraph 4.0版本以后的新的脚本示例

    4.0中,最重要的几大改如下:- 允许数组相互直接赋值,并允许数组成为函数的参数.- 允许在函数中调用后面声明的函数,即函数声明的先后与调用关系无关.使间接递归成为可能.- 允许在定义了函数之后的脚本位置定义全局变量.这样USE子脚本中也可以声明全局变量了,使其功能可以更灵活. 以下分别对这几大改进举例说明允许数组相互直接赋值,并允许数组成为函数的参数. 例1,数组相互直接赋值function maindim arr1[10]arr1[1]=5#将数组arr1整体COPY至arr2arr2=ar

  • android4.0与2.3版本的TP代码区别解析

    通常来说在android2.3上调试TP时,只需要把linux驱动调通,android就可以正常使用了.但是到了android4.0上又有些不同了,针对linux驱动,需添加如下一些内容: 1.在手指按下时需调用如下函数上报Key Down: input_report_key(struct input_dev *input, BTN_TOUCH, 1); 2.在手指释放时需调用如下函数上报Key Up: input_report_key(struct input_dev *input, BTN_

  • Spring Boot中使用Swagger3.0.0版本构建RESTful APIs的方法

    目录 一.项目描述 二.简介 三.Swagger2.X和Swagger3.0.0 的对比 1)SpringFox 2.x 发布 2)SpringFox 3.0.0 发布 3)swagger3.0 与2.xx配置差异: 四.注解说明 @Api @ApiOperation @ApiImplicitParams @ApiImplicitParam @ApiResponses @ApiModel @ApiModelProperty @ApiIgnore 五.案例准备工作 0.项目目录 1.pom依赖 2

  • 详细介绍MyBatis 3.4.0版本的功能

    新增功能 1. Cursor 新增返回值类型为游标的方法 当查询大量(上百万)数据的时候,使用游标可以有效的减少内存使用,不需要一次性将所有数据得到,可以通过游标逐个或者分批(逐个获取一批后)处理. SqlSession 中新增的 3 个游标方法: /** * A Cursor offers the same results as a List, except it fetches data lazily using an Iterator. * @param <T> the returned

  • 浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别

    5.0版本和之前版本的差异较大,本篇对熟悉3.2版本的用户给出了一些5.0的主要区别. URL和路由 5.0的URL访问不再支持普通URL模式,路由也不支持正则路由定义,而是全部改为规则路由配合变量规则(正则定义)的方式: 主要改进如下: 增加路由变量规则: 增加组合变量支持: 增加资源路由: 增加路由分组: 增加闭包定义支持: 增加MISS路由定义: 支持URL路由规则反解析: 请求对象和响应对象 5.0新增了请求对象Request和响应对象Response,Request统一处理请求和获取请

随机推荐