Wie Sie schreiben, exif-Daten zu Bild in Android?

Ich versuche zu schreiben User_Comment und TAG_GPS um ein aufgenommenes Bild in ein Android-Anwendung, die mithilfe der exif-interface, aber für einige Grund die tags scheinen nicht zu werden, die an die Bild, wenn ich das Bild anzuzeigen, die details in der Galerie.

Es scheint, dass vielleicht die tags werden nicht geschrieben, um das aufgenommene Bild als Datei-Pfad falsch sein kann. Ich denke, es könnte sein, weil ich geschrieben habe, die tags auf einen falschen Pfad für das Bild.

Wer weiß, wenn Ihr ein problem mit der Art, wie ich Schreibe die tags zu dem Bild?

Dies ist der code, speichert die exif-Daten nach dem @Charlie die folgenden Veränderungen:

private File getOutputPhotoFile() throws IOException {
          File directory = new File(Environment.getExternalStoragePublicDirectory(
                        Environment.DIRECTORY_PICTURES), getPackageName());
          if (!directory.exists()) {
            if (!directory.mkdirs()) {
              Log.e(TAG, "Failed to create storage directory.");
              return null;
            }
          }


          String timeStamp = new SimpleDateFormat("yyyMMdd_HHmmss", Locale.ENGLISH).format(new Date());

          File[] files = directory.listFiles();

          File exifVar =  new File(directory.getPath(), "IMG_" + timeStamp + ".jpg");
          if(files.length!=0) {
              File newestFile = files[files.length-1];
              exifVar =  new File(directory.getPath() + File.separator + newestFile.getName());
          }

          String mString = "Generic Text..";     
          ExifInterface exif = new ExifInterface(exifVar.getAbsolutePath());
          exif.setAttribute("UserComment", mString);
          exif.saveAttributes();


          exif.setAttribute(ExifInterface.TAG_GPS_LATITUDE,
            String.valueOf(latituteField.toString()));

          exif.setAttribute(ExifInterface.TAG_GPS_LONGITUDE, 
            String.valueOf(longitudeField.toString()));

          exif.saveAttributes();

          return exifVar; 




    }
warum fordern Sie exif.saveAttributes mehrere Male? Ich glaube, dass ein neues Bild erzeugt, jedes mal. Einfach Fragen
Es ist möglich, ich habe nicht an diesem Projekt gearbeitet haben, in eine Weile, ich denke, dass das problem möglicherweise darin, dass die Daten gespeichert werden, um eine temp-Bild mit dem Namen "exif" und wird nie geschrieben, um das ursprüngliche Bild.

InformationsquelleAutor Brian J | 2015-01-01

Schreibe einen Kommentar