Ich versuche, lat-long und andere Daten in den Exif-Header eines JPEG in meiner benutzerdefinierten Kamera-App zu schreiben. Normalerweise füllt Android die Kopfzeile automatisch mit Daten wie Blende, ISO, Verschlusszeit usw. Wenn ich jedoch manuell eine ExifInterface
Instanz anlege, stelle den GPS-Standort mit SetAttributes()
ein und rufe SaveAttributes()
an; Alle anderen Kameradaten verschwinden.Android ExifInterface saveAttributes() Ohne vorherige Daten überschreiben?
Soll das passieren? Wie kann ich einfach ein Tag hinzufügen, ohne alles andere zu überschreiben?
Ich sah ein Beispiel woanders zwei ExifInterfaces erstellen, ein altes (aus dem Bild) und ein neues, und jeden bevölkerten Wert vom alten zum neuen zusammen mit irgendwelchen anderen Daten kopieren. Dies ist jedoch ärgerlich und langwierig. Ich würde gerne eine bessere Lösung finden.
Hier ist mein Code:
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();
}
Dank
Ich bin nicht sicher, warum das bei Ihnen passiert. Ich habe die gleiche Methode versucht, die Sie erwähnt haben, und keiner meiner EXIF-Daten wird überschrieben. Nur meine GPS-Position wird nach dem Speichern von Attributen geändert. Getestet an folgenden Geräten: Nexus Prime - 4.2.1 Motorola Moto E - 4.4.4 –