有什么办法可以得到Android相机拍摄的图片的真实存放路径?

Is there any way to get the real path storing picture captured by Android camera?

我发现一些 Android OEM 将 android 系统相机(由 OEM 开发)拍摄的照片存储在 DCIM 文件夹中,但其他 DCIM/Camera.

那么,有什么办法可以得到Android相机拍摄的图片的真实存放路径?

我不确定这是否是您想要的答案(或者您是否想要答案?),但它是:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                      imageFile = new File(
                              Environment
                                      .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "goQuiz/profilePic.jpg"
                      );


                      Uri tempuri = Uri.fromFile(imageFile);
                      intent.putExtra(MediaStore.EXTRA_OUTPUT, tempuri);
                      intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
                      startActivityForResult(intent, 0);
                      myVar = imageFile.getAbsolutePath();

截至目前,myVar 存储了保存图片的完整路径。

基本弄个变量给你保存file.getAbsolutePath()

I want to know the camera app developed by OEM itself.

除非挟持并要求OEM交出这些信息,否则您将无法获得。毕竟:

  • 您无法知道设备上预装了哪些相机应用程序,或者即使有一个

  • 您根本无法知道 OEM 是否编写了该相机应用程序,而不是从第三方获得许可

  • 您无法知道该相机应用会将图像存储在哪里,因为该应用可能会通过用户提供的配置数据(例如,"let's link the camera to your Dropbox account!")将图像存储在任何地方

  • 您甚至不知道相机是否会将图像存储在您可以访问的位置(例如,相机应用程序可以在 Android 4.4+ 上写入可移动媒体,您的应用程序无法访问)