我有一个应用程序,允许用户使用手机的原生相机拍照,我不想实现相机的所有功能(我不想失去自动对焦,闪光灯或一些本机相机可能拥有的其他属性)所以我打这个电话:
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” “文件并在单独的文件夹中创建图片,图库不会扫描它。我们的想法是图片仅供内部使用。
有没有避免这种情况?我真的搜索并尝试了许多不同的方法,但我无法解决它。
我希望我能解释清楚。
提前致谢!
答案 0 :(得分:3)
我找到了这个解决方案: Stop saving photos using Android native camera
这个想法是在拍摄照片之前检查图库中的文件,然后删除那个文件。
这不是最干净的解决方案,但它有效。