Android外部应用获取SD卡状态
2016-07-01 10:35
441 查看
像是从android4.0以后,外部应用就无法通过android标准接口获取到SD卡状态,但是可以通过如下方法获取:
1. 通过env 获取SD卡路径
String externalStorage = System.getenv("SECONDARY_STORAGE");
2. 通过读取mounts节点获取SD卡挂载状态
private boolean isSdcardMounted(){
boolean mounted = false;
String line = null;
BufferedReader reader = null;
try{
reader = new BufferedReader(new FileReader("/proc/mounts"));
if(reader == null){
return mounted;
}
while ((line = reader.readLine()) != null) {
String[] tmp = line.split(" ");
if(tmp.length >= 2){
if(tmp[1] != null&& tmp[1].equals("/storage/sdcard1")){
mounted = true;
break;
}
}
}
}catch(FileNotFoundException e){
}catch(IOException ee){
}finally{
try{
if(reader != null)
reader.close();
}catch(IOException eee){
}
}
Log.d(TAG,"isSdcardMounted mounted:"+mounted);
return mounted;
}
3. SD卡剩余空间获取
private int getSdcardFreeSpace(){//unit is Million
int space = 0;
File file = new File("/storage/sdcard1");
if(file.exists()){
long freeSize = file.getUsableSpace();
space = (int)(freeSize/1024/1024);
}
Log.d(TAG,"getSdcardFreeSpace :"+space);
return space;
}
1. 通过env 获取SD卡路径
String externalStorage = System.getenv("SECONDARY_STORAGE");
2. 通过读取mounts节点获取SD卡挂载状态
private boolean isSdcardMounted(){
boolean mounted = false;
String line = null;
BufferedReader reader = null;
try{
reader = new BufferedReader(new FileReader("/proc/mounts"));
if(reader == null){
return mounted;
}
while ((line = reader.readLine()) != null) {
String[] tmp = line.split(" ");
if(tmp.length >= 2){
if(tmp[1] != null&& tmp[1].equals("/storage/sdcard1")){
mounted = true;
break;
}
}
}
}catch(FileNotFoundException e){
}catch(IOException ee){
}finally{
try{
if(reader != null)
reader.close();
}catch(IOException eee){
}
}
Log.d(TAG,"isSdcardMounted mounted:"+mounted);
return mounted;
}
3. SD卡剩余空间获取
private int getSdcardFreeSpace(){//unit is Million
int space = 0;
File file = new File("/storage/sdcard1");
if(file.exists()){
long freeSize = file.getUsableSpace();
space = (int)(freeSize/1024/1024);
}
Log.d(TAG,"getSdcardFreeSpace :"+space);
return space;
}
相关文章推荐
- Android屏幕知识点
- Android Bundle详解
- Android Studio 代码混淆
- 如何修改android5.1 多帧PNG图片
- 反编译Android APK及防止APK程序被反编译
- 如何快速更新Android studio的sdk
- Android 圆角fraagment的实现
- android 内存泄漏案例解析
- Android 平台log
- 如何实现android清理后台时,自己的软件不被清理
- 关于Android获取文件夹路径 /data/data/
- [置顶] Android开发之将图片文件转化为字节数组字符串,并对其进行Base64编码处理
- android 开发不用root通过 wifi 无线调试
- [转]android 获取视频帧
- Android自定义View基础学习
- 绘制text 的一些变量
- Activity的生命周期和启动模式详解
- Android Material Design简单使用
- Android greenDAO 使用案例解析
- 安卓7.0已知新特性汇总:这样的Android N你可满意?