0
我正在尝试创建一个auto-backup
应用,其中从Camera
拍摄的所有照片都将上传到Cloudinary。但是,我似乎无法让我的代码工作。我究竟做错了什么?在Android Studio中获取相机镜头
class UploadPhotos implements Runnable {
@Override
public void run() {
File storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
File[] listOfFiles = storageDir.listFiles();
if (listOfFiles != null) {
System.out.println("code does not get this far");
for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isFile()) {
System.out.println("File " + listOfFiles[i].getName());
try {
cloudinary.uploader().upload(listOfFiles[i], ObjectUtils.emptyMap());
System.out.print(listOfFiles[i] + " should have uploaded");
} catch (IOException e) {
e.printStackTrace();
}
} else if (listOfFiles[i].isDirectory()) {
System.out.println("Directory " + listOfFiles[i].getName());
}
}
}
}
}
的storageDir
路径出来作为Android Studio emulator
内/storage/0804-0A1C/DCIM
但listOfFiles为空(尽管已经采取了一些照片与相机)。
可能是因为你的文件系统不hvae这条道路。 –
首先,这不是摄像头应用程序的外部存储器上推荐的基础目录。这将是'DIRECTORY_DCIM'。其次,没有要求任何相机应用程序将照片存储在任何特定位置,更不用说您有权访问的照片。 有成千上万的Android设备型号。这些应用程序随附数百种不同的预装摄像头应用程序,并且有许多其他相机应用程序可通过Play商店等分销渠道获得。他们都可以做他们想做的。 – CommonsWare
@CommonsWare谢谢,我已将它更正为DCIM并将编辑帖子。但是,这仍然导致listOfFiles为空。当然,必须有办法找到设备上的默认相机应用程序的保存位置? –