android的App只能访问外置SD指定的目录,一般是:
$外置SD目录 + "/Android/data/" + $apk包名
1 获取外置SD目录的方法:
调用getenv(const char *name)方法,通过环境变量"SECONDARY_STORAGE"得到,若没有这个变量,则通过"EXTERNAL_STORAGE"得到。
如果上面方法还不行,枚举/mnt目录下的所有目录。
2 获取apk包名的方法:
pid_t getpid()得到进程标识;再通过读 /proc/$pid/cmdline 文件内容得到进程名字,即是包名
3 拼凑沙盒目录:
$外置SD目录 + "/Android/data/" + $apk包名 + “/cache"