Próbuję napisać długie i inne dane do nagłówka Exif pliku jpeg w mojej niestandardowej aplikacji aparatu. Zazwyczaj android automatycznie wypełnia nagłówek danymi, takimi jak przysłona, ISO, czas otwarcia migawki itp. Jednak, gdy ręcznie dodaję instancję ExifInterface
, ustaw lokalizację GPS na SetAttributes()
i zadzwoń pod numer SaveAttributes()
; wszystkie inne dane kamery znikają.Android ExifInterface saveAttributes() bez nadpisywania poprzednich danych?
Czy to ma się stać? Jak mogę po prostu dodać tag bez nadpisywania wszystkiego?
Widziałem przykład gdzie indziej tworzenia dwóch ExifInterfaces, stare (z obrazu) i nowe, i kopiowanie każdej zaludnionej wartości ze starego na nowy wraz z innymi danymi. Jest to jednak denerwujące i długotrwałe. Chciałbym znaleźć lepsze rozwiązanie.
Oto mój kod:
try{
ExifInterface exif = new ExifInterface(pictureFile.getAbsolutePath());
exif.setAttribute(ExifInterface.TAG_GPS_LATITUDE, mGpsLocation.getLatDms());
exif.setAttribute(ExifInterface.TAG_GPS_LONGITUDE, mGpsLocation.getLonDms());
exif.setAttribute(ExifInterface.TAG_GPS_ALTITUDE, mGpsLocation.getAltDms());
exif.saveAttributes();
} catch(IOException e){
e.printStackTrace();
}
Dzięki
Nie jestem pewien, dlaczego tak się dzieje. Próbowałem tej samej metody, którą wymieniłeś i żadne z moich danych EXIF nie zostało zastąpione. Tylko moja lokalizacja GPS jest modyfikowana po zapisaniu atrybutów. Przetestowano na następujących urządzeniach, Nexus Prime - 4.2.1 Motorola Moto E - 4.4.4 –