Я хочу скрыть привязку, полученную из приложения камеры камеры, и сохранить его в локальном хранилище, чтобы он не отображался в Галерее или любом другом совместном использовании медиафайлов заявление.Запись и чтение изображения камеры в файл в локальном хранилище в Android
я сделал эта часть. Но в проводнике файлов я вижу свои снимки по адресу /storage/emulated/0/Android/data/<package name>/files**
. Хорошо с этим тоже.
Проблема, с которой я столкнулась, заключается в том, чтобы сделать это нечитаемым, поскольку я преобразовал растровое изображение в byteArray и записал этот массив в файл в том же каталоге.
int bytes = byteSizeOf(myBitmap);
ByteBuffer buffer = ByteBuffer.allocate(bytes); //Create a new buffer
myBitmap.copyPixelsToBuffer(buffer); //Move the byte data to the buffer
byte[] byteArray = buffer.array();
FileOutputStream fileOuputStream = new FileOutputStream(path);
fileOuputStream.write(byteArray);
fileOuputStream.close();
Когда я читаю этот файл и преобразования его в ByteArray, я получаю то же массив байт, но когда я декодирование этого ByteArray к Bitmap, я получаю растровое изображение как null
и после показывают в LogCat SkImageDecoder :: завод вернулся нулевой
Я использую следующий код для извлечения растрового изображения
File f = new File(path);
try {
byte[] byteArr = FileUtils.readFileToByteArray(f);
Bitmap bmp;
bmp = BitmapFactory.decodeByteArray(byteArr, 0, byteArr.length);
addScrollchild(bmp);
} catch (Exception ex) {
}
Я получаю null в bmp экземпляра.
Любая помощь будет назначена.
Почему бы не сохранить изображение в каталоге '/ data/data//files /'? Тогда он не будет доступен для пользователей без очереди и не будет отображаться в галерее. –
camelCaseCoder
@camelCaseCoder, что я буду делать для пользователей с корневыми устройствами? – Sunny
Тогда шифрование - единственный выход. – camelCaseCoder