关于getExternalStorageDirectory()获取路径问题

MYsce 2018-06-26 06:55:04
我真机用的是小米手机 api23 6.0系统
Environment.getExternalStorageDirectory().getAbsoluteFile(),获取到的路径是/storage/emulated/0/
那么为什么我创建了文件会在内部存储,getExternalStorageDirectory().getAbsoluteFile()不是会返回外置SD卡吗



创建文件代码:
File file=new File(Environment.getExternalStorageDirectory().getAbsoluteFile(), "12222.apk");
file.createNewFile();
...全文
1891 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
heshandahao123 2020-12-14
  • 打赏
  • 举报
回复
就是手机内存,现在版本高了安卓手机内部就有外部存储,sdk也是外部存储
  • 打赏
  • 举报
回复
这个应该和设置里面的数据存储位置有关系 内部存储你也可以看成是一个自带的SD卡
Jing丶無雙 2018-06-27
  • 打赏
  • 举报
回复
    // 获取次存储卡路径,一般就是外置 TF 卡了. 不过也有可能是 USB OTG 设备...
// 其实只要判断第二张卡在挂载状态,就可以用了.
public String getSecondaryStoragePath() {
try {
StorageManager sm = (StorageManager) getSystemService(STORAGE_SERVICE);
Method getVolumePathsMethod = StorageManager.class.getMethod("getVolumePaths", null);
String[] paths = (String[]) getVolumePathsMethod.invoke(sm, null);
// second element in paths[] is secondary storage path
return paths.length <= 1 ? null : paths[1];
} catch (Exception e) {
Log.e(TAG, "getSecondaryStoragePath() failed", e);
}
return null;
}

// 获取存储卡的挂载状态. path 参数传入上方法得到的路径
public String getStorageState(String path) {
try {
StorageManager sm = (StorageManager) getSystemService(STORAGE_SERVICE);
Method getVolumeStateMethod = StorageManager.class.getMethod("getVolumeState", new Class[]{String.class});
String state = (String) getVolumeStateMethod.invoke(sm, path);
return state;
} catch (Exception e) {
Log.e(TAG, "getStorageState() failed", e);
}
return null;
}


参考链接:https://blog.csdn.net/liuxu0703/article/details/53897702


80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧