androidsdcard挂载目录_Android获取手机自带SDCard和外置SDCard路径
获取内置SD卡很简单,就一行代码
/**
* 获取内置SD卡路径
* @return
*/
public String getInnerSDCardPath() {
return Environment.getExternalStorageDirectory().getPath();
}
获取外置SD卡比较麻烦,
/**
* 获取外置SD卡路径
* @return
*/
public List getExtSDCardPaths() {
List paths = new ArrayList();
String extFileStatus = Environment.getExternalStorageState();
File extFile = Environment.getExternalStorageDirectory();
if (extFileStatus.endsWith(Environment.MEDIA_UNMOUNTED)
&& extFile.exists() && extFile.isDirectory()
&& extFile.canWrite()) {
paths.add(extFile.getAbsolutePath());
}
try {
// obtain executed result of command line code of 'mount', to judge
// whether tfCard exists by the result
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("mount");
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line = null;
int mountPathIndex = 1;
while ((line = br.readLine()) != null) {
if ((!line.contains("fat") && !line.contains("fuse") && !line
.contains("storage"))
|| line.contains("secure")
|| line.contains("asec")
|| line.contains("firmware")
|| line.contains("shell")
|| line.contains("obb")
|| line.contains("legacy") || line.contains("data")) {
continue;
}
String[] parts = line.split(" ");
int length = parts.length;
if (mountPathIndex >= length) {
continue;
}
String mountPath = parts[mountPathIndex];
if (!mountPath.contains("/") || mountPath.contains("data")
|| mountPath.contains("Data")) {
continue;
}
File mountRoot = new File(mountPath);
if (!mountRoot.exists() || !mountRoot.isDirectory()
|| !mountRoot.canWrite()) {
continue;
}
boolean equalsToPrimarySD = mountPath.equals(extFile
.getAbsolutePath());
if (equalsToPrimarySD) {
continue;
}
paths.add(mountPath);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return paths;
}
首先获取了Android标准一部分的外置SD卡,如果它可用的话。
然后利用运行时,通过命令行函数"mount"来获取所有的存储位置,并对返回的结果进行SD卡或者TF卡的查找。
最后返回了所有可用于存储的不同的卡的位置,用一个List来保存。由于不是所有的手机都支持TF卡,因而这个List包含的路径未必很多,只有一个SD卡的手机只会返回一个路径,多个可用存储位置的会返回多个路径。
但有一点,是必须的,paths.get(0)肯定是外置SD卡的位置,因为它是primary external storage.
androidsdcard挂载目录_Android获取手机自带SDCard和外置SDCard路径相关推荐
- androidsdcard挂载目录_获取android手机的自带存储路径和sdcard存储路径
展开全部 1.方法一 //内置sd卡路径String sdcardPath = System.getenv("EXTERNAL_STORAGE"); //内置sd卡路径String ...
- Android获取内置sdcard跟外置sdcard路径
Android获取内置sdcard跟外置sdcard路径.(测试过两个手机,亲测可用) 1.先得到外置sdcard路径,这个接口是系统提供的标准接口. 2.得到上一级文件夹目录 3.得到该目录的所有文 ...
- android 获取sdcard 禁用sdcard,Android获取内置sdcard跟外置sdcard路径
Android获取内置sdcard跟外置sdcard路径 Android获取内置sdcard跟外置sdcard路径.(测试过两个手机,亲测可用) 1.先得到外置sdcard路径,这个接口是系统提供的标 ...
- android 获取图片上某一个文字位置_android 获取手机中的所有图片或某一目录下的图片方法...
获取手机中的所有图片,并过滤获取某一目录下的图片.(注释掉的代码可以按照目录分组) private void getAllPhotoInfo() { new Thread(new Runnable() ...
- java 读取手机文件_Android获取手机文件夹及文件列表的方法
先看看效果图: package wuwang.tools.utils; import java.io.File; import java.io.FileInputStream; import java ...
- 通过java获取手机信息_android获取手机信息
玩Android的朋友们进来看看吧! 1.获取手机安装的应用信息(排除系统自带): Java代码: 1 private String getAllApp() { 2 String result = & ...
- 获取android设备唯一编号_android 获取手机设备的唯一码(IMIE )
获取手机设备的唯一码(IMIE ) public void fetch_status(){ TelephonyManager tm = (TelephonyManager) this .getSyst ...
- android pak文件_Android 获取手机中已安装apk文件信息
通过PackageManager可以获取手机端已安装的apk文件的信息,具体代码如下 PackageManager packageManager = this.getPackageManager(); ...
- java中获得手机唯一_Android 获取手机唯一识别码
[实例简介]得到手机唯一识别码 [实例截图] [核心代码]private String ChuanMa() { String szImei;// imei码 String m_szDevIDShort ...
最新文章
- 比特币现金诞生一周年,未来发展瞄上了IPFS技术
- Angular 7 版本
- 【NLP】ALBERT:更轻更快的NLP预训练模型
- CTF(Pwn)32位文件 和 64 文件 的 差异
- python语言的实验心得体会_国产编程语言木兰被质疑换皮Python:当事人承认夸大、道歉...
- SAP Marketing Engagement Management
- 使用HTML5+CSS3制作圆角内发光按钮----示例
- 在Java EE 7中自动配置JMS资源
- 关于memcpy和memmove两函数的区别
- 求两字符串最长公共连续子串---C++编程
- Java: ArrayList
- MathType安装指南
- C#如何调用阿里云短信接口
- 工具变量估计与两阶段最小二乘法
- 求二元一次方程 的解 C语言
- 免费开源的智能家居系统,SpringBoot+Vue前后端分离,WiFi智能设备接入,手把手开发安卓APP,建立QQ智能管家机器人!
- 飞书第三方ISV服务商应用开发及上架教程
- 跨境商城独立站源码制作搭建
- 华为hcie认证工程师里一定要知道的Radius 基本介绍
- attempt_load() got an unexpected keyword argument ‘map_location‘
热门文章
- constraintlayout_androidApi:ConstraintLayout
- openlayer 图层上下_OpenLayers 3 的图层体系结构
- android service 构造函数,Android IntentService无法实例化类;没有空构造函数
- 初一数学下册电子课本_七年级数学下册人教版-数学七年级下册电子课本-精品下载...
- oracle database link创建
- unity android 原生,unity创建Android原生插件
- @RunWith@ContextConfiguration进行Spring上下文测试报错
- JavaWEB开发的国际化
- 核心对象+持久对象全析(3)
- android datebinding学习