Android - 防止相机保存图片

时间:2015-01-03 02:13:35

标签: java android android-camera-intent

我的代码旨在存储仅在特定于应用程序的目录中拍摄的照片。但是,它也将它们存储在画廊中,这会造成很大的不便。有办法解决这个问题吗?这是我的代码:

if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
        photoFile = null;
        try {
            photoFile = createImageFile(1);
        } catch (IOException e) {
            // Error occurred when creating a file
            System.out.println(e.getLocalizedMessage());
        }
        if (photoFile != null) {
            takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));
            startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
        }
    }

onActivityResult方法:

 public void onActivityResult(int requestCode, int resultCode, Intent data)
{
    switch(requestCode)
    {
        case REQUEST_IMAGE_CAPTURE:
            if(resultCode == RESULT_OK)
            {
                ImageView img;
                if (orientation == 1) {
                    img = (ImageView) findViewById(R.id.image_front);
                } else {
                    img = (ImageView) findViewById(R.id.image_side);
                }
                img.setImageURI(Uri.fromFile(photoFile));
            }
            break;
    }
}

提前致谢。

1 个答案:

答案 0 :(得分:0)

在保存图像的文件夹中创建一个名为.nomedia的空文件。

来自Android documentation

  

隐藏Media Scanner中的文件

     

在外部文件目录中包含名为.nomedia的空文件(请注意文件名中的点前缀)。这可以防止媒体扫描程序读取您的媒体文件,并通过MediaStore内容提供商将其提供给其他应用程序。但是,如果您的文件真正属于您的应用程序,则应将其保存在app-private目录中。