拍照而不将照片保存到画廊?
Posted
技术标签:
【中文标题】拍照而不将照片保存到画廊?【英文标题】:Take photo without saving picture to gallery? 【发布时间】:2012-09-12 18:24:52 【问题描述】:我的活动中有一个方法可以启动 image_capture 事件
public static void takePhoto(boolean fullSize)
if(isIntentAvailable(mActivity.getApplicationContext(), MediaStore.ACTION_IMAGE_CAPTURE))
mActivity.startActivityForResult(new Intent(
MediaStore.ACTION_IMAGE_CAPTURE), CAPTURE_IMAGE);
else
Toast.makeText(mActivity.getApplicationContext(), "Geen camera beschikbaar", Toast.LENGTH_SHORT).show();
public static boolean isIntentAvailable(Context context, String action)
final PackageManager packageManager = context.getPackageManager();
final Intent intent = new Intent(action);
List<ResolveInfo> list =
packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
return list.size() > 0;
当用户拍照时,我想从照片中获取字节并广播这些字节。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
if (resultCode != RESULT_CANCELED)
case CAPTURE_IMAGE:
byte[] photoBytes = null;
if (data != null)
Bitmap b = (Bitmap) data.getExtras().get("data");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
b.compress(Bitmap.CompressFormat.PNG, 100, stream);
photoBytes = stream.toByteArray();
Toast.makeText(getApplicationContext(), "Foto wordt geupload..", Toast.LENGTH_SHORT).show();
Log.d("ShowScreenActivity", Integer.toString(photoBytes.length));
// Send bytearray back to server
BroadcastSender.sendPicture(photoBytes);
else
Log.d("ShowScreenActivity", "Data in intent is empty");
break;
一切正常,但图像也存储在设备的图库中。 我该如何防止这种情况或我做错了什么?
【问题讨论】:
您可以查看 [此链接][1] [1]:marakana.com/forums/android/examples/39.html 或 [拍摄后删除照片][2] [2]:***.com/questions/6390163/… 【参考方案1】:您的图像已保存到图库,因为这是默认行为。要覆盖它,您需要指定一个不同的目标文件夹来保存您的图像(在调用相机的意图中),并在该文件夹中放置一个 .nomedia 文件
【讨论】:
您能否指定存储到不同目录所需的额外意图?如果它有效但无法确认是否存在这样的选项,我会喜欢这个解决方案。 使用intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File("/sdcard/somefolder")));当你调用相机时 使用这个将图像写入指定路径是的,但仍然在图库中创建图像。 @YoannHercouet :如果您指定的路径包含 .nomedia 文件,则不会。【参考方案2】:您是否将图片临时存储在 BroadcastSender 的 sendPicture 方法中的目录中?
如果图像存储在 MediaScanner 索引的目录中,它将自动添加到图库中。
【讨论】:
以上是关于拍照而不将照片保存到画廊?的主要内容,如果未能解决你的问题,请参考以下文章
有啥方法可以将 Kivy 相机照片保存为 base64 而不将其导出为 png?