MAUI [다중 선택] 사진 업로드에서 iOS와 Android의 위치정보(EXIF) 차이 정리
MAUI로 사진 업로드 + 위치정보(GPS) 추출 기능을 구현하다 보면,플랫폼 간 차이 때문에 예상보다 많은 시간을 소모하게 됩니다.특히 다중 선택 업로드에서iOS는 잘 되는데Android에서는 개별 선택은 되지만, 다중 선택 시 위치정보가 사라지는 상황을 많이 겪게 됩니다.이번 글에서는 실제 구현 과정에서 확인한 iOS vs Android의 차이점을 정…
MAUI로 사진 업로드 + 위치정보(GPS) 추출 기능을 구현하다 보면,
플랫폼 간 차이 때문에 예상보다 많은 시간을 소모하게 됩니다.
특히 다중 선택 업로드에서
iOS는 잘 되는데
Android에서는 개별 선택은 되지만, 다중 선택 시 위치정보가 사라지는 상황을 많이 겪게 됩니다.
이번 글에서는 실제 구현 과정에서 확인한 iOS vs Android의 차이점을 정리해 봅니다.
1. 권한 모델 차이
iOS 권한 구조
iOS는 권한 모델이 엄격하지만 명확합니다.
사진 접근 권한 (Photos)
위치 권한 (Location)
이 둘은 완전히 분리되어 있습니다.
중요한 점은,
📌 사진의 위치 메타데이터(EXIF GPS)는
위치 권한이 없어도 사진 접근 권한만으로 읽히는 경우가 많다는 점입니다.
즉,
사용자가 사진 접근만 허용
사진에 GPS가 포함되어 있다면
→ EXIF의 위치정보를 비교적 안정적으로 읽을 수 있습니다.
Android 권한 구조
Android는 버전별로 권한 모델이 계속 바뀌었습니다.
* Android 12 이하
- READ_EXTERNAL_STORAGE
*Android 13 이상
- READ_MEDIA_IMAGES
- READ_MEDIA_VIDEO
여기에 더해,
위치 정보
미디어 접근 방식
스토리지 정책
이 복합적으로 얽혀 있습니다.
📌 결과적으로 Android에서는
“사진은 읽히는데, 위치 메타데이터는 안 읽히는”
상황이 쉽게 발생합니다.
2. 다중 선택 동작 차이 (가장 큰 문제 구간)
iOS – 안정적인 다중 선택
iOS에서는 Photos Picker 기반의 다중 선택이 OS 레벨에서 매우 안정적입니다.
단일 선택 / 다중 선택 모두
선택된 이미지의 메타데이터 접근이 일관됨
스트림 기반 접근에서도 EXIF(GPS) 유지 확률이 높음
👉 실무 체감:
“권한만 제대로 주면, 다중 선택에서도 위치정보가 잘 따라온다”
Android – 기기/버전/제조사 의존
Android는 상황이 다릅니다.
제조사별 갤러리 앱
Android 버전
클라우드 사진(Google Photos)
ContentResolver 접근 방식
이 조합에 따라 결과가 달라집니다.
특히 문제되는 지점은:
다중 선택 시
ContentResolver.OpenInputStream() 방식으로 접근하면
EXIF 읽기가 실패하거나 GPS 정보가 null로 나오는 경우
📌 즉,
개별 선택 → 위치 있음
다중 선택 → 위치 없음
이런 현상이 Android에서 매우 흔합니다.
3. 위치 메타데이터(EXIF) 전달 차이
iOS EXIF 특성
GPS 메타데이터 전달이 비교적 잘 유지됨
단, 사용자 설정에서 “위치 제거” 옵션이 켜진 경우
EXIF 자체에 GPS가 없음
즉, iOS는
있으면 잘 준다
없으면 명확하게 없다
라는 성향입니다.
Android EXIF 특성
Android는 훨씬 복잡합니다.
파일 접근 방식에 따라 EXIF 누락
클라우드 경유 이미지의 경우 GPS 제거 가능
제조사 갤러리 앱이 메타데이터를 재가공하는 경우 존재
특히,
URI 기반 접근
스트림 복사 과정
에서 EXIF가 손실되는 사례가 많습니다.
4. 실무에서 느낀 결정적 차이
정리하면 아래 한 줄로 요약됩니다.
✅ iOS
권한만 확보하면
다중 선택 포함
위치 메타데이터가 안정적으로 읽힘
⚠️ Android
권한만으로는 부족
파일 접근 방식 중요
기기/버전/갤러리 앱 영향 큼
다중 선택 시 EXIF 손실 가능성 높음
5. MAUI에서의 현실적인 대응 전략
실무적으로는 다음 접근이 안전합니다.
* iOS
- EXIF 기반 위치정보 신뢰 가능
*Android
- EXIF는 “있으면 쓰고, 없을 수 있음” 전제로 설계
필요하다면: 촬영 시점에 위치를 직접 기록, 업로드 시 별도 위치 권한으로 GPS 재취득
📌 결론적으로
Android에서는 “사진 = 위치”라는 가정을 하면 안 됩니다.
MAUI는 크로스 플랫폼이지만,
사진 / 위치 / 권한 영역은 절대 동일하게 동작하지 않습니다.
특히 다중 선택 업로드 + 위치정보는
iOS 기준으로 설계하면 Android에서 반드시 문제가 터집니다.
이번 경험처럼,
“개별 등록은 되는데, 다중 선택에서만 위치가 사라진다”
라는 증상은 Android의 구조적 특성에 가깝습니다.
이 글이
MAUI로 사진 업로드 기능을 구현하시는 분들께 도움이 되길 바랍니다.
댓글 0
첫 댓글을 남겨보세요.