获取路径方法
Root\ 机型\ 系统\ SDcard挂载情况(SD数量\内置/外插)\ 返回值\ 解释
Environment.getExternalStorageState()
Y Coolpad5890 4.1.2 2 1内、1外 mounted(存储媒体已经挂载,并且挂载点可读/写)
N 联想K900 4.2.2 1 1内 mounted
Y 小米2s 5 mounted
N 华为p6 4.4.2 1 1内 mounted
Y 天语小黄蜂 4.3 2 1内、1外 mounted
getApplicationContext().getPackageResourcePath()
Y Coolpad5890 4.1.2 2 1内、1外 /mnt/asec/com.example.testsdcardpath-1/pkg.apk
N 联想K900 4.2.2 1 1内 /data/app/com.example.testsdcardpath-1.apk
Y 小米2s 5 /data/app/com.example.testsdcardpath-2.apk
N 华为p6 4.4.2 1 1内 /data/app/com.example.testsdcardpath-1.apk
Y 天语小黄蜂 4.3 2 1内、1外 /data/app/com.example.testsdcardpath-1/2.apk
getApplicationContext().getDatabasePath("data").getAbsolutePath()
Y Coolpad5890 4.1.2 2 1内、1外 /data/data/com.example.testsdcardpath/databases/data
N 联想K900 4.2.2 1 1内 /data/data/com.example.testsdcardpath/databases/data
Y 小米2s 5 /data/data/com.example.testsdcardpath/databases/data
N 华为p6 4.4.2 1 1内 /data/data/com.example.testsdcardpath/databases/data
Y 天语小黄蜂 4.3 2 1内、1外 /data/data/com.example.testsdcardpath/databases/data
getApplicationContext().getCacheDir().getAbsolutePath()
Y Coolpad5890 4.1.2 2 1内、1外 /data/data/com.example.testsdcardpath/cache
N 联想K900 4.2.2 1 1内 /data/data/com.example.testsdcardpath/cache
Y 小米2s 5 /data/data/com.example.testsdcardpath/cache
N 华为p6 4.4.2 1 1内 /data/data/com.example.testsdcardpath/cache
Y 天语小黄蜂 4.3 2 1内、1外 /data/data/com.example.testsdcardpath/cache
Environment.getDataDirectory().getAbsolutePath()
Y Coolpad5890 4.1.2 2 1内、1外 /data 获得/data的目录
N 联想K900 4.2.2 1 1内 /data
Y 小米2s 5 /data
N 华为p6 4.4.2 1 1内 /data
Y 天语小黄蜂 4.3 2 1内、1外 /data
Environment.getDownloadCacheDirectory().getAbsolutePath()
Y Coolpad5890 4.1.2 2 1内、1外 /cache 获得下载缓存目录
N 联想K900 4.2.2 1 1内 /cache
Y 小米2s 5 /cache
N 华为p6 4.4.2 1 1内 /cache
Y 天语小黄蜂 4.3 2 1内、1外 /cache
Environment.getExternalStorageDirectory().getAbsolutePath()
Y Coolpad5890 4.1.2 2 1内、1外 /mnt/sdcard 或者外部存储媒体目录
N 联想K900 4.2.2 1 1内 /storage/sdcard0
Y 小米2s 5 /storage/sdcard0
N 华为p6 4.4.2 1 1内 /storage/emulated/0
Y 天语小黄蜂 4.3 2 1内、1外 /storage/sdcard0
Environment.getRootDirectory().getAbsolutePath()
Y Coolpad5890 4.1.2 2 1内、1外 /system 获得android的根目录
N 联想K900 4.2.2 1 1内 /system
Y 小米2s 5 /system
N 华为p6 4.4.2 1 1内 /system
Y 天语小黄蜂 4.3 2 1内、1外 /system
Environment.getExternalStoragePublicDirectory(ACCOUNT_SERVICE).getAbsolutePath()
Y Coolpad5890 4.1.2 2 1内、1外 /mnt/sdcard/account Get a top-level public external storage directory for placing files of a particular type
N 联想K900 4.2.2 1 1内 /storage/sdcard0/account
Y 小米2s 5 /storage/sdcard0/account
N 华为p6 4.4.2 1 1内 /storage/emulated/0/account
Y 天语小黄蜂 4.3 2 1内、1外 /storage/sdcard0/account
getApplicationContext().getFilesDir().getAbsolutePath();
/data/data/com.example.testsdcardpath/files
getApplicationContext().getDir("aaa", Application.MODE_PRIVATE).getAbsolutePath();
/data/data/com.example.testsdcardpath/app_aaa
Root\ 机型\ 系统\ SDcard挂载情况(SD数量\内置/外插)\ 返回值\ 解释
Environment.getExternalStorageState()
Y Coolpad5890 4.1.2 2 1内、1外 mounted(存储媒体已经挂载,并且挂载点可读/写)
N 联想K900 4.2.2 1 1内 mounted
Y 小米2s 5 mounted
N 华为p6 4.4.2 1 1内 mounted
Y 天语小黄蜂 4.3 2 1内、1外 mounted
getApplicationContext().getPackageResourcePath()
Y Coolpad5890 4.1.2 2 1内、1外 /mnt/asec/com.example.testsdcardpath-1/pkg.apk
N 联想K900 4.2.2 1 1内 /data/app/com.example.testsdcardpath-1.apk
Y 小米2s 5 /data/app/com.example.testsdcardpath-2.apk
N 华为p6 4.4.2 1 1内 /data/app/com.example.testsdcardpath-1.apk
Y 天语小黄蜂 4.3 2 1内、1外 /data/app/com.example.testsdcardpath-1/2.apk
getApplicationContext().getDatabasePath("data").getAbsolutePath()
Y Coolpad5890 4.1.2 2 1内、1外 /data/data/com.example.testsdcardpath/databases/data
N 联想K900 4.2.2 1 1内 /data/data/com.example.testsdcardpath/databases/data
Y 小米2s 5 /data/data/com.example.testsdcardpath/databases/data
N 华为p6 4.4.2 1 1内 /data/data/com.example.testsdcardpath/databases/data
Y 天语小黄蜂 4.3 2 1内、1外 /data/data/com.example.testsdcardpath/databases/data
getApplicationContext().getCacheDir().getAbsolutePath()
Y Coolpad5890 4.1.2 2 1内、1外 /data/data/com.example.testsdcardpath/cache
N 联想K900 4.2.2 1 1内 /data/data/com.example.testsdcardpath/cache
Y 小米2s 5 /data/data/com.example.testsdcardpath/cache
N 华为p6 4.4.2 1 1内 /data/data/com.example.testsdcardpath/cache
Y 天语小黄蜂 4.3 2 1内、1外 /data/data/com.example.testsdcardpath/cache
Environment.getDataDirectory().getAbsolutePath()
Y Coolpad5890 4.1.2 2 1内、1外 /data 获得/data的目录
N 联想K900 4.2.2 1 1内 /data
Y 小米2s 5 /data
N 华为p6 4.4.2 1 1内 /data
Y 天语小黄蜂 4.3 2 1内、1外 /data
Environment.getDownloadCacheDirectory().getAbsolutePath()
Y Coolpad5890 4.1.2 2 1内、1外 /cache 获得下载缓存目录
N 联想K900 4.2.2 1 1内 /cache
Y 小米2s 5 /cache
N 华为p6 4.4.2 1 1内 /cache
Y 天语小黄蜂 4.3 2 1内、1外 /cache
Environment.getExternalStorageDirectory().getAbsolutePath()
Y Coolpad5890 4.1.2 2 1内、1外 /mnt/sdcard 或者外部存储媒体目录
N 联想K900 4.2.2 1 1内 /storage/sdcard0
Y 小米2s 5 /storage/sdcard0
N 华为p6 4.4.2 1 1内 /storage/emulated/0
Y 天语小黄蜂 4.3 2 1内、1外 /storage/sdcard0
Environment.getRootDirectory().getAbsolutePath()
Y Coolpad5890 4.1.2 2 1内、1外 /system 获得android的根目录
N 联想K900 4.2.2 1 1内 /system
Y 小米2s 5 /system
N 华为p6 4.4.2 1 1内 /system
Y 天语小黄蜂 4.3 2 1内、1外 /system
Environment.getExternalStoragePublicDirectory(ACCOUNT_SERVICE).getAbsolutePath()
Y Coolpad5890 4.1.2 2 1内、1外 /mnt/sdcard/account Get a top-level public external storage directory for placing files of a particular type
N 联想K900 4.2.2 1 1内 /storage/sdcard0/account
Y 小米2s 5 /storage/sdcard0/account
N 华为p6 4.4.2 1 1内 /storage/emulated/0/account
Y 天语小黄蜂 4.3 2 1内、1外 /storage/sdcard0/account
getApplicationContext().getFilesDir().getAbsolutePath();
/data/data/com.example.testsdcardpath/files
getApplicationContext().getDir("aaa", Application.MODE_PRIVATE).getAbsolutePath();
/data/data/com.example.testsdcardpath/app_aaa