Я разрабатываю приложение, которое позволит пользователям делать снимки защищенных документов и загружать эти изображения на сервер (хорошим примером того, что я пытаюсь сделать, является банковское приложение, позволяющее пользователям фотографировать чеки).
Из соображений безопасности я не хочу, чтобы образ физически сохранялся на диске в любой момент, если это возможно.
Когда я пытаюсь сделать это с намерением MediaStore.ACTION_IMAGE_CAPTURE, это работает... но разрешение очень низкое. Я предполагаю, что это для предотвращения чрезмерного использования оперативной памяти. Я искал решения, но все они, которые я нашел, связаны с сохранением изображения на 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");
}