안녕하세요~ 정말 하다하다 요상하게 안되서요 문의올립니다.
간단한 설명을 드리면 이미지 촬영시 위치정보가 같이 기록이 되고
그 정보가
MediaStore.Images.Media.LATITUDE
MediaStore.Images.Media.LONGITUDE
에 기록이 되잖아요.
저걸로 위치정보를 읽어올수가 있는데요...
근데 위치값 수정을 할려고 하는데 수정이 안되네요... ㅡㅡ;
MediaStore.Images.Media.DESCRIPTION 요필드는 수정이 잘 되고요.. 이거 대체 왜그런지 모르겠네요..
더욱 희한한건...
A activity 에서 위치수정후 바로 조회를 하면 분명 업데이트 된걸로 다시 뽑히거든요.. 근데
B activity 에서 조회를 해보면 예전 위치값으로 뽑힙니다... 정말 왜그런지 모르겠어요..
DESCRIPTION 필드는 A 에서 수정후 B에서 확인해도 잘나옵니다... 왜그런걸까요??
=======================================================================
int rs = 0;
ContentResolver resolver = getContentResolver();
ContentValues content = new ContentValues(3);
content.put("latitude", 37.55969);
content.put("longitude", 127.005283);
content.put(MediaStore.Images.ImageColumns.DESCRIPTION, "TEST2 ing... ");
rs = resolver.update(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, content, "_id=1278", null );
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(new File("/mnt/sdcard/DCIM/Camera/IMG_20101016_210554.jpg"))));
=======================================================================
요렇게 테스트를 해봤어요..
요렇게 만든다음에 바로 아래에서
아래코드를 넣어서 로그를 보면 바뀐 값으로 잘 뽑아내요...
근데 다른 activity 에서 아래코드 이용해서 뽑아내면 예전 값으로 출력됩니다. ㅡㅡ; 대체 어캐된 일일까요??
혹시 아시는 분 계시면 답변 부탁드려요~~ ㅠ.ㅠ
감사합니다.~
=======================================================================
Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
String[] selection = new String[]{
MediaStore.Images.Media._ID,
MediaStore.Images.Media.DATA,
MediaStore.Images.Media.LATITUDE,
MediaStore.Images.Media.LONGITUDE,
MediaStore.Images.Media.DESCRIPTION};
Cursor cursor = managedQuery(uri, selection, "_id=1278", null, null);
int tmpId = 0;
String tmpPath = "";
double tmpLat = 0.0;
double tmpLng = 0.0;
String tmpDesc = "";
if(cursor.moveToNext()) {
tmpId = cursor.getInt(cursor.getColumnIndexOrThrow("_ID"));
tmpPath = cursor.getString(cursor.getColumnIndexOrThrow("_DATA"));
tmpLat = cursor.getDouble(cursor.getColumnIndexOrThrow("LATITUDE"));
tmpLng = cursor.getDouble(cursor.getColumnIndexOrThrow("LONGITUDE"));
tmpDesc = cursor.getString(cursor.getColumnIndexOrThrow("DESCRIPTION"));
}
Log.i("info", "Test - tmpId : " + tmpId);
Log.i("info", "Test - tmpPath : " + tmpPath);
Log.i("info", "Test - tmpLat : " + tmpLat);
Log.i("info", "Test - tmpLng : " + tmpLng);
Log.i("info", "Test - tmpDesc : " + tmpDesc);
cursor.close();
=======================================================================
자답입니다.
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(new File("/mnt/sdcard/DCIM/Camera/IMG_20101016_210554.jpg"))));
요부분 없애니까 되네요 ㅡㅡ;; 머지..
입력은 잘되던데 업뎃할때만 저거 있으면 안되는듯 하네요 ;;