반응형

 

안드로이드 리소스 디렉토리에서 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를 추가해서 활용할 수 있습니다.

+ Recent posts