diff options
| -rw-r--r-- | media/java/android/media/MediaScanner.java | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/media/java/android/media/MediaScanner.java b/media/java/android/media/MediaScanner.java index b2dc1e3f5122..74d65d190a1c 100644 --- a/media/java/android/media/MediaScanner.java +++ b/media/java/android/media/MediaScanner.java @@ -794,6 +794,15 @@ public class MediaScanner long time = exif.getGpsDateTime(); if (time != -1) { values.put(Images.Media.DATE_TAKEN, time); + } else { + // If no time zone information is available, we should consider using + // EXIF local time as taken time if the difference between file time + // and EXIF local time is not less than 1 Day, otherwise MediaProvider + // will use file time as taken time. + time = exif.getDateTime(); + if (Math.abs(mLastModified * 1000 - time) >= 86400000) { + values.put(Images.Media.DATE_TAKEN, time); + } } int orientation = exif.getAttributeInt( |