В камере телефона включена функция геотегирования. Сохраняет информацию о широте и долготе (я проверял). Я пытаюсь прочитать это так
import static android.provider.MediaStore.Images.ImageColumns.*;
Uri queryPhotoUri = ...; //uri of photo
String[] photoProjection = {LATITUDE,LONGITUDE,ORIENTATION,DESCRIPTION};
Cursor photoData = getContext().getContentResolver().query(
queryPhotoUri, photoProjection, null, null, null);
int latIdx = photoData.getColumnIndex(LATITUDE);
int lngIdx = photoData.getColumnIndex(LONGITUDE);
int oriIdx = photoData.getColumnIndex(ORIENTATION);
int txtIdx = photoData.getColumnIndex(DESCRIPTION);
boolean latExists = !photoData.isNull(latIdx);
boolean lngExists = !photoData.isNull(lngIdx);
boolean oriExists = !photoData.isNull(oriIdx);
boolean txtExists = !photoData.isNull(txtIdx);
oriExists оценивается как ИСТИНА, остальное - ЛОЖЬ. Зачем? Записывает ли поставщик содержимого изображения широту и долготу в качестве атрибута exif в файл фотографии или сохраняет их где-то еще?
Также я пытаюсь написать описание фотографии в столбце ОПИСАНИЕ, но оно не сохраняется. Где хранится описание?
Редактировать: Это становится незнакомым. Я проверил источник фреймворка и класс MediaProvider считывает теги exif с фотографии и сохраняет их в базе данных. Однако поля широты и долготы по какой-то причине не сохраняются.