Android上是否有API调用以获取Camera应用程序存储录制视频的文件夹的路径?我目前正在使用此代码片段,但想知道是否有合适(更干净)的方式来执行此操作?
// check file path exists!
File f = new File(Environment.getExternalStorageDirectory() + "/Videos");
if (!f.isDirectory()) {
f = new File(Environment.getExternalStorageDirectory() + "/DCIM");
if (!f.isDirectory()) {
f = new File(Environment.getExternalStorageDirectory() + "/");
}
}
String path = f.getAbsolutePath().toString();
编辑:
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM)
返回
/storage/emulated/0/DCIM
但是,
| => adb shell
shell@d2can:/ $ cd /storage/emulated
shell@d2can:/storage/emulated $ ls
legacy
shell@d2can:/storage/emulated $ cd 0
/system/bin/sh: cd: /storage/emulated/0: No such file or directory
2|shell@d2can:/storage/emulated $
奇怪的是,如果我真的继续尝试在那个不存在的位置(从Android应用程序内部)创建文件,它们确实会在/sdcard/DCIM
中创建!然而,当使用调试器检查app变量时,它们具有如上所示的路径 - 无效的路径。
答案 0 :(得分:1)
Android上是否有API调用以获取Camera应用程序存储录制视频的文件夹的路径?
没有一个“相机应用”。有数以千计的Android设备型号。这些设备型号预先安装了数十个(如果不是数百个)相机应用程序。用户可以从Play商店或其他地方下载数百种(如果不是数千种)其他相机应用程序。
无需在任何特定位置保存录制的视频,更不用说通过Java文件I / O可以获得的位置。
我目前正在使用这个代码片段,但是想知道是否有适当的(更干净的)方法来执行此操作?
您可以获取设备建议将文件存储在外部存储via Environment.getExternalStoragePublicDirectory()
上的位置。具体来说,DIRECTORY_DCIM
被描述为“将设备作为相机安装时的图片和视频的传统位置”。
然而:
相机应用不需要使用此目录
注意DIRECTORY_DCIM
的相机应用经常会创建特定于应用的子目录