Я не был уверен, как это сказать, но в терминах iOS, если я загружаю изображение и сохраняю его в каталоге документов, он сохраняет его в Контейнерах приложений, который не виден другим приложениям и камере и т. д.Android, сохраняющий изображения в «App Container»
Способ, которым я располагаюсь в Android в настоящее время, все эти изображения видны в Проводнике и галерее.
Мне было интересно, как я мог бы сохранить эти изображения аналогично iOS и скрывать их в собственном контейнере приложений.
Есть ли способ создать папку с контекстом.MODE_PRIVATE или что-то подобное?
Это то, что у меня есть сейчас, делает ли это трюк?
public static Boolean saveToInternalStorage(Context context, Bitmap bitmap, String filename) {
ContextWrapper cw = new ContextWrapper(context);
//Path to /data/data/yourapp/app_data/imageDir
File directory = cw.getDir("imageDir", Context.MODE_PRIVATE);
//Create imageDir
File mypath = new File(directory, filename);
FileOutputStream fos = null;
try {
fos = new FileOutputStream(mypath);
//Use the compress method on the BitMap object to write image to the OutputStream
if (bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos)) {
return true;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (fos != null) {
fos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return false;
}
public static Bitmap loadImageFromStorage(Context context, String filename) {
ContextWrapper cw = new ContextWrapper(context);
//Path to /data/data/yourapp/app_data/imageDir
File directory = cw.getDir("imageDir", Context.MODE_PRIVATE);
try {
File f = new File(directory, filename);
Bitmap b = BitmapFactory.decodeStream(new FileInputStream(f));
return b;
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return null;
}
Я думаю, что '' getFilesDir() '] (http://developer.android.com/reference/android/content/Context.html#getFilesDir()) должен работать следующим образом в' MODE_PRIVATE'. Он принимает путь 'data/data/com.package.name/files /', и если устройство не внедрено, это невозможно увидеть сохраненный файл. См. Документацию [Использование внутренней памяти] (http://developer.android.com/guide/topics/data/data-storage.html#filesInternal). Я ответил [на соответствующий ответ] (http://stackoverflow.com/a/34751705/2668136), который может дать вам больше информации. – Fllo