Cześć, piszę aplikację, która robi zdjęcie przy pomocy kamery, a następnie wysyła ja na serwer do dalszej pracy.
Wywołuję już aparat w trybie robienia zdjęć i teraz muszę zapisać je na dysku. Najlepiej jak zdjęcia będą zapisywane w folderze aplikacji. Mam problem z poprawnym ustawieniem FileProvidera w pliku .xml oraz stworzeniu poprawnego obiektu File. Poniższy kod nie powoduje błędów aplikacji, ale zdjęcia się nie zapisują(bynajmniej tam gdzie szukam).
Tutaj tworzę plik dla zdjęcia.
private File createImageFile() throws IOException
{
String imageFileName = new SimpleDateFormat("yyyy.MM.dd_HH.mm.ss").format(new Date());
File dir = new File(getFilesDir(), "Photos/");
File image = new File(dir, imageFileName + ".png");
mCurrentPhotoPath = image.getAbsolutePath();
return image;
}
A tutaj samo wywołanie kamery.
File photoFile = null;
try
{
photoFile = createImageFile();
}
catch(IOException e)
{
e.printStackTrace();
}
if(photoFile != null)
{
String authorities = getPackageName() + ".fileprovider";
Uri photoURI = FileProvider.getUriForFile(this, authorities, photoFile);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
Nie rozumiem zbytnio działania zapisywania. Aplikację testuję na emulatorze oraz telefonie jednak działają inaczej co tylko pogarsza moje zrozumienie zapisu.