Android获取系统外置存储卡路径的方法
android系统可通过Environment.getExternalStorageDirectory()获取存储卡的路径。可是如今有非常多手机内置有一个存储空间。同一时候还支持外置sd卡插入,这样通过Environment.getExternalStorageDirectory()方法获取到的就是内置存储卡的位置。须要获取外置存储卡的路径就比較麻烦,这里借鉴网上的代码,稍作改动,在已有的手机上做了測试。效果还能够。当然或许还有其它的一些奇葩机型没有覆盖到。
package com.example.getpath; import java.io.BufferedReader;
import java.io.File;
import java.io.InputStream;
import java.io.InputStreamReader; import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getPath2();
} @SuppressLint("SdCardPath")
public String getPath2() {
String sdcard_path = null;
String sd_default = Environment.getExternalStorageDirectory()
.getAbsolutePath();
Log.d("text", sd_default);
if (sd_default.endsWith("/")) {
sd_default = sd_default.substring(0, sd_default.length() - 1);
}
// 得到路径
try {
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec("mount");
InputStream is = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
String line;
BufferedReader br = new BufferedReader(isr);
while ((line = br.readLine()) != null) {
if (line.contains("secure"))
continue;
if (line.contains("asec"))
continue;
if (line.contains("fat") && line.contains("/mnt/")) {
String columns[] = line.split(" ");
if (columns != null && columns.length > 1) {
if (sd_default.trim().equals(columns[1].trim())) {
continue;
}
sdcard_path = columns[1];
}
} else if (line.contains("fuse") && line.contains("/mnt/")) {
String columns[] = line.split(" ");
if (columns != null && columns.length > 1) {
if (sd_default.trim().equals(columns[1].trim())) {
continue;
}
sdcard_path = columns[1];
}
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.d("text", sdcard_path);
return sdcard_path;
}
}
Android获取系统外置存储卡路径的方法的更多相关文章
- Android获取系统时间方法的总结
Android获取系统时间方法的方法有很多种,常用的有Calendar.Date.currentTimeMills等方法. (1)Calendar Calendar获取系统时间首先要用Calendar ...
- Android 获取系统的联系人
本文主要介绍android中怎样获取系统的联系人数据 首先打开模拟器 点击联系人图标按钮 说明系统联系人数据库是空的,打开File explorer,找到data/data下面的文件夹: 将conta ...
- js获取系统的根路径实现介绍
js如何获取系统的根路径,在本文给出了详细的方法 function getBasePath(){ var obj=window.location; var contextPath=obj.pathna ...
- Delphi XE的firemonkey获取当前文件所在路径的方法
Delphi XE的firemonkey获取当前文件所在路径的方法 在之前,我们知道有三种方法: ExtractFilePath(ParamStr(0)) ExtractFilePath(Applic ...
- Android 获取系统时间和网络时间
有些时候我们的应用中只能使用网络时间,而不能使用系统的时间,这是为了避免用户关闭了使用网络时间的功能后所产生的误差. 直接上代码. 1.清单文件中网络添加权限. <!-- 访问Internet资 ...
- 【转】 C#获取当前程序运行路径的方法集合
[转] C#获取当前程序运行路径的方法集合 //获取当前进程的完整路径,包含文件名(进程名). string str = this.GetType().Assembly.Location; resul ...
- Android获取系统时间的多种方法
Android中获取系统时间有多种方法,可分为Java中Calendar类获取,java.util.date类实现,还有android中Time实现. 现总结如下: 方法一: ? 1 2 3 4 5 ...
- android 获取系统联系人 完全解析
一.代码 1.ContactsEngine.java import java.util.ArrayList; import java.util.HashMap; import java.util.Li ...
- Android核心分析之十五Android输入系统之输入路径详解
Android用户事件输入路径 1 输入路径的一般原理 按键,鼠标消息从收集到最终将发送到焦点窗口,要经历怎样的路径,是Android GWES设计方案中需要详细考虑的问题.按键,鼠标等用户消息 ...
随机推荐
- JavaScript target与currentTarget区别
1.DOM事件绑定到父元素 <!DOCTYPE html> <html lang="zh"> <head> <meta charset=& ...
- 编辑器未包含main类型
明明写了main函数,在运行的时候,却得到这样的结果. 解决方案: 重新建立一个项目,建立项目的过程中
- 【转】mongoDB命令行和客户端访问
一.客户端 mongodb客户端常用的是mongoVUE 下载mongoVUE:网上下载地址,并且是破解版.[若没分,可以单独找我].因为非破解版的只有15天的使用限制. 打开界面如 ...
- java jdk 环境变量设置
我的电脑点右键,选择“属性”,选择“高级”标签,进入环境变量设置,分别设置如下三个环境变量: 设置JAVA_HOME: 一是为了方便引用,比如,JDK安装在C:\jdk1.6.0目录里,则设置JAVA ...
- .NET CORE 2.0小白笔记(三):数字化平台之微信平台策略
当下,互联网技术正在深刻地重构我们的社会,各大企事业单位——大到万人集团公司,小到图文复印店——都在争先恐后地从所谓的“传统行业”中脱胎换骨一番以完成数字化转型. 在这个过程中,“企业即IT”.“科技 ...
- [DevExpress]TreeListLookUpEdit带checkbox之经典运用
上代码: public partial class TreeListLookUpEdit : DevExpress.XtraEditors.XtraForm { private string _Key ...
- python char()和ord()
通过help 查看相关函数的帮助文档 >>>help (chr) chr(...) chr(i) -> character Return a string of one cha ...
- LVM卷组命令
一般维护命令 #vgscan //检測系统中全部磁盘 #vgck [卷组名] //用于检查卷组中卷组描写叙述区域信息的一致性. #vgdisplay [卷组名] //显示卷组的属性信息 #vg ...
- stage3D基础一-----Stage3D如何工作(转)
在如何使用Stage3D系列中的第一个教程中,你将会学习到有关在Flash Player 11中新引入的ActionScript API,该API允许在Flash中利用硬件加速进行3D渲染.在学习这个 ...
- js 正则匹配 域名【host】
如果直接在js中是可以直接取到hostname的,以下方式是通过正则匹配: var url = "http://www.cnblogs.com/cench" var reg = / ...