Android schreiben, EXIF-GPS-breiten-und Längengrad auf JPEG fehlgeschlagen

Möchte ich hinzufügen, GPS-Daten wie Längen-und Breitengrad in das jpeg-Foto.
Das Foto wird aufgenommen, indem Sie die Tab-Karte (NFC -)
In der logcat richtigen Werte angezeigt werden können, aber diese Werte können nicht geschrieben werden in das jpg-Foto-Datei !

Unten ist mein code:
Es wird verwendet, um gespeicherte jpg-Dateien, und rufen Sie die Methode unten
Die Methode zum hinzufügen von EXIF-GPS-Parametern in jpg
Die GPS-Parameter, wie Längen-und Breitengrad sind bereits getroffen, die in einem anderen Aktivität.

Verwende ich die EXIF-Viewer in Firefox zu sehen, das Ergebnis.

Übernimmt die position für die E /a-Ausnahme kommt es an?

Folgenden ist das wichtige log-cat-Protokoll welches macht vielleicht den Fehler:
07-26 11:48:30.386: D/NativeNfcTag(195): Tag verloren, Neustart polling-Schleife

 public static void writeFile (File photo, double latitude, double longitude) throws IOException{


    ExifInterface exif = null;

    try{
        Log.v("latiDouble", ""+latitude);
        Log.v("longiDouble", ""+longitude);
        exif = new ExifInterface(photo.getCanonicalPath());
        if (exif != null) {
        double latitu = latitude;
        double longitu = longitude;
        double alat = Math.abs(latitu);
        double along = Math.abs(longitu);
        String stringLati = convertDoubleIntoDegree(alat);
        String stringLongi = convertDoubleIntoDegree(along);
        exif.setAttribute(ExifInterface.TAG_GPS_LATITUDE, stringLati);            
        exif.setAttribute(ExifInterface.TAG_GPS_LONGITUDE, stringLongi);
        Log.v("latiString", ""+ stringLati);
        Log.v("longiString", ""+ stringLongi);
        exif.saveAttributes();
        String lati = exif.getAttribute (ExifInterface.TAG_GPS_LATITUDE);  
         String longi = exif.getAttribute (ExifInterface.TAG_GPS_LONGITUDE);  
         Log.v("latiResult", ""+ lati);
         Log.v("longiResult", ""+ longi);

        }
    } catch (IOException e) {
        //TODO Auto-generated catch block
        e.printStackTrace();

    }

}

Die unten ist die position, rufen Sie die Methode
...

    Cursor locationCursor = dbHandler.fetchGpsLocationTypeByAttendInfoID(attendInfoId);
      if (locationCursor.getCount()>0) {
        double latitude = dbHandler.fetchDoubleItem(locationCursor,"LATITUDE");
        double longitude = dbHandler.fetchDoubleItem(locationCursor,"LONGITUDE");


            Log.v("latitude",""+latitude);
            Log.v("latitude",""+longitude);     

            try {
                GpsUtils.writeFile(photoFile, latitude, longitude);
            } catch (IOException e) {
                //TODO Auto-generated catch block
                e.printStackTrace();
            }

    }
    dbHandler.close();

    cameraHandler.startPreview();
  • Wir werden wahrscheinlich brauchen weitere Informationen auf, was Ihr code tut (ein Schritt durch und erklären, was jede Zeile kann dazu führen Sie zu einer Lösung, zu) und alle Forschungs Sie bereits getan habe, für die Frage. Zum Beispiel, wenn Sie eine Ausnahme, was ist die Ausnahme? Grundsätzlich, wenn Sie etwas, das Sie denken, kann jemand helfen die Frage zu beantworten, es würde groß sein, um es hinzuzufügen.
  • Was ich gesehen habe ist, dass die eingestellten Parameter gültig ist und in der Lage, angezeigt werden, aus dem logcat, aber jedoch beim öffnen des iamges, die von EXIF Viewer für Firefox , ich kann nicht sehen, keine GPS-Daten, die geschrieben sind in diesem Bild.
Schreibe einen Kommentar