我正在开发一个应用程序,它允许用户捕获安全文档的图像并将这些图像上传到服务器(我正在尝试做的一个很好的例子是银行应用程序,它允许用户为支票拍照。)
出于安全原因,我不希望图像在任何时候都物理存储在磁盘上,如果可能的话。
当我尝试使用 MediaStore.ACTION_IMAGE_CAPTURE 意图执行此操作时,它可以工作......但分辨率非常低。我认为这是为了防止过度使用 RAM。我四处寻找解决方案,但我发现的所有解决方案都涉及将图像存储在 SD 卡或内部 NAND 存储上。我不想那样做。
如果无法避免存储照片,有没有办法将图像存储到我的应用程序才能访问的位置?然后我会在上传后删除文件。如果我必须这样做,有没有办法在存储照片时对其进行加密?
这是我当前代码的简化,以防万一有帮助:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent,requestCode);
和
protected void onActivityResult(int requestCode, int resultcode, Intent data)
{
if (resultcode == RESULT_OK)
{
Bitmap bmp = getBitmapFromIntent(data);
}
}
private Bitmap getBitmapFromIntent(Intent intent)
{
Bundle extras = intent.getExtras();
return (Bitmap) extras.get("data");
}