避免图库将相机拍摄的照片保存在Android中



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

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"文件并在单独的文件夹中创建图片,图库不会扫描它。这个想法是,这些图片仅供应用程序的内部使用。

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

我希望我对解释很清楚。

提前感谢!

我找到了这个解决方案:停止使用安卓原生相机保存照片

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

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

最新更新