【问题标题】:Avoid that the gallery saves the picture taken with the camera in Android避免图库保存在Android中使用相机拍摄的照片
【发布时间】:2012-06-28 08:10:16
【问题描述】:

我有一个应用程序允许用户使用手机的原生相机拍照,我不想实现相机的所有功能(我不想失去自动对焦、闪光灯或一些本机相机可能具有的其他属性)所以我打了这个电话:

File folder = new File(Environment.getExternalStorageDirectory(),"folder");
    folder.mkdirs();
    File nomedia = new File(folder,".nomedia");
    try{
        nomedia.createNewFile();
    }catch (IOException e){
        e.printStackTrace();
        Log.e("error", e.getMessage());
    }

    File file = new File(folder,"image.jpeg");
    try {
        file.createNewFile();
    } catch (IOException e) {
        e.printStackTrace();
    }
    imageUri = Uri.fromFile(file);
    if(imageUri != null){   
        Log.i(TAG, "imageUri: " + imageUri.getPath());
        imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
     }

然后在一个按钮中我执行了意图:

startActivityForResult(imageIntent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);

这很好用,它打开相机,我在拍照时收到回调,如果我用手机的文件资源管理器查看文件夹,我可以看到图片以及我创建的“.nomedia”文件已创建。

问题是我不希望相机将此图像存储在手机的图库中,因为,不知何故,这是“神奇的”;)添加到 Android 的图库中,我想添加“.nomedia "文件并在一个单独的文件夹中创建图片,画廊不会扫描它。想法是图片仅供应用内部使用。

有没有办法避免这种情况?我真的搜索并尝试了许多不同的方法,但我无法解决它。

我希望我的解释很清楚。

提前致谢!

【问题讨论】:

  • 我知道这可能没有帮助。但是我前段时间遇到了同样的问题,不得不放弃。如果我没记错的话,我尝试的一种方法是将图片移动到应用程序专用存储中,这会阻止画廊显示它,但这也阻止了自动缩略图的创建。
  • 尝试添加句点 '.'到您存储图片的文件夹的前面。例如,在您的示例中,尝试切换到“.folder”作为您的目录名称。还有你在什么设备上测试?
  • 我累了,但这无济于事@Tim,我正在使用 Galaxy S Plus,但我在 HTC Wildfire 中也遇到了同样的问题。

标签: android android-intent android-camera android-gallery


【解决方案1】:

我找到了这个解决方案: Stop saving photos using Android native camera

这个想法是在拍摄照片之前检查图库中的哪些文件,然后在照片之后删除那个新文件。

这不是最干净的解决方案,但它确实有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2011-09-30
    相关资源
    最近更新 更多