android4.x获取(也可监测)外置sd路径和读写

先上图:

      

这个小demo是判断手机上是否插入了sd卡(手动插入到手机卡槽的情况),如果拔出sd卡,也会检测到,检测到没有sd的话会提示退出。大家可以修改代码达到自己想要的效果。

sd的卡装载状态是从系统文件里获取,"/system/etc/vold.fstab"和"/proc/mounts"(详细挂载流程可参考此博客http://blog.csdn.net/yihongyuelan/article/details/6963485)。
但是还有一问题,4.0以后外置sd的读写权限变成了系统权限,所以如果不是系统应用就不能读写外置sd卡。不过我获取到外置sd卡路径后,发现是可以读写的,
不知道是不是设置了setWritable(true)的原因。
有什么问题大家一起交流。

什么是外置sd卡和内置sd卡?

外置:就是手机上有扩展sd卡插槽,这里插入的sd卡就叫外置sd卡。
内置:就是手机自带的sd,比如现在的16g、32g手机都是内置了一张16g或32g的sd卡。
注意:有的一些比较早期的手机有卡槽但是没有内置sd卡,但是这个卡槽插入的卡会被当做内置sd卡。(所以代码中我做了判断:通过Environment.isExternalStorageRemovable()这个方法判断内置sd卡是否可移除,可以移除就说明此手机有卡槽但没有内置sd卡)

demo下载:http://files.cnblogs.com/wangyuehome/testAndroid.zip

android4.x获取(也可监测)外置sd路径和读写,布布扣,bubuko.com

时间: 2024-12-29 15:33:43

android4.x获取(也可监测)外置sd路径和读写的相关文章

android获取内置和外置SD卡路径 - z

本文将介绍Android真机环境下如何获取内置和外置SD卡路径. 测试环境:三星Note3,其他手机待测试... 所需权限(AndroidManifest.xml文件里) [html] view plain copy <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 获取路径代码(MainActivity.java文件) [java] view plain copy pa

Android手机外置SD卡(TF卡)的获取方法

Android手机上的外置SD卡,起初的时候,即在Android出世的前几年,那时手机的存储是十分有限的,不像现在到处可见16G.32G和64G的存储,因而那时候的手机有的厂商允许插入外置的SD卡,此时这张卡仍处于手机的扩展部分.后来,随着手机的发展以及存储能力的增加,这张外置SD卡,逐渐成为了手机的一部分,不再允许可挺拔了,当然现在依然有的手机允许对存储进行拓展,比如三星等. 那张拓展的存储卡,现在叫做TF卡,且不是所有的手机都支持它,但是有时候有些奇葩需求偏要优先存储在TF卡里面,这叫不得不

Android获取外置SD卡存储路径的方法

在开发应用的过程中,经常会遇到需要获取设备存储路径的问题.而从网上看到的很多方法获取到的都是内置存储位置,并非外置SD卡路径,因此我推荐使用反射的机制来获取外置存储的路径. 通常,使用Environment.getExternalStorageDirectory()获取的都是内置存储的路径:其他方法如下(由于不同的设备厂商可能进行修改,因此不同设备可能有所不同,以下提供几个方法仅供参考): [由于以下的这些方法一般不可见,因此需要通过反射机制调用] 说明: 1.路径都可以获取到,若存在外置存储卡

关于手机的内置SD卡与外置SD卡

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

Android获取系统外置存储卡路径的方法

android系统可通过Environment.getExternalStorageDirectory()获取存储卡的路径,但是现在有很多手机内置有一个存储空间,同时还支持外置sd卡插入,这样通过Environment.getExternalStorageDirectory()方法获取到的就是内置存储卡的位置,需要获取外置存储卡的路径就比较麻烦,这里借鉴网上的代码,稍作修改,在已有的手机上做了测试,效果还可以,当然也许还有其他的一些奇葩机型没有覆盖到. package com.example.g

判断是否有外置SD卡

private static String getDefaultPath(){    boolean isHaveExternalSD = false;    String DefaultPath = "/storage/sdcard0";    File externalSDCard = new File("/storage/sdcard1");    try {        IMountService ms = getMs();        isHaveEx

安卓手机的加密设备和加密外置SD卡

手机一旦被偷或者遗失,那么隐私就会泄露了,安卓手机中有"加密设备"和"加密外置sd卡"的功能.那么这两项功能有什么用有什么区别呢? 加密设备 加密设备后,内置SD卡上的数据就全部被加密了,这部分主要用来保护通讯录及短信隐私.加密设备后,刷机恢复出厂设置都无法解密数据. 加密外置SD卡 加密外置SD卡可保护SD卡上的所有数据,这部分数据主要用来保护用户的一些图片.隐私文件,可防止艳照门.加密后的SD卡,如果没有解密,即使取出都是无法读取卡内内容的,同样,刷机.恢复出厂

Android 4.4 安卓系统突破限制让所有应用程序可操作外置SD卡

前提是手机需已root. 然后使用文本编辑器打开/system/etc/permissions目录下的“platform.xml”文件(挂载读写), 在<permission name="android.permission.WRITE_EXTERNAL_STORAGE" > < group gid="sdcard_rw" /> 下面添一行 <group gid="media_rw" />(注意段首对齐,&qu

JS魔法堂:获取当前脚本文件的绝对路径

一.前言 当写模块加载器时,获取当前脚本文件的绝对路径作为基础路径是必不可少的一步,下面我们一起来探讨一下这个问题吧! 二.各大浏览器的实现方式 [a]. Chrome和FF 超简单的一句足矣! var getCurrAbsPath = function(){ return document.currentScript.src; }; 这里利用了对象 document.currentScript ,它返回的是当前执行的script元素:然后调用script元素的src属性即可获取脚本文件的绝对路