안드로이드 리소스 디렉토리에서 values는 주로 문자열이나 설정값을 저장합니다.
다국어 관련해서는 values-"language"-"country" 디렉토리명된 string.xml 파일에 저장된다는 것은 익히 알고 있을 겁니다.
자세한 내용은 아래 글을 참고하시면 됩니다.
2018/09/19 - 안드로이드 다국어 지원 (support multiple language in android) - Translations Editor 사용법 포함
values-mcc 의미
values-"mcc" 디렉토리명으로 된 것은 결론적으로 말하면 어떤 국가의 통신망을 잡고 있는지에 따른 구분입니다.
통신망이 들어가서 혼란이 올 수도 있는데, 좀 더 쉽게 말하면 내 폰이 특정 국가에 있을 경우에 유효한 디렉토리입니다.
여기서 mcc는 Mobile Country Code의 약어인데, 국가마다 고유한 3자리 숫자가 mcc 뒤에 붙게 됩니다.
대한민국: 450, 미국: 310, 중국: 460, 일본: 440, 독일: 262, 캐나다: 302 ...
국가별 mcc값은 아래에서 검색하시면 됩니다.
https://en.wikipedia.org/wiki/Mobile_country_code
만약 values-mcc310 디렉토리가 있다면 이것은 미국 통신망을 잡고 있을 때 유효합니다.
values-mcc 활용 및 사용예
국가별 정책 적용시 대표적인 경우입니다.
위에서 언급한 다국어 지원하는 방법의 경우 해당 국가의 모국어가 아닌 외국어를 사용하는 경우에 제대로 처리되지 않습니다.
이럴경우에는 values-mcc 디렉토리로 국가별로 구분해서 값을 넣어주는 방법을 사용할 수 있습니다.
예로 들며 "카메라 촬영음 의무화" 정책이 있는 대한민국, 일본, 인도의 경우 아래처럼 프레임워크에서 처리되고 있습니다.
[기본]
/frameworks/base/core/res/res/values/config.xml
<bool name="config_camera_sound_forced">false</bool>
[대한민국]
/frameworks/base/core/res/res/values-mcc450/config.xml
<bool name="config_camera_sound_forced">true</bool>
[일본]
/frameworks/base/core/res/res/values-mcc440/config.xml
<bool name="config_camera_sound_forced">true</bool>
[인도]
/frameworks/base/core/res/res/values-mcc404/config.xml
<bool name="config_camera_sound_forced">true</bool>
위의 3개의 나라에 있을 경우 카메라로 촬영하면 프레임워크의 오디오 서비스에서 config_camera_sound_forced 값을 읽어와서 값에 따른 촬영음 처리를 합니다.
통신사별 처리가 필요할 때는 values-"mcc"-"mnc" 사용
참고로 mcc와 더불어 mnc를 같이 사용하기도 합니다.
mnc는 Mobile Network Code의 약어로서 통신사를 의미하며 1~2자리 숫자가 mnc 뒤에 붙게 됩니다.
values-mcc450-mnc5의 경우 대한민국의 SKT 통신사의 망을 잡고 있을 때 유효한 디렉토리입니다.
MTU size와 같이 통신사별 설정 값을 읽어오는 처리가 필요한 경우에 mnc를 추가해서 활용할 수 있습니다.
'Android Dev > Compatibility' 카테고리의 다른 글
앱을 안드로이드 9 파이로 마이그레이션 과정 (Android 9 Pie migration) (0) | 2019.04.19 |
---|---|
안드로이드 플랫폼 스트링(다국어 지원) 사용하기 (1) | 2018.12.10 |
Google Play에 등록한 앱이 특정 기기에서 검색되지 않는 이유 및 해결방법 (3) | 2018.10.20 |
안드로이드 다국어 지원 (support multiple language in android) - Translations Editor 사용법 포함 (0) | 2018.09.19 |