09.10.2014 07:56:48 UTCgeändert am 09.10.2014 07:59:14 UTC
Yep I can confirm that.
The reason:
In Android 4.4 apps cannot write to the SD-Card any more
>> So it is not possible to create a resized (smaller) picture there for uploading
>> Therefore, the setLastModified() bug does not apply here
>> Geotagging is correct
In internal memory
>> The resized photo is created
>> But the timestamp is not correct because of the setLastModified() failure
>> Geotagging is wrong
The fix for both problems (no resizing in one case and no geotagging in the other):
will come with release 3.0 of Run.GPS (storing the resized photos to a temp directory and saving the timestamps in an extra list)
I have investigated that for me problem with geolocation meta data occur when pictures are saved in internal memory, when It's saved on external sd card it works fine.
25.09.2014 18:37:53 UTCgeändert am 25.09.2014 18:38:46 UTC
Thanks for your clear and in depth explanation. I don't want to have my pictures saved in internal memory due to that if the phone is damaged I can't retrieve them(this recently happaned on my S3).
Yes, the uploadtime was right after the track was recorded.
Could it be possible for RunGps to save the resized temporary pictures on the internal memory, apply "last saved" and upload them from there?
Im not taking a lot of pictures when using RunGps BUT, when I do I really want the "geotag" working.
Tests with a different time zone (e.g. GMT-7) also worked fine. I really wonder what is different on your devices.
@emilaa: The timestamps of the three photos are all 9/24/2014 7:17. Could it be that this is the time when you uploaded the training? Directly after recording it?
Some more technical background ...
When Run.GPS uploads a training it
1) searches for all photos that have been taken between <start-of-training-time> and <end-of-training-time>
2) for each photo found it
a) takes the "lastmodified" timestamp, saves it
b) then creates a smaller resized version of the photo
c) and then applies the "lastmodified" timestamp to the resized photo
3) then everything is uploaded
The whole thing looks like setting the last modification timestamp for the resized photos does not work for some reason ("setLastModified()" API call).
I think this suspicion is supported by the following discussion: https://code.google.com/p/android/issues/detail?id=18624
Possible workaround: save photos to internal storage until the problem is fixed.
Possible solutions:
- setLastModified() is fixed on devices
- we'll keep an additional list of timestamps in Run.GPS
24.09.2014 16:25:23 UTCgeändert am 24.09.2014 16:40:50 UTC
One correction, I have Android, 4.4.2, typed it wrong.
Samsung provided standard camera app used
Like koszu, it worked just fine for years on different cellphones, and it used to work fine on my Galaxy S4 as well but I just noticed that it did not work now...
I'm GMT -07:00(Pacific Daylight time)
Using "Automatic date and time" in Android settings
I think Europe and US uses different dates for time saving, maybe that can be the issue?
As a test this morning on my way to work I ran RunGps, took a few pics and uploded, same thing. So, I checked the file name "20140924_065959.jpg" and it's same as time stamp on file 9/24/2014 6:59.
I then used InfranView and looked at the EXIF Info and it also have same time in it, see below, and to me it's the same time.
Sample was 3rd photo here http://www.gps-sport.net/trainings/running_1490235
EXIF sample data -------------------
Filename - 20140924_065959.jpg
ImageWidth - 3264
ImageLength - 1836
Make - SAMSUNG
Model - SAMSUNG-SGH-I337
Orientation - Top left
XResolution - 72
YResolution - 72
ResolutionUnit - Inch
Software - I337UCUFNI1
DateTime - 2014:09:24 06:59:58
YCbCrPositioning - Centered
ExifOffset - 232
ExposureTime - 1/584 seconds
FNumber - 2.20
ExposureProgram - Normal program
ISOSpeedRatings - 50
ExifVersion - 0220
DateTimeOriginal - 2014:09:24 06:59:58
DateTimeDigitized - 2014:09:24 06:59:58
ComponentsConfiguration - YCbCr
ShutterSpeedValue - 1/588 seconds
ApertureValue - F 2.20
BrightnessValue - 7.45
ExposureBiasValue - 0.00
MaxApertureValue - F 2.20
MeteringMode - Average
LightSource - Auto
Flash - Not fired
FocalLength - 4.20 mm
UserComment - METADATA-START
FlashPixVersion - 0100
ColorSpace - sRGB
ExifImageWidth - 3264
ExifImageHeight - 1836
InteroperabilityOffset - 4950
SensingMethod - One-chip color area sensor
SceneType - A directly photographed image
ExposureMode - Auto
White Balance - Auto
FocalLengthIn35mmFilm - 31 mm
SceneCaptureType - Standard
So, it does work for me. The question is why it does not work for you. Are you using the Samsung camera app?
Why is your device still Android 4.2? Just curious ...
A little background: Run.GPS uses the timestamps of the photos for geo-location, so perhaps you could check the timestamps of the files with a file manager like Astro.
Perhaps a problem with time zones? But you're both MET, right?