Из приложения снимок сделан с помощью кода:
values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, "DogWalker");
values.put(MediaStore.Images.Media.DESCRIPTION, "DogWalker");
imageUri = getActivity().getContentResolver().insert(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
//Save the Uri in order to get it back on getPictureResults. In most of the cases this would work
//without passing the Uri, but when the app is removed from memory imageUri is lost and the app
//can not recover the picture.
String stringUri = imageUri.toString();
SharedPreferences.Editor editor = mContext.getSharedPreferences(Global.MY_PREFS_NAME, 0).edit();
editor.putString(Global.EXTRA_PICTURE_URI, stringUri);
editor.apply();
По результатам активности:
//on ActivityResult method
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
switch (requestCode)
{
case takePictureRequestCode:
getPictureResults(resultCode, intent);
break;
}
}
private void getPictureResults(int resultCode, Intent intent) {
if (resultCode == Activity.RESULT_OK)
{
try {
//Get Saved URI
Bitmap dogWalkPicture;
SharedPreferences prefs = mContext.getSharedPreferences(Global.MY_PREFS_NAME, 0);
String stringUri = prefs.getString(Global.EXTRA_PICTURE_URI, "");
imageUri = Uri.parse(stringUri);
String filePath = mGlobal.getRealPathFromURI(mContext, imageUri);
ExifInterface exif = new ExifInterface(filePath);
float[] latLng = new float[2];
boolean hasLatLong = exif.getLatLong(latLng);
if (hasLatLong) {
System.out.println("Latitude: " + latLng[0]);
System.out.println("Longitude: " + latLng[1]);
}
Проблема в том, что hasLatLong всегда возвращает false.Правильно, на картинке нет информации от latlng, я проверил с помощью приложения android photos.Когда я делаю снимок с помощью камеры (из приложения), там есть последние данные.
Есть идеи?Заранее спасибо.