【发布时间】:2017-07-16 18:47:08
【问题描述】:
我正在尝试拍照,然后将其保存并上传到 Firebase,但由于某种原因,当我在任何模拟器上尝试此操作时,它可以工作,但在我的真实手机上,我收到文件不存在的消息。 注意:用户已经授予相机和存储权限。 User.pictureTaken 和 User.pictureTakenName 只是另一个类中的 2 个静态字符串,我用它们来快速保存路径和 UUID。
拍照:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = getOutputMediaFile(null);
Uri photoUri = FileProvider.getUriForFile(getActivity(), getActivity().getApplicationContext().getPackageName() + ".provider", file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
User.pictureTaken = file.getPath();
Log.d("MyTag", "URL: " + file.getPath());
startActivityForResult(intent, TAKE_PHOTO_CODE);
获取图片路径:
private File getOutputMediaFile(String newUUID){
if (newUUID == null) {
newUUID = UUID.randomUUID().toString();
User.pictureTakenName = newUUID;
}
return new File(getActivity().getFilesDir(), newUUID);
}
尝试打开文件:
File mediaStorageDir = getOutputMediaFile(User.pictureTakenName);
InputStream stream = new FileInputStream(mediaStorageDir);
UploadTask uploadTask = FirebaseReferences.selfies.child(User.pictureTakenName).putStream(stream);
这里的最后一行给出了错误,下面的代码不包括在内,因为它不相关。
【问题讨论】:
标签: android file android-camera uri android-camera-intent