在程序中怎么区分内置sdcard和外部sdcard sdcard0和sdcard1去SD名称可以判断 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String EmmcPath = null; try { Class<?> clazz = Class.forName("android.os.SystemProperties"); Class<?> clazz1 = Class.forName("android.os.Environment"); Method methodState = clazz.getMethod("getInt", String.class, int.class); Method methodSD = clazz1.getDeclaredMethod("getInternalStorageDirectory", null); int result = (Integer) methodState.invoke(null, "persist.sys.emmcsdcard.enabled", 0); if (result == 0) { // 当前为外部存储 SDCardPath = Environment.getExternalStorageDirectory() .toString(); // 外部存储时的sd卡路径 EmmcPath = methodSD.invoke(null, new Object[] {}).toString(); // 外部存储时的emmc路径 } else {// 当前为内部存储 SDCardPath = methodSD.invoke(null, new Object[] {}).toString(); // 内部存储时的sd卡路径 EmmcPath = Environment.getExternalStorageDirectory().toString(); // 内部存储时的emmc路径 } } catch (Exception e) { e.printStackTrace(); } 没错,Environment.getExternalStorageDirectory()在有外置T卡时使用外置,此时内置的地址是sdcard1,否在内置的是sdcard0Environment的isExternalStorageEmulated方法可以判断是否有external T卡 tabhost间隔线的问题 做过真正产品的回答:安装新版本,如何覆盖安装以保留旧版本的数据 怎么才能快速学好安卓开发 GPS获取城市名字问题~ 转行android!求解~~~~~~~~~~~~~~~ 有人在项目中使用过谷歌地图吗? android中关于sqlite数据库的操作问题 Android开发Socket通讯程序,Client用Java的Socket,服务器用Delphi的TServerSocket 为什么我的AVD无法使用快照 怎样解决activity内存不足时被回收,引起的bug 关于新版SDK创建项目问题 .setText()的问题 模拟器出错
try {
Class<?> clazz = Class.forName("android.os.SystemProperties");
Class<?> clazz1 = Class.forName("android.os.Environment");
Method methodState = clazz.getMethod("getInt", String.class,
int.class);
Method methodSD = clazz1.getDeclaredMethod("getInternalStorageDirectory", null);
int result = (Integer) methodState.invoke(null,
"persist.sys.emmcsdcard.enabled", 0);
if (result == 0) { // 当前为外部存储
SDCardPath = Environment.getExternalStorageDirectory()
.toString();
// 外部存储时的sd卡路径
EmmcPath = methodSD.invoke(null, new Object[] {}).toString(); // 外部存储时的emmc路径
} else {// 当前为内部存储
SDCardPath = methodSD.invoke(null, new Object[] {}).toString();
// 内部存储时的sd卡路径
EmmcPath = Environment.getExternalStorageDirectory().toString(); // 内部存储时的emmc路径
}
} catch (Exception e) {
e.printStackTrace();
}