Android 照相机意图/活动-避免保存到多媒体资料

Android 照相机意图/活动-避免保存到多媒体资料,android,android-camera,android-gallery,Android,Android Camera,Android Gallery,我正在使用相机活动拍摄图片。我用MediaStore.EXTRA\u OUTPUTEXTRA参数来调用它。图像已正确保存到提供的路径,并将其保存到gallery文件夹中,这样我就可以在“gallery”应用程序中查看图像-我可以避免这种情况吗 ... File file = new File(Environment.getExternalStorageDirectory(), "Test.jpg" ); iImageOutputUri = Uri.fromFile( file ); // St

我正在使用相机活动拍摄图片。我用MediaStore.EXTRA\u OUTPUTEXTRA参数来调用它。图像已正确保存到提供的路径,并将其保存到gallery文件夹中,这样我就可以在“gallery”应用程序中查看图像-我可以避免这种情况吗

...
File file = new File(Environment.getExternalStorageDirectory(), "Test.jpg" );
iImageOutputUri = Uri.fromFile( file );

// Start camera intent to capture image
Intent intent = new Intent( MediaStore.ACTION_IMAGE_CAPTURE );
intent.putExtra( MediaStore.EXTRA_OUTPUT, iImageOutputUri );
startActivityForResult( intent, CAPTURE_IMAGE );
...

谢谢

我不相信你能避免这种情况。gallery应用程序在SD卡中查找图像并自动显示它们。

使用非图像扩展名保存图像如何?类似于michael.photo而不是michael.jpg/png等。这样Gallery应用程序就不会接收它们,我见过很多这样的应用程序keepsafe就是这样做的。

只需替换代码即可。

File file = new File(Environment.getExternalStorageDirectory(), "Test.jpg" );
File file = new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES), "Test.jpg");
带有以下代码

File file = new File(Environment.getExternalStorageDirectory(), "Test.jpg" );
File file = new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES), "Test.jpg");
getExternalFilesDir()的描述:

返回主外部文件系统上目录的绝对路径(位于
环境.getExternalStorageDirectory()上的某个位置)
应用程序可以将其拥有的持久文件放置在该位置。这些文件是应用程序的内部文件,通常不会作为媒体显示给用户。

+1这是一个好问题。我一直在想,为什么我所有使用相机的应用程序都会将照片保存在图库中。我得出的结论是,你无法真正预测相机活动的真正用途。这部分取决于android版本的定制程度(因此是一个定制的摄像头活动,等等)。解决这个问题的唯一方法是编写自己的相机活动。对我来说,这是解决所有怪癖和不使用任何黑客的最简单方法。嗨,Audrius,我同意你的观点-这取决于设备-在某些手机上,它还将图像保存到gallery(如LG-P500),在某些手机上(如三星Nexus S)。相机活动的许多方面都非常糟糕,它不允许指定参数,如完全由用户决定的最小/最大图像质量,它不能返回缓冲区中的JPEG,例如进一步处理等。它使用起来非常简单,但不如它所能达到的好。在下一个项目中,我将自己处理相机。。。有没有办法找到(可靠的)重复/不需要的保存图像的url?(我指的是保存在默认相机文件夹中的相机,根本不应该保存)?因为如果是这样的话,作为一种解决办法,你可以删除这个…@matteo看看这个:不漂亮,但我试过了,它有点效果。不过,我并没有提到公认的答案——我试过埃米尔的方法。这不是重点。关键是图像实际上保存了两次:一次保存在作为额外输出提供的位置,另一次保存在默认位置。这就是OP想要避免的